DuctTeip: An efficient programming model for distributed task-based parallel computing - Zafari, Afshin; Larsson, Elisabeth; Tillenius, Martin (Parallel computing, 2019)
•We introduce a hierarchical task parallel programming model for distributed memory systems.•We show that the new model provides both flexibility and performance.•We use the model to implement a Cholesky factorization and a solver for the shallow water equations.•We have compared our implementation with other frameworks and shown that it is competitive. Current high-performance computer systems used for scientific computing typically combine shared memory computational nodes in a distributed memory environment. Extracting high performance from these complex systems requires tailored approaches. Task-based parallel programming has been successful both in simplifying the programming and in exploiting the available hardware parallelism for shared memory systems. In this paper we focus on how to extend task-parallel programming to distributed memory systems. We use a hierarchical decomposition of tasks and data in order to accommodate the different levels of hardware. We test the proposed programming model on two different applications, a Cholesky factorization, and a solver for the Shallow Water Equations. We also compare the performance of our implementation with that of other frameworks for distributed task-parallel programming, and show that it is competitive.