Releases: devitocodes/devito
Devito-3.2
This release builds upon v3.1.0
including all features from Devito v3.2-beta
as well as the following changes:
- Domain-allocation switch: now Operators run over the entire Grid, no matter what the stencil radius is.
- "Min-max" API to iterate over subregions of the Grid.
- A set of examples showing how to use Devito for linear algebra calculations
- Better seismic examples, more resampling.
- Parallelization of loops with reduction dependences with OpenMP atomics
- Simpler, better, more robust processing for Operator arguments
- Significantly more powerful IterationSpace
- Smarter clusterization
Devito-3.2-beta
- Improved organisation of the Intermediate Representation classes (
ir
submodules) - Moved Clusterization to IR from DSE
- Better type hierarchy (reuse code from superclasses,
SparseFunction
-> [SparseFunction
,SparseTimeFunction
], ...) - Better
Dimension
hierarchy, now wired into the main type hierarchy - Drop "Global reverse flag" hack
- Drop "Global modulo flag" hack
- Revisited argument processing for
Operator.apply
- Devito now explicitly provides its own
Eq
andsolve
modules - Initial support for sub-domains
- Update the YASK backend, towards feature completeness
- Lots of changes in preparation for the domain-allocation switch
Devito-3.1
This release includes several new pieces of functionality and some significant API changes:
- Updated to Python-3 (exclusively) and SymPy-1.1
- Renamed symbol types:
DenseData
->Function
,TimeData
->TimeFunction
,PointData
->SparseFunction
- Introduction of a
Grid
class that provides the defaulting behaviour for space and time dimensions - Enable completely generic operators without explicit substitution of spacing variables
- Addition of explicit start/end values for dimension iterations for operator invocation
- Removed fixed dimensions with hard-coded loop bounds
- Improvements to YASK backend resulting in functional acoustic operators (both forward and adjoint)
- Addition of new seismic example notebook using Dask for shot-level parallelism
Minor changes:
- Now using
nbval
to test notebooks - Separating
Function
andSymbol
types in internal hierarchy - Make
Constant
aSymbol
, notFunction
- Added ability to switch backends at runtime
- Lots of internal refactoring...
Devito-3.0.3
A utility release to ensure a stable version before a set of planned API changes. Includes changes and some signficant progress on:
- Prototype YASK-backend
- Improved arguments handling
- Seismic examples and tutorials
RickerSource
anddemo_model
utilities
- New TTI formulation (shifted and centred)
- Anaconda install
- Autotuning fixes
- Compiler-debug model
Devito-3.0.2
Minor update with various fixes and some internal re-structuring:
- Fix potential memory leak and removed unused memmap interface
- Fix reverse-time iteration bug
- Fix summary printing in DSE/DLE
- YASK integration phase 2 (data movement through YaskGrids)
- Generalized loop blocking (includes several bug fixes)
- Additional linear convection example notebook with smooth initial condition
Devito-3.0.1
Minor release that contains several bug-fixes and additional documentation:
- Fixes and test for the
ForeignOperator
interface - Improved argument derivation in
Operator.apply()
- Improved expression scheduling in
Operator
- New tutorial notebook on seismic modelling
- New introductory tutorial based on CFD examples
- Various documentation fixes throughout
Devito-3.0
This is the base release for Devito version 3.0. It primarily provides a new and improved Operator
API as well as two backend engines that perform a sequence of configurable compiler passes during the code generation stages to increase the performance of the generated code:
- DSE - Devito Symbolic Engine: Provides performance optimization passes that manipulate SymPy equations to decrease the number of floating-point operations performed when evaluating a grid point.
- DLE - Devito Loop Engine: Manipulates the loop structure of the generated code based on an abstract syntax tree (AST) and provides typical loop-level optimisations, including data alignment, explicit SIMD vectorization and thread-level parallelism through OpenMP pragmas, and loop blocking.
Stable v2.0.1 pre-release
Initial tag of stable v2.0.1 pre-release.