Assembling a high-productivity DSL for computational fluid dynamics
Document typeConference report
PublisherAssociation for Computing Machinery (ACM)
Rights accessOpen Access
As we move towards exascale computing, an abstraction for effective parallel computation is increasingly needed to overcome the maintainability and portability of scientific applications while ensuring the efficient and full exploitation of high-performance systems. These circumstances require computer and domain scientists to work jointly toward a productive working environment. Domain specific languages address this challenge by abstracting the high-level application layer from the final, complex parallel low-level code. Saiph is an innovative domain specific language designed to reduce the work of computational fluid dynamics domain experts to an unambiguous and straightforward transcription of their problem equations. The high-level language, domain-specific compiler and underlying library are enhanced to make applications developed by scientists intuitive. Additions and improvements are presented, designed for the significant advantage of running computational fluid dynamics applications on different machines with no porting or maintenance issues. Numerical methods and parallel strategies are independently added at the library level covering the explicit finite differences resolution of a vast range of problems. Depending on the application, a specific parallel resolution is automatically derived and applied within Saiph, freeing the user from decisions related to numerical methods or parallel executions while ensuring suitable computations. Through a list of benchmarks, we demonstrate the utility and productivity of the Saiph high-level language together with the correctness and performance of the underlying parallel numerical algorithms.
“The final publication is available at ACM via http://dx.doi.org/10.1145/3324989.3325721”
CitationMacià, S. [et al.]. Assembling a high-productivity DSL for computational fluid dynamics. A: Platform for Advanced Scientific Computing Conference. "PASC'19: Platform for Advanced Scientific Computing Conference: Zurich, Switzerland: 12-14 June 2019: proceedings of the PASC19 conference". New York: Association for Computing Machinery (ACM), 2019, p. 1-11.