Show simple item record

dc.contributor.authorGarcia-Gasulla, Marta
dc.contributor.authorHouzeaux, Guillaume
dc.contributor.authorFerrer, Roger
dc.contributor.authorArtigues, Antoni
dc.contributor.authorLópez, Victor
dc.contributor.authorLabarta, Jesús
dc.contributor.authorVázquez, Mariano
dc.contributor.otherBarcelona Supercomputing Center
dc.identifier.citationGarcia-Gasulla, M. [et al.]. "MPI+X: task-based parallelization and dynamic load balance of finite element assembly". 2018.
dc.description.abstractThe main computing tasks of a finite element code(FE) for solving partial differential equations (PDE's) 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. Although we will describe algorithms in the FE context, a similar strategy can be straightforwardly applied to other discretization methods, like the finite volume method. The matrix assembly consists of a loop over the elements of the MPI partition to compute element matrices and right-hand sides and their assemblies in the local system to each MPI partition. In a MPI+X hybrid parallelism context, X has consisted traditionally of loop parallelism using OpenMP. Several strate- gies have been proposed in the literature to implement this loop parallelism, like coloring or substructuring techniques to circumvent the race condition that appears when assembling the element system into the local system. The main drawback of the first technique is the decrease of the IPC due to bad spatial locality. The second technique avoids this issue but requires extensive changes in the implementation, which can be cumbersome when several element loops should be treated. We propose an alternative, based on the task parallelism of the element loop using some extensions to the OpenMP programming model. The task- ification of the assembly solves both aforementioned problems. In addition, dynamic load balance will be applied using the DLB library, especially efficient in the presence of hybrid meshes, where the relative costs of the different elements is impossible to estimate a priori. This paper presents the proposed methodology, its implementation and its validation through the solution of large computational mechanics problems up to 16k cores.
dc.description.sponsorshipThe use of large part of a supercomputer, even more in normal conditions of use, is never an innocuous exercise. The research leading to these results has received funding from: the European Union's Horizon 2020 Programme (2014–2020) and from Brazilian Ministry of Science, Technology and Innovation through Rede Nacional de Pesquisa (RNP), HPC4E Project, grant agreement 689772; the Energy oriented Centre of Excellence (EoCoE), grant agreement number 676629, funded within the Horizon2020 framework of the European Union; The Spanish Government (grant SEV2015-0493 of the Severo Ochoa Program); the Spanish Ministry of Science and Innovation (contract TIN2015-65316-P); the Generalitat de Catalunya (contract 2014-SGR-1051); the Intel-BSC Exascale Lab collaboration project. Comissió Interdepartamental de Recerca i Innovació Tecnológica(Interdepartmental Commission for Research and Technological Innovation)
dc.format.extent26 p.
dc.publisherTaylor & Francis
dc.subjectÀrees temàtiques de la UPC::Informàtica
dc.subject.otherFinite element code (FE)
dc.titleMPI+X: task-based parallelization and dynamic load balance of finite element assembly
dc.rights.accessOpen Access
dc.description.versionPost-print (author's final draft)
upcommons.citation.publicationNameInternational Journal of Computational Fluid Dynamics

Files in this item


This item appears in the following Collection(s)

Show simple item record

All rights reserved. This work is protected by the corresponding intellectual and industrial property rights. Without prejudice to any existing legal exemptions, reproduction, distribution, public communication or transformation of this work are prohibited without permission of the copyright holder