CELERITY: Innovative Modellierng für Skalierbare Verteilte Laufzeitsysteme
CELERITY: advanCed modELing for scalabIE distRIbuted runTime SYstems
DACH: Österreich - Deutschland - Schweiz
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
High Performance Computing,
Program Optimization
High-Performance Computing (HPC) spielt eine fundamentale Rolle für den wissenschaftlichen Fortschritt, da eine Vielzahl an Wissenschaftszweigen auf Verbesserungen in Computermodellen und der dafür benötigten Rechenleistung aufbauen. Der nächste große Meilenstein im H PC-Bereich ist der Übergang von Peta- auf Exascale, der schwierige Forschungsprobleme in der Entwicklerproduktivität, dem skalierbarem Softwaredesign und der Energieeffizienz aufwirft. Wir schlagen das CELERITY System vor, mit dem Ziel die effektive Entwicklung energie- und performanceeffizienter, planbar skalierbarer und leicht wartbarer paralleler Anwendungen für homogene und heterogene HPC Cluster zu unterstützen. Mit Hilfe ihres abstrakten Programmiermodells sichert die OELERITV-Umgebung hohe Produktivität, da sie Entwicklern aufwändige hardwarespezifische Aufgaben wie die Partitionierung und Verteilung von Programmfragmenten abnimmt -- also Aufgaben, die auf heterogenen Systemen besonders schwer manuell zu bewältigen sind. Um eine hohe Ausführungsgeschwindigkeit zu gewährleisten, wird CELERITY innovative statische Kernelanalyse mit Informationen kombinieren, die vom Laufzeitsystem bereitgestellt werden. Dies ermöglicht die Modellierung und Vorhersage der parallelen Skalierbarkeit eines Programms, sowie von dessen Energiebedarf. Für diese Modellierung werden fortschrittliche Methoden aus dem Maschinellen Lernen angewandt werden, wie zum Beispiel strukturiertes Lernen, welche die interne Repräsentation der Daten ausnutzen um genauere Vorhersagen zu treffen Wir planen unser System erst auf einem kleinen heterogenen Cluster zu testen, welches mit sehr genauen Energiemessern ausgestattet wurde. Im späteren Verlauf werden wir auf mehreren großen Clustern eine breite Palette an Anwendungsbenchmarks ausführen, wobei die jeweiligen Messinstrumente der Rechenzentren genutzt werden.
Das Celerity-Projekt zielt darauf ab, eine effiziente Plattform für die Entwicklung und Ausführung von HPC-Anwendungen (High-Performance Computing) auf Parallelrechnern mit Beschleunigerhardware bereitzustellen. Bestehende Programmieransätze beschränken sich auf einzelne Beschleuniger, herstellerkontrollierte APIs oder Abstraktionen, die mehrere bestehende APIs auf niederer Abstraktionsebene kombinieren. Mit diesem Ansatz lässt sich zwar eine gute Leistung erzielen, doch erfordert er von den EntwicklerInnen Fachkenntnisse sowohl in der parallelen Programmierung mit verteiltem Speicher als auch in der Handhabung von Beschleunigerhardware. Dieser Ansatz erhöht daher den Entwicklungs- und Wartungsaufwand beträchtlich und reduziert häufig Portabilität von Performance. Celerity schlägt einen minimalen Satz von Erweiterungen für SYCL vor, die es Programmen ermöglichen, Cluster von Beschleunigern mit nur sehr geringen Änderungen an einem SYCL-Programm für einen einzelnen Beschleunigungsknoten, zu programmieren. Celerity verwendet SYCL, ein modernes Single-Source-C++, um heterogene parallele Architekturen anzusprechen. Wir haben gezeigt, dass die Celerity-API im Vergleich zu konventionellen Ansätzen, die auf gekoppelten APIs beruhen, die Entwicklung eines Codes für Parallelrechner mit Beschleunigerhardware um mehr als 50 % reduziert. Während die SYCL-basierte Celerity-API zu deutlich weniger komplexem Code führt als ein traditioneller Ansatz, der mehrere APIs koppelt, erfordert sie dennoch, dass Entwickler mit den allgemeinen Konzepten der Beschleunigerhardware und der damit verbundenen Programmierkomplexität vertraut sind. Als Alternative auf einer noch höheren Abstraktionsebene haben wir eine High-Level-API entwickelt, die transparent von einer funktionalen Stream-Processing-Spezifikation auf die Celerity-API abgebildet wird. Das Celerity-Laufzeitsystem verkürzt die Laufzeit von Celerity-Programmen, indem es Datenstrukturen nutzt, die es der Laufzeit ermöglichen, Entscheidungen über die Arbeitsteilung und -verteilung zu treffen und dabei den Überblick über den Speicherort der Daten und die Abhängigkeiten zu behalten. Im Rahmen von Celerity arbeiten wir mit einer Partnergruppe der Universität Salerno zusammen, die maschinelles Lernen einsetzt, um die Leistung verschiedener Arbeitsverteilungsstrategien vorherzusagen und so die Laufzeit von Celerity-Programmen zu optimieren. Insgesamt hat Celerity den Stand von Programmier- und Laufzeitsystemtechniken für leistungsorientierte Programme verbessert, die von Parallelrechnern mit einer großen Anzahl von Beschleunigerhardware profitieren können. Bestehende Ansätze können zwar eine sehr gute Leistung erzielen, allerdings um den Preis eines im Vergleich zu Celerity höheren Entwicklungsaufwands.
- Universität Innsbruck - 100%
Research Output
- 90 Zitationen
- 15 Publikationen
- 1 Policies
- 1 Weitere Förderungen
-
2024
Titel Automatic Discovery of Collective Communication Patterns in Parallelized Task Graphs DOI 10.1007/s10766-024-00767-y Typ Journal Article Autor Knorr F Journal International Journal of Parallel Programming Seiten 171-186 Link Publikation -
2024
Titel Productivity and Performance in Heterogeneous Parallel Computing Typ Postdoctoral Thesis Autor Peter Thoman -
2022
Titel Declarative Data Flow in a Graph-Based Distributed Memory Runtime System DOI 10.1007/s10766-022-00743-4 Typ Journal Article Autor Knorr F Journal International Journal of Parallel Programming Seiten 150-171 Link Publikation -
2021
Titel Sylkan: Towards a Vulkan Compute Target Platform for SYCL DOI 10.1145/3456669.3456683 Typ Conference Proceeding Abstract Autor Thoman P Seiten 1-12 Link Publikation -
2021
Titel ndzip: A High-Throughput Parallel Lossless Compressor for Scientific Data DOI 10.1109/dcc50243.2021.00018 Typ Conference Proceeding Abstract Autor Knorr F Seiten 103-112 Link Publikation -
2022
Titel The Celerity High-level API: C++20 for Accelerator Clusters DOI 10.1007/s10766-022-00731-8 Typ Journal Article Autor Thoman P Journal International Journal of Parallel Programming Seiten 341-359 Link Publikation -
2020
Titel RTX-RSim DOI 10.1145/3388333.3388662 Typ Conference Proceeding Abstract Autor Thoman P Seiten 1-11 -
2020
Titel SYCL-Bench DOI 10.1145/3388333.3388669 Typ Conference Proceeding Abstract Autor Lal S Seiten 1-1 -
2019
Titel Celerity: High-Level C++ for Accelerator Clusters DOI 10.1007/978-3-030-29400-7_21 Typ Book Chapter Autor Thoman P Verlag Springer Nature Seiten 291-303 -
2021
Titel ndzip-gpu: efficient lossless compression of scientific floating-point data on GPUs DOI 10.5281/zenodo.7437645 Typ Preprint Autor Knorr F Link Publikation -
2021
Titel ndzip-gpu: efficient lossless compression of scientific floating-point data on GPUs DOI 10.5281/zenodo.7437646 Typ Preprint Autor Knorr F Link Publikation -
2021
Titel Porting Real-World Applications to GPU Clusters: A Celerity and Cronos Case Study DOI 10.1109/escience51609.2021.00019 Typ Conference Proceeding Abstract Autor Gschwandtner P Seiten 90-98 -
2021
Titel ndzip-gpu DOI 10.1145/3458817.3476224 Typ Conference Proceeding Abstract Autor Knorr F Seiten 1-14 Link Publikation -
2020
Titel SYCL-Bench: A Versatile Cross-Platform Benchmark Suite for Heterogeneous Computing; In: Euro-Par 2020: Parallel Processing - 26th International Conference on Parallel and Distributed Computing, Warsaw, Poland, August 24-28, 2020, Proceedings DOI 10.1007/978-3-030-57675-2_39 Typ Book Chapter Verlag Springer International Publishing -
0
DOI 10.1145/3458817 Typ Other
-
2021
Titel European High-Performance Computing Joint Undertaking Typ Research grant (including intramural programme) Förderbeginn 2021 Geldgeber European Union