Automatic code generation and optimization of multi-dimensional stencil computations on distributed-memory architectures

Abstract : In this work, we present Dido, an implicitly parallel domain-specific language (DSL) that captures high-level stencil abstractions and automatically generates high-performance parallel stencil code for distributed-memory architectures. The generated code uses ORWL as a communication and synchronization backend. We show that Dido achieves a huge progress in terms of programmer productivity without sacrificing the performance. Dido supports a wide range of stencil computations and real-world stencil-based applications. We show that the well-structured code generated by Dido lends itself to different possible optimizations and study the performance of two of them. We also combine Dido's code generation technique with the polyhedral loop optimizer Pluto to increase data locality and improve intra-node data reuse. We present experiments that prove the efficiency and scalability of the generated code that outperforms both ORWL and MPI hand-crafted implementations.
Complete list of metadatas

Cited literature [90 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-02166980
Contributor : Abes Star <>
Submitted on : Thursday, June 27, 2019 - 12:47:08 PM
Last modification on : Friday, June 28, 2019 - 1:42:16 AM

File

Saied_Mariem_2018_ED269.pdf
Version validated by the jury (STAR)

Identifiers

  • HAL Id : tel-02166980, version 1

Citation

Mariem Saied. Automatic code generation and optimization of multi-dimensional stencil computations on distributed-memory architectures. Distributed, Parallel, and Cluster Computing [cs.DC]. Université de Strasbourg, 2018. English. ⟨NNT : 2018STRAD036⟩. ⟨tel-02166980⟩

Share

Metrics

Record views

85

Files downloads

28