2018/07/09 by Fabio Luporini, Michael Lange, Luporini, Fabio +17 · 3 citations
Computer Science · Engineering · #65N06 #68N20 #Computational Physics and Python Applications #FOS: Computer and information sciences #Mathematical Software (cs.MS) #Parallel Computing and Optimization Techniques #Reservoir Engineering and Simulation Methods
paper · pdf · doi:10.48550/arxiv.1807.03032
openalex publication_date 2018/07/09 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28
Stencil computations are a key part of many high-performance computing\napplications, such as image processing, convolutional neural networks, and\nfinite-difference solvers for partial differential equations. Devito is a\nframework capable of generating highly-optimized code given symbolic equations\nexpressed in Python, specialized in, but not limited to, affine (stencil)\ncodes. The lowering process---from mathematical equations down to C++ code---is\nperformed by the Devito compiler through a series of intermediate\nrepresentations. Several performance optimizations are introduced, including\nadvanced common sub-expressions elimination, tiling and parallelization. Some\nof these are obtained through well-established stencil optimizers, integrated\nin the back-end of the Devito compiler. The architecture of the Devito\ncompiler, as well as the performance optimizations that are applied when\ngenerating code, are presented. The effectiveness of such performance\noptimizations is demonstrated using operators drawn from seismic imaging\napplications.\n