Dynamisches Laufzeitsystem für zukünftige Parallelrechner
DYNAMIC RUNTIME SYSTEM FOR FUTURE PARALLEL ARCHITECTURES
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Runtime Systems,
Parallel Programming,
Parallel Architectures,
High Performance Computing,
Multicore Architectures
Die Entwicklung von Mikroprozessoren war im letzten Jahrzehnt von einschneidenden Veränderungen geprägt. Der Übergang zu Multicore-Prozessoren hat zur Folge, dass nur mehr Programme, die entsprechend parallelisiert wurden, die Leistung aktueller und zukünftiger Prozessorgenerationen ausnützen können. Der Bedarf an immer energieeffizienteren Systemen, führt jetzt zu einer weiteren radikalen Veränderung hin zu heterogenen Multicore-Systemen, die verschiedene Arten von Ausführungseinheiten mit unterschiedlichen, oft dynamisch variierenden Leistungsmerkmalen kombinieren. Die Komplexität der Softwareentwicklung wird dadurch wesentlich erhöht und nur mehr wenige hochspezialisierte Experten sind in der Lage, effiziente parallele Programme für solche Systeme zu entwickeln. In Anbetracht der kurzen Innovationszyklen sowie der Komplexität und Vielfalt von heterogenen parallelen Systemen, ist die derzeitige Praxis der manuellen Anpassung und Optimierung von Anwendungen für jede neue Architektur mit sehr hohen Kosten verbunden und daher nicht länger aufrecht zu erhalten. Es wird daher ein neuer Ansatz zur Entwicklung von parallelen Anwendungen benötigt, bei dem der Entwickler nur noch festlegt welche Teile eines Programms parallel ausgeführt werden können, nicht aber wie die parallele Ausführung auf einem bestimmten System implementiert wird. Die Realisierung eines solchen Ansatzes erfordert ein dynamisches Laufzeit-System, welches Programme während der Ausführung an die konkrete Parallelrechnerarchitektur anpasst. Ziel dieses Projekts ist es, grundlegende Methoden für dynamische Laufzeitsysteme zu entwickeln, um die Entwicklung effizienter und portabler Anwendungen für aktuelle und zukünftige heterogene Parallelrechner zu erleichtern. Unsere Forschungsarbeit wird auf der Open Community Runtime basieren, einer offenen Spezifikation eines dynamischen Laufzeitsystems, welche von führenden amerikanischen Forschungsinstitutionen entwickelt wurde. Im Mittelpunkt steht die Entwicklung von Laufzeitmethoden, die eine dynamische Aufteilung und Zuordnung von Berechnungen und Daten sowie die Anpassung der parallelen Ausführung bei Leistungsschwankungen der Hardware ermöglichen. Ein besonderer Schwerpunkt wird dabei auf Techniken zur Verbesserung der Datenlokalität gelegt, da die Leistung von Applikationen hauptsächlich durch die Kosten für Datentransfers beschränkt wird. Unsere Forschung im Bereich dynamischer Laufzeitsysteme und heterogener paralleler Systeme ist für das gesamte Spektrum von Computersystemen von mobilen und eingebetteten Systemen bis hin zu Hochleistungsrechnern und Supercomputern relevant. Unsere Forschungsarbeiten werden auch dazubeitragen, die Entwicklung dringend benötigter neuer paralleler Programmiermodelle und domänenspezifischer Sprachen voranzutreiben, um das immense Leistungspotenzial zukünftiger paralleler Systeme für neue Anwendungsbereiche zu erschließen.
Die Entwicklung von Mikroprozessoren im letzten Jahrzehnt hin zu immer höherer Parallelität, Spezialisierung und Heterogenität hat dazu geführt, dass die Komplexität von modernen Rechnerarchitekturen nur mehr von wenigen hochspezialisierten Programmierexpert*innen bewältigt werden kann. Betrachtet man zusätzlich die sehr kurzen Innovationszyklen und die Vielzahl unterschiedlicher Architekturen, so ist klar, dass der noch immer vorherrschende Ansatz, Programme manuell für jede unterschiedliche Architektur zu adaptieren und zu optimieren, auf Grund der damit verbundenen hohen Kosten nicht länger haltbar ist. Ziel dieses Projektes war es daher grundlegende Programmiermethoden und Werkzeuge zu entwickeln, um die Programmierung effizienter und portabler Anwendungen für aktuelle und zukünftige Parallelrechner zu vereinfachen. Unser Ansatz basiert auf einer klaren Trennung der Spezifikation paralleler Programmaufgaben (tasks) von deren Implementierung auf einer bestimmten Zielarchitektur. Eine zentrale Rolle spielt dabei ein task-basiertes dynamisches Laufzeitsystem, welches das auszuführende Programm während der Ausführung automatisch für die jeweilige Zielarchitektur anpasst und optimiert. Die wichtigsten Forschungsaktivitäten des Projektes umfassten die Laufzeitunterstützung für heterogene Architekturen, neue lokalitätsgetriebene Schedulingstrategien für Architekturen mit komplexen Speicherhierarchien, die Entwicklung neuer Konzepte zur Modellierung von Rechnerplattformen und ihrer Programmierparadigmen, Methoden zur Adaptierung des Parallelitätsgrades, sowie die Programmierunterstützung auf einer hohen Abstraktionsebene. In Anbetracht der großen Bedeutung von Applikationen zur Datenanalyse und deren Kopplung mit Hochleistungssimulationen wurden auch neue Laufzeitmethoden zur dynamischen Optimierung gleichzeitig laufender Anwendungen entwickelt. Es zeigte sich, dass task-basierte Laufzeitsysteme die notwendige Flexibilität bieten, um zukünftige Applikationsszenarien wie zum Bespiel in-situ Datenanalyse oder die Kopplung von Simulationen mit Maschinellem Lernen zu unterstützen. Unsere Forschungsarbeiten haben dazu beigetragen die Entwicklung dringend benötigter neuer Programmiermethoden und Werkzeuge voranzutreiben, um das immense Leistungspotenzial zukünftiger paralleler Systeme für neue Anwendungsbereiche zu erschließen. Obwohl unsere Arbeiten hauptsächlich im Kontext der Open Community Runtime und unserer Implementierung OCR-Vx durchgeführt wurden, sind unsere Forschungsresultate für ähnliche Systeme in Europa und den USA anwendbar. Durch die absehbare Entwicklung von noch komplexeren Prozessorarchitekturen, dem stetigen Bedarf an immer größerer Rechenleistung und die Konvergenz vonklassischem Hochleistungsrechnen mit Maschinellem Lernen, werdenflexible Programmiermethoden immer wichtiger. Unsere Forschungsergebnisse stützen die Hypothese, dass task-basierte Laufzeitsysteme ein vielversprechender Weg für die Entwicklung neuer Programmiermodelle und Anwendungssoftware sind, um das Potential zukünftiger Prozessorarchitekturen ausschöpfen zu können.
- Universität Wien - 100%
Research Output
- 49 Zitationen
- 16 Publikationen
- 1 Policies
- 1 Methoden & Materialien
- 1 Datasets & Models
- 1 Software
- 1 Disseminationen
- 1 Weitere Förderungen
-
2019
Titel Pipeline Patterns on Top of Task-Based Runtimes DOI 10.1007/978-981-13-5907-1_11 Typ Book Chapter Autor Bajrovic E Verlag Springer Nature Seiten 100-110 -
2019
Titel Exploring the Performance of Fine-Grained Synchronization and Data Exchange Across Process Boundaries on Modern Multi-core Architectures DOI 10.1007/978-3-030-22750-0_45 Typ Book Chapter Autor Dokulil J Verlag Springer Nature Seiten 514-520 -
2017
Titel The Open Community Runtime on the Intel Knights Landing Architecture DOI 10.1007/978-3-319-65482-9_65 Typ Book Chapter Autor Dokulil J Verlag Springer Nature Seiten 801-813 -
2018
Titel Adaptive Scheduling of Collocated Applications Using a Task-Based Runtime System DOI 10.1109/cahpc.2018.8645869 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 41-48 -
2020
Titel clusterCL: comprehensive support for multi-kernel data-parallel applications in heterogeneous asymmetric clusters DOI 10.1007/s11227-020-03234-w Typ Journal Article Autor Raca V Journal The Journal of Supercomputing Seiten 9976-10008 -
2020
Titel A benchmark set of highly-efficient CUDA and OpenCL kernels and its dynamic autotuning with Kernel Tuning Toolkit DOI 10.1016/j.future.2020.02.069 Typ Journal Article Autor Petrovic F Journal Future Generation Computer Systems Seiten 161-177 Link Publikation -
2020
Titel Automatic Placement of Tasks to NUMA Nodes in Iterative Applications DOI 10.1109/pdp50117.2020.00036 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 192-195 -
2018
Titel Consistency model for runtime objects in the Open Community Runtime DOI 10.1007/s11227-018-2681-2 Typ Journal Article Autor Dokulil J Journal The Journal of Supercomputing Seiten 2725-2760 Link Publikation -
2018
Titel Automatic Detection of Synchronization Errors in Codes that Target the Open Community Runtime DOI 10.1007/978-3-319-96983-1_1 Typ Book Chapter Autor Dokulil J Verlag Springer Nature Seiten 3-15 -
2022
Titel The OCR-Vx experience: lessons learned from designing and implementing a task-based runtime system DOI 10.1007/s11227-022-04355-0 Typ Journal Article Autor Dokulil J Journal The Journal of Supercomputing Seiten 12344-12379 Link Publikation -
2021
Titel Let’s Put the Memory Model Front and Center When Teaching Parallel Programming in C++ DOI 10.1109/ipdpsw52791.2021.00057 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 315-320 -
2021
Titel Task-Based Performance Portability in HPC DOI 10.5281/zenodo.5549731 Autor Aumage O Link Publikation -
2021
Titel Task-Based Performance Portability in HPC DOI 10.5281/zenodo.5549730 Autor Aumage O Link Publikation -
2020
Titel NUMA-aware CPU core allocation in cooperating dynamic applications DOI 10.1109/ipdpsw50202.2020.00158 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 950-957 -
2017
Titel Visualization of Open Community Runtime Task Graphs DOI 10.1109/iv.2017.31 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 236-241 -
2017
Titel Extending the Open Community Runtime with External Application Support DOI 10.1145/3152041.3152088 Typ Conference Proceeding Abstract Autor Dokulil J Seiten 1-7
-
2021
Titel White paper ETP4HPC Typ Participation in a guidance/advisory committee
-
2021
Titel Offline and Online Autotuning of Parallel Applications Typ Other Förderbeginn 2021 Geldgeber Austrian Science Fund (FWF)