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...
Saved in:
Published in | International journal of computational fluid dynamics Vol. 33; no. 3; pp. 115 - 136 |
---|---|
Main Authors | , , , , , , |
Format | Journal Article |
Language | English |
Published |
Abingdon
Taylor & Francis
16.03.2019
Taylor & Francis Ltd |
Subjects | |
Online Access | Get full text |
Cover
Loading…
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 |