Hierarchical collectives for HPX

Thumbnail Image

Date

2025

Authors

Zeil, Lukas

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

High-Performance Computing (HPC) is the act of using many concurrently running computational units to solve complex and resource intensive calculative tasks faster than singular Computer. These Tasks include the fourier Transformation, Computational Fluid Dynamics and many more. HPC uses HPC-Clusters, an accumulation of many Computing Nodes, to independently calculate different parts of these tasks and then gathering the results. For these tasks this improves performance immensely. A critical component of many HPC frameworks is the Message Passing Interface (MPI), which provides standardized methods for inter-process communication across distributed systems. The first communcation mechanism of the MPI Standard is the point-to-point Communication, which allows for singular processes to send data to each other. On a higher level, and at the center of our thesis, are the collective communication operations, which transmit data in a group of processes. The MPI Standard and its communication models are implemented by several libraries. Our thesis focuses on OpenMPI, a widely used open-source implementation of MPI, that continuously optimizes performance and scalability, making it the de facto choice for collective communication operations in large-scale operations. A Library with Focus on Parallelism and Concurrency is the STEllAR Group’s HPX for C++. It seeks to address limitations of MPI and other traditional parallelization methods by leveraging techniques such as message-driven computation and constraint-based synchronization. While OpenMPI has introduced numerous optimizations to improve scalability, HPX’s current collective operations still rely on a single root node for message distribution, leading to performance bottlenecks. This thesis proposes a hierarchical communicator for HPX that distributes communication workload across multiple processes, reducing overhead and improving scalability. We created a benchmark to compare our hierarchical communicator to the naive HPX communicator and various OpenMPI Algorithms. Our results show a proportional performance increase across all tested collective operations on HPX, with the hierarchical communicator achieving a speedup of up to 32 for reduce and broadcast operations and 16 for gather and scatter on 256 processes. Compared to OpenMPI’s state-of-the-art implementations for gather, scatter, and broadcast our approach shows a speedup of 1.2 and 1.5 for 128 and 256 processes respectively.


High-Performance Computing (HPC) ist der Einsatz vieler gleichzeitig laufender Recheneinheiten, um komplexe und ressourcenintensive Rechenaufgaben schneller zu lösen als ein einzelner Computer. Jeweilige Aufgaben können dabei die Fouriertransformation, computergestützte Strömungsmechanik und viele weitere sein. HPC verwendet HPC-Cluster, eine Ansammlung vieler Rechenknoten, um verschiedene Teile dieser Aufgaben unabhängig voneinander zu berechnen und die Ergebnisse zusammenzuführen. Für solche Aufgaben steigert dies die Leistung signifikant. Eine entscheidende Komponente vieler HPC-Frameworks ist das Message Passing Interface (MPI), welches standardisierte Methoden der Prozesskommunikation plattformübergreifend für die üblichen Systeme zur Verfügung stellt. Der erste Kommunikationsmechanismus des MPI-Standards ist die Punkt-zu-Punkt-Kommunikation. Diese erlaubt es, einzelne Prozesse untereinander zu verschicken. Auf einem höheren Niveau, und im Kern dieser These, sind die kollektiven Operationen, welche Daten in einer Gruppe von Prozessen übermittelt. Der MPI Standard und ihre Kommunikationsmodelle sind in etlichen Bibliotheken bereits implementiert. Unsere These fokussiert sich auf OpenMPI, eine weit verbreitete Open-Source Implementation des MPI, die kontinuierlich Leistungs- und Skalierbarkeit optimiert. Somit ist sie die ideale Wahl für kollektive Operationen für umfangreiche Operationen. Eine Bibliothek mit Schwerpunkt auf Parallelität und Gleichzeitigkeit ist das HPX für C++ der STEllAR-Gruppe. Diese strebt an die Grenzen der MPI und andere traditionellen Parallelisierungsmethoden indem es Techniken wie die Nachrichten gesteuerte Berechnung und die Einschränkung basierte Synchronisierung zu nutzen. Während OpenMPI längst mehrere Optimierungen der Skalierbarkeit vorgestellt hat, kann HPX für die Nachrichtenverteilung nur auf einem Rechenknoten angewiesen sein . Dies führt letztendlich zu Leistungsengpässe. Unsere These schlägt einen hierarchischen Kommunikator für HPX vor. Dabei soll der Kommunikationsaufwand über mehrere Prozesse verteilt werden, folgend auch Overhead reduziert werden, während die Skalierbarkeit gesteigert wird. Wir haben Benchmarks erstellt, um unseren hierarchischen Kommunikator zum originalen HPX Kommunikator als auch diverse OpenMPI-Algorithmen zu vergleichen. Unsere Ergebnisse zeigen einen proportionalen Leistungsanstieg bei allen getesteten kollektiven Operationen auf HPX, wobei 256 Prozessen eine Beschleunigung von bis zu 32 für Reduktions- und Broadcast-Operationen und 16 für Gathering und Scattering erreicht. Verglichen mit den aktuellen OpenMPI-Versionen für Gather, Scatter und Broadcast zeigte unser Ansatz eine Beschleunigung von 1,2 und 1,5 für jeweils 128 und 256 Prozesse.

Description

Keywords

Citation

Endorsement

Review

Supplemented By

Referenced By