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 .
Type de document :
[Research Report] CEA Cadarache. 2019
Liste complète des métadonnées
Contributeur : Jérôme Richard <>
Soumis le : lundi 14 janvier 2019 - 13:53:03
Dernière modification le : vendredi 18 janvier 2019 - 11:20:16


Fichiers produits par l'(les) auteur(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〉



Consultations de la notice


Téléchargements de fichiers