Back to directory

Devito

A Python package that compiles high-level symbolic descriptions of stencil computations, such as finite-difference methods, into optimized, parallel code for CPUs, GPUs, and clusters.

Devito

Devito is a Python package for implementing optimized stencil computations, such as finite-difference methods for partial differential equations, image processing, and machine learning kernels, from high-level symbolic problem definitions. It builds on SymPy and uses automated code generation with just-in-time compilation to produce optimized computational kernels for CPUs, GPUs, and clusters of either.

A developer expresses a problem as a functional composition of equations, boundary conditions, and sparse operations such as interpolation, and Devito's compiler analyzes the resulting operator, applies optimizations such as vectorization, loop blocking, and symbolic transformations to reduce floating-point operations, and generates parallel code using OpenMP, OpenACC, or MPI as needed. It also supports distributed NumPy arrays across multi-node domain decompositions and includes an autotuning framework for performance tuning.

It ships with interactive Jupyter notebooks and is distributed under the MIT license.

More in Libraries

See all 292
  • OpenDecision

    deepanwadhwa.github.io

    An open-source Python package that answers typed questions about application state or documents using a local natural-language-inference model, returning structured choice, score, yes/no or evidence-relation values instead of free text.

  • TradeCanvas

    bonguynvan.github.io

    A zero-dependency canvas charting engine for building TradingView-style trading charts in JavaScript, with 66 technical indicators, 24 drawing tools, 17 chart types, and real-time streaming.

  • 3d retro graphics

    3d-retro.com

    A free, CC0-licensed library of copy-paste retro 3D and demoscene graphics effects, such as plasma, raytracing, and voxel terrain, runnable as WebGL 1 or plain 2D canvas.