Minisymposium Presentation
A Shared Compilation Stack for HPC Stencil DSLs
Presenter
Description
Domain Specific Languages can massively improve computational scienceproductivity and also provide high performance. High-level DSLs captureabstractions that the DSL compiler can exploitto target current- and next-generation supercomputers.Consequently, there have been many DSL projects, notably in finite-difference stencilcomputations - but implementations fail to share code and fail to harness combined developer effort.A large portion of their code base is dedicated to reasoning about generic HPC concepts, such as generation of directives for shared-memory parallelism, message-passing communications for distributed-memory parallelism, vectorization, arithmetic (factorization, sub-expression elimination), and loop optimizations (blocking, fusion, fission). These general-purpose optimizations are often combined with domain-specific ones to maximize performance.This talk presents joint work spanning three stencil DSL projects, which aims to realize this lost potential - in Devito, Psyclone, and the Open Earth Compiler. We present a) how we tailor the widely adopted MLIR compiler framework to support optimizations suitable for FD-stencil computations and generate HPC-ready code running on multi-node CPUs and single-node GPUs, and b) how, for example, in Devito, we can leverage these HPC-enabling contributed abstractions in MLIR and achieve better or on-par performance by building on MLIR dialects and transformations that are shared across all three projects.