DevitoPRO, an advanced extension of the open-source Devito platform, is designed to cater specifically to high-performance computing (HPC) needs, especially in seismic imaging and inversion. While both platforms enable symbolic computation for developing finite-difference kernels, DevitoPRO offers several added features tailored for more demanding, production-level workflows.

Key Differentiators for Seismic Imaging Users:

  1. Enhanced Performance Portability: DevitoPRO supports advanced GPU acceleration using CUDA, HIP, and SYCL, offering better cross-platform flexibility. This means you can deploy high-performance applications on most commercially available processors, including Nvidia, AMD, and Intel GPUs, as well as ARM and x86_64 processors. Performance portability is crucial for both on-premise and cloud environments, where availability has become as important a consideration as price performance. DevitoPRO’s portability maintains performance even as you switch between available cloud instances or on-premise hardware.

  2. Advanced Domain-Specific Optimizations: DevitoPRO introduces a wide range of optimizations like the expanding-box technique, which focuses computational resources only on active domains, resulting in more efficient memory and compute usage. We are also increasing support for mixed-precision computation options, which reduce memory pressure without compromising accuracy, further enhancing performance for seismic imaging tasks.

  3. Compression and Data Streaming for Back-Propagation: A key feature for production seismic workloads, DevitoPRO integrates compression-based back-propagation and asyncronious data-streaming techniques to optimize disk-host-GPU transfers. This is essential for handling the large datasets typically involved in seismic imaging, significantly improving memory management and computational efficiency during reverse time migration (RTM) and full-waveform inversion (FWI).

  4. Enterprise-Ready Features: DevitoPRO integrates seamlessly with major cloud platforms like AWS, Azure, and Google Cloud, and offers specific support for tuning and benchmarking cloud instances. The platform includes pre-defined, optimized propagators for common seismic tasks, reducing development overhead and allowing teams to immediately leverage high-performance solutions. Additionally, DevitoPRO offers enterprise-grade support, including tailored benchmarking and private consultation services, which are critical for production-level applications.

These features make DevitoPRO an essential tool for seismic imaging professionals who need robust, scalable, and highly optimized computational tools that can adapt to fluctuating hardware availability and complex workflows.

Features Open-source Devito DevitoPRO
Finite-differences and mathematical abstractions
Write PDE solvers symbolically
Tensor algebra
Taylor series weights for any order
Customizable stencil weights (eg variable-z, dispersion minimizing)
Immersed boundary support (eg accurate land topography)
Explicit methods
Implicit methods (via PETSc) Alpha Alpha
Source/receivers (fully customizable)
Boundary conditions (fully customizable)
Staggered and rotated grids
Subsampling (e.g. space/time decimation)
Subdomains
API for third-party library callbacks
Jupyter notebook tutorials, examples and documentation
Support for all major CPUs and GPUs
CPUs: AMD, ARM, and Intel
GPUs: AMD, Intel, Nvidia
Accelerators: Intel KNC, KNL
Devito Cookbook (includes forward, adjoint and 2D/3D)
Isotropic acoustic and viscoacoustic
Isotropic elastic and viscoelastic
Acoustic VTI and TTI
Viscoacoustic VTI and TTI
Elastic VTI and TTI
PDE-constrained optimization and adjoint method
Express adjoint-method optimization problems symbolically
Checkpoint(/Revolve)-based back-propagation
Compression-based back-propagation
Intelligent data-streaming disk-host-GPU
Lossy data compression for floating-point data
Algorithmic and compiler performance optimizations
Decoupler - software integration layer for seismic codes. Integrate DevitoPRO with any code written in any language and get full MPI support for your propagators.
Automated multi-level parallelization
Expanding-box (only compute active domain)
Mixed-precision computation
Data-locality optimization (e.g. cache-blocking)
Autotuning/Devitotuner Basic Advanced
FLOP reduction (e.g. factorization, hoisting, CSE) Comprehensive Advanced
Advanced low-level optimization (e.g., memory alignment)
Code generation for multiple languages and parallel programming models
OpenMP for CPUs and GPUs
OpenACC for Nvidia GPUs
CUDA
HIP
SYCL
NUMA-aware MPI-OpenMP
MPI: Single-node-multi-gpu
MPI: Multi-node-multi-gpu Beta
Optimized GPU-aware MPI
Supported cloud platforms
AWS
Azure
GCP
Cross-platform industry benchmarking: Includes iso-acoustic and acoustic TTI. All benchmarks are independently autotuned to get best performance on each target.
Access to benchmark reports and raw logs for reproducibility.
Cloud instance tuning and benchmarking.
Support, consultancy, training, SOWs
Slack: community support on public channels
Slack: Private/NDA support channels
Projects
Training
Consultancy
Support/maintenance