Distributed task-based conjugated gradients : a comparison between HPX and MPI + X

Thumbnail Image

Date

2024

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Solving sparse systems of linear equations is of great importance when dealing with computational fluid dynamics (CFD). The Conjugate gradient (CG) method is one of the most famous iterative methods for solving such systems. Due to large problem sizes in real-world applications, we need to parallelize the CG method to scale for large systems of linear equations and run on large compute clusters. To accomplish this task, we need software libraries that enable us to express the parallelization of the algorithm at a shared and distributed memory level. The objective of this master’s thesis is to present a comparative analysis between the industry-standard tools MPI + OpenMP and the task-based parallel framework HPX in terms of inter-node and intra-node levels of task parallelization. The comparison offers insights on how to express the parallelization of the CG method with both MPI+OpenMP and HPX. Next, simulating the classical benchmark problem of lid-driven cavity, we provide performance evaluations of the two software methodologies for both shared and distributed memory systems using the implemented parallel CG method. Finally, we provide an analysis of the results and present the advantages and disadvantages of both methods.


Die Lösung von dünn besetzten Systemen linearer Gleichungen ist von großer Bedeutung beim Umgang mit der numerischen Strömungsmechanik (CFD). Das Verfahren der konjugierten Gradienten (CG) ist eine der bekanntesten iterativen Methoden zur Lösung solcher Systeme. Aufgrund der großen Problemgrößen in realen Anwendungen müssen wir das CG-Verfahren parallelisieren, um für große Systeme linearer Gleichungen zu skalieren und auf große Rechnercluster ausgeführt zu werden. Um diese Aufgabe zu bewältigen, benötigen wir Softwarebibliotheken, die es uns ermöglichen, die Parallelisierung des Algorithmus auf Ebene des gemeinsamen und verteilten Speichers auszudrücken. Das Ziel dieser Masterarbeit ist es, eine vergleichende Analyse zwischen den branchenüblichen Softwarebibliotheken MPI + OpenMP und dem task-basierten parallelen Framework HPX hinsichtlich der Intraknoten- und Interknoten-Parallelisierungsebene vorzustellen. Der Vergleich bietet Einblicke, wie die Parallelisierung des CG-Verfahrens sowohl mit MPI + OpenMP als auch mit HPX ausgedrückt werden kann. Anschließend führen wir durch die Simulation des klassischen Benchmark-Problems lid-driven cavity, Leistungsbeurteilungen der beiden Softwaremethoden für gemeinsame und verteilte Speichersysteme unter Verwendung des implementierten parallelen CG-Verfahrens durch. Abschließend bieten wir eine Analyse der Ergebnisse und präsentieren die Vor- und Nachteile beider Methoden.

Description

Keywords

Citation

Endorsement

Review

Supplemented By

Referenced By