Skip to Main content Skip to Navigation

Using OpenMP tasks for a 2D Vlasov-Poisson Application

Abstract : Loop-based parallelism is a common in scientific codes. OpenMP proposes such work-sharing construct to distribute works over available threads. This approach has been proved to be sufficient for many array-based applications. However, it is not well suited to express irregular forms of parallelism found in many kinds of applications in a way that is both simple and efficient. In particular, overlapping MPI communications with computations can be difficult to achieve using OpenMP loops. The OpenMP tasking constructs offer an interesting alternative. Dependencies can be specified between units of work in a way that ease the expression of the overlapping. Moreover , this approach reduces the need of costly and useless synchronizations required by the traditional fork-join model. Synchronizations can cause load imbalances between computing cores and results in scalability issues, especially on many-cores architectures. This study aims to evaluate the use of OpenMP task constructs to achieve an efficient and maintainable overlapping of MPI communication with computation and compare it to work-sharing-based versions. We evaluate the benefits and the overheads the OpenMP tasks exhibited throughout the specific setting of a hybrid MPI+OpenMP 2D Vlasov-Poisson application .
Complete list of metadatas

Cited literature [5 references]  Display  Hide  Download
Contributor : Jérôme Richard <>
Submitted on : Monday, January 14, 2019 - 1:53:03 PM
Last modification on : Friday, June 5, 2020 - 4:03:03 AM


Files produced by the author(s)


  • HAL Id : hal-01963113, version 2


Jérôme Richard, Guillaume Latu, Julien Bigot. Using OpenMP tasks for a 2D Vlasov-Poisson Application. [Research Report] CEA Cadarache. 2019. ⟨hal-01963113v2⟩



Record views


Files downloads