Skip to content

Devito-4.2

Compare
Choose a tag to compare
@ggorman ggorman released this 16 Apr 14:16
· 4763 commits to master since this release
0ee4fac

GPU support

  • Added OpenACC 2.6 code generation support.
  • Added domain decomposition support for multi-node-multi-GPU via MPI and OpenACC.

Testing, CI/CD

  • Added testing with PGI compiler suite v19.10 on NVidia K80 GPU's.
  • Enhanced CI testing for OpenMP 5 offloading onto GPU's.
  • Enhanced CI testing for domain decomposition with MPI.

Performance optimizations

  • Wide range of performance optimizations to the Devito compiler to speed-up compile time (~2-5x speedup in compilation time).
  • Various low-level performance and memory optimizations (e.g. identifying and removing redundant computations).

DSL extensions

  • tools.Evaluable -> finite_differences.Evaluable
  • Dynamic FD shortcuts (i.e. u.dx(fd_order=2)). Supports FD order, x0 and side.

YASK and OPS backends

  • After a great deal of consideration, we have decided to drop support for YASK (https://01.org/yask) and OPS (https://github.com/OP-DSL/OPS) as Devito backends. While YASK and OPS have many desirable features, the software engineering overhead (person-effort) to maintain feature-complete support proved unsustainable. We would like to take this opportunity to thank Chuck Yount (YASK) and Istvan Reguly (OPS) for their collaboration on both software development and algorithm development, which has been of great benefit to Devito.

Tutorials and documentation

General updates

  • Added Developer Certificate of Origin to Devito contribution guidelines.
  • General improvements to documentation, examples and tutorials.
  • Several minor bug fixes.
  • Increased test coverage.
  • Improvements to test code coverage reporting.
  • Added PGI compiler support.
  • Added MPI support for the SubDomainSet feature.
  • Additional runtime warnings for inadequate problem specifications, e.g. stencil radius greater than rank-domain width.
  • Deprecate DEVITO_DLE, replaced by DEVITO_OPT.
  • Deprecate DEVITO_OPENMP, replaced by DEVITO_LANGUAGE.

Many thanks to all the contributors to this release (last surname alphabetical order):

  • George Bisbas (Imperial College London)
  • Tim Burgess (DownUnder Geosolutions)
  • Edward Caunt (Imperial College London)
  • Gerard Gorman (Imperial College London)
  • Mathias Louboutin (Georgia Institute of Technology)
  • Fabio Luporini (Devito Codes)
  • Rhodri Nelson (Imperial College London)
  • Peterson Nogueira (SENAI CIMATEC and UFBA)
  • Joao Speglich (SENAI CIMATEC)
  • John Washbourne (Chevron)
  • Philipp Witte (Georgia Institute of Technology)

Special thanks and congratulations to Ken Hester (NVidia), winner of the Devito hackathon at Rice OGHPC 2020, who used the Devito JIT backdoor to develop the prototype OpenACC code which informed the implementation of OpenACC code generation support within this release.