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 .
Liste complète des métadonnées

https://hal.archives-ouvertes.fr/hal-01963113
Contributor : Jérôme Richard <>
Submitted on : Monday, January 14, 2019 - 1:53:03 PM
Last modification on : Thursday, February 7, 2019 - 3:30:26 PM

File

report.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01963113, version 2

Citation

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

Share

Metrics

Record views

72

Files downloads

38