2,168 research outputs found

    devitocodes/devito: Devito-4.2

    No full text
    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 M80 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 Revised FAQ - https://github.com/devitocodes/devito/wiki/FAQ New Jupyter notebooks: GPU tutorial. PML boundary condition tutorial. Normal Moveout (NMO) tutorial. Revised viscoelastic example. 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 (UFRN) 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

    opesci/devito: Devito-4.0

    No full text
    Tensor algebra support (#873): VectorFunction and VectorTimeFunction (2nd order) TensorFunction and TensorTimeFunction Full support for FD and related operations (derivatives, shortcuts, solve, ...) Differential operators such as div, grad and curl FD extensions: Custom FD with user-supplied coefficients as Function (#964) Extended and more rigorous support for staggered grids (#873): True half-grid staggering (u(x + h_x/2)) Automatic evaluation at half-nodes (averaging only) Automatic staggered FD of any order MPI: MPI data slicing fixes(#1008) SparseFunction fixes (gathering with correct coordinates) (#922) MPI parameters correctly passed to the Operator (#1016, #1019) Gathering bug fix (#916) Domain decomposition improvements (#915, #904) Effective computation/communication overlap Fixed argument processing to acquire the correct MPI communicator GPU: More progress on the OPS backend OpenMP-5.x offloading experimental support (#1004, #1012) (note: compiler installation instructions available on the Devito wiki) Performance: Better OpenMP scheduling and sparse loop handling (#995) Faster compilation (#932) Misc: More robust inheritance from sympy and support for latest version (#1005) Model bug fixes and cleanup (#1000, #1015) Model now initializes/pads all object via Operators (#911) CustomCompiler now uses the system/user provided parameters correctly (#925) Devito based Gaussian smoother (#931) ARM support (#940) Better caching infrastructure (#956) removing the majority of memory leaks Improved benchmarking infrastructur

    opesci/devito: Devito-3.2-beta

    No full text
    <ul> <li>Improved organisation of the Intermediate Representation classes (<code>ir</code> submodules)</li> <li>Moved Clusterization to IR from DSE</li> <li>Better type hierarchy (reuse code from superclasses, <code>SparseFunction</code> -> [<code>SparseFunction</code>, <code>SparseTimeFunction</code>], ...)</li> <li>Better <code>Dimension</code> hierarchy, now wired into the main type hierarchy</li> <li>Drop "Global reverse flag" hack</li> <li>Drop "Global modulo flag" hack</li> <li>Revisited argument processing for <code>Operator.apply</code></li> <li>Devito now explicitly provides its own <code>Eq</code> and <code>solve</code> modules</li> <li>Initial support for sub-domains</li> <li>Update the YASK backend, towards feature completeness</li> <li>Lots of changes in preparation for the domain-allocation switch</li> </ul&gt

    Devito

    No full text
    Devito is a prototype Domain-specific Language (DSL) and code generation framework for the design of highly optimised finite difference kernels for use in inversion methods. Devito utilises SymPy to allow the definition of operators from high-level symbolic equations and generates optimised and automatically tuned code specific to a given target architecture

    opesci/devito: Devito-3.0.3

    No full text
    <p>A utility release to ensure a stable version before a set of planned API changes. Includes changes and some signficant progress on:</p> <ul> <li>Prototype YASK-backend</li> <li>Improved arguments handling</li> <li>Seismic examples and tutorials <ul> <li>RickerSource and demo_model utilities</li> </ul> </li> <li>New TTI formulation (shifted and centred)</li> <li>Anaconda install</li> <li>Autotuning fixes</li> <li>Compiler-debug model</li> </ul&gt

    Interview with Fabio Andina - Swiss Author

    No full text
    Interview with author Fabio Andina

    devitocodes/devito: v4.8.7

    No full text
    <h2>Changes</h2> <ul> <li>misc: Remove (object) in class definitions @EdCaunt (#2378)</li> </ul> <h2>API</h2> <ul> <li>mpi: Fix data_gather for sparse functions @mloubout (#2379)</li> <li>API: Revamp sparse subfunction @mloubout (#2374)</li> <li>api: fix corner case staggered fd for centered x0 @mloubout (#2373)</li> <li>api: cleanup FD tools and support zeroth order derivative @mloubout (#2368)</li> </ul> <h2>Examples</h2> <ul> <li>examples: Add an example notebook for ADER-FD schemes @EdCaunt (#2338)</li> <li>examples: fix tuto numbering for doc rendering @mloubout (#2367)</li> </ul> <h2>Documentation</h2> <ul> <li>examples: fix tuto numbering for doc rendering @mloubout (#2367)</li> </ul> <h2>Compiler</h2> <ul> <li>compiler: Misc compiler improvements @FabioLuporini (#2380)</li> <li>compiler: Support for C-level MPI_Allreduce @FabioLuporini (#2344)</li> <li>compiler: sequentialise halo touch @mloubout (#2372)</li> <li>compiler: Fix placement of ConditionalDimension in subdomain @georgebisbas (#2050)</li> </ul> <h2>MPI</h2> <ul> <li>mpi: Fix data_gather for sparse functions @mloubout (#2379)</li> <li>ci: tweak mpi setup to allow -s and hide output @mloubout (#2350)</li> </ul> <h2>Architectures and JIT</h2> <ul> <li>arch: Ensure compiler check catches permission errors @gbruer15 (#2340)</li> </ul> <h2> Bug Fixes</h2> <ul> <li>tests: Fixup conftest's set_run_reset() @FabioLuporini (#2381)</li> <li>mpi: Fix data_gather for sparse functions @mloubout (#2379)</li> <li>dsl: Correct retention of wrong branch in filter_ordered @EdCaunt (#2377)</li> <li>api: Always expand time derivatives @mloubout (#2369)</li> <li>dsl: Patch edge-case derivative specifications @EdCaunt (#2366)</li> <li>compiler: Fix placement of ConditionalDimension in subdomain @georgebisbas (#2050)</li> </ul> <h2>Testing</h2> <ul> <li>ci: tweak mpi setup to allow -s and hide output @mloubout (#2350)</li> </ul> <h2>Continuous Integration</h2> <ul> <li>CI: fix decoupler config to use correct python @mloubout (#2382)</li> <li>arch: Ensure compiler check catches permission errors @gbruer15 (#2340)</li> </ul> <h2>Installation</h2> <ul> <li>reqs: Update cached_property to functools version @EdCaunt (#2359)</li> <li>docker: Drop unused mpi4 and fix nvhpc mpi4py setup @mloubout (#2365)</li> </ul> <h2>New Contributors</h2> <ul> <li>@gbruer15 made their first contribution in https://github.com/devitocodes/devito/pull/2340</li> </ul> <p><strong>Full Changelog</strong>: https://github.com/devitocodes/devito/compare/v4.8.6...v4.8.7</p&gt

    opesci/devito: Devito-3.0.2

    No full text
    <p>Minor update with various fixes and some internal re-structuring:</p> <ul> <li>Fix potential memory leak and removed unused memmap interface</li> <li>Fix reverse-time iteration bug</li> <li>Fix summary printing in DSE/DLE</li> <li>YASK integration phase 2 (data movement through YaskGrids)</li> <li>Generalized loop blocking (includes several bug fixes)</li> <li>Additional linear convection example notebook with smooth initial condition</li> </ul&gt

    opesci/devito: Devito-3.4

    No full text
    Release notes <ul> <li>Preliminary support for MPI (no changes to user code requested)</li> <li>Support for staggered grids</li> <li>Improved compilation technology</li> <li>Improved Operator autotuning</li> <li>More powerful DSL (e.g., take derivatives of entire expressions such as <code>(u+v).dx</code>)</li> <li>More efficient pickling</li> <li>Misc bug fixes</li> <li>New modeling examples based on the elastic wave equation</li> <li>New examples describing aspects of the compilation technology</li> </ul&gt

    opesci/devito: Devito-3.5

    No full text
    Release notes <ul> <li>MPI support:<ul> <li>Python-level: MPI-distributed NumPy arrays.</li> <li>C-level: code generation for sub-domains, staggered grids, operators with coupled PDEs.</li> <li>C-level: performance optimizations (e.g., computation-communication overlap).</li> </ul> </li> <li>Lazy evaluation of derivatives.</li> <li>Revisited staggered grids API (now Dimension-based, previously mask-based).</li> <li>Re-engineered clustering (which means smarter loop fusion/fission).</li> <li>DSE: Improved aliases detection.</li> <li>DLE: OpenMP nested parallelism; hierarchical loop blocking.</li> <li>Auto-padding for Functions/TimeFunctions.</li> <li>Improved data dependency analysis.</li> <li>Smarter Operator auto-tuning.</li> <li>New tutorials: Operator application, MPI, new propagators, custom stencils, and more.</li> <li>Revisited benchmarking scripts.</li> <li>Revisited examples, new models and propagators (e.g., visco-elastic).</li> <li>Smarter continuous integration: now Travis sided by Azure Pipelines; dropped Jenkins.</li> <li>Misc bug fixes.</li> <li>Hundreds of tests added.</li> <li>More sophisticated platform auto-detection.</li> </ul&gt
    corecore