MPI+X: task-based parallelisation and dynamic load balance of finite element assembly

The main computing phases of numerical methods for solving partial differential equations are the algebraic system assembly and the iterative solver. This work focuses on the first task, in the context of a hybrid MPI+X paradigm. The matrix assembly consists of a loop over the elements, faces, edges...

Full description

Saved in:
Bibliographic Details
Published inInternational journal of computational fluid dynamics Vol. 33; no. 3; pp. 115 - 136
Main Authors Garcia-Gasulla, Marta, Houzeaux, Guillaume, Ferrer, Roger, Artigues, Antoni, López, Victor, Labarta, Jesús, Vázquez, Mariano
Format Journal Article
LanguageEnglish
Published Abingdon Taylor & Francis 16.03.2019
Taylor & Francis Ltd
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:The main computing phases of numerical methods for solving partial differential equations are the algebraic system assembly and the iterative solver. This work focuses on the first task, in the context of a hybrid MPI+X paradigm. The matrix assembly consists of a loop over the elements, faces, edges or nodes of the MPI partitions to compute element matrices and vectors and then of their assemblies. In a MPI+X hybrid parallelism context, X has consisted traditionally of loop parallelism using OpenMP, with different techniques to avoid the race condition, but presenting efficiency or implementation drawbacks. We propose an alternative, based on task parallelism using some extensions to the OpenMP programming model. In addition, dynamic load balance will be applied, especially efficient in the presence of hybrid meshes. This paper presents the proposed methodology, its implementation and its validation through the solution of large computational mechanics problems up to 16k cores.
ISSN:1061-8562
1029-0257
DOI:10.1080/10618562.2019.1617856