INPACT
INnovatives Parallelisieren und Autotuning für ParallelreChner unter Ausnutzung von Rekursivem Task Parallelismus
Programm / Ausschreibung | Bridge, Bridge_NATS, Bridge_NATS 2017 | Status | abgeschlossen |
---|---|---|---|
Projektstart | 01.09.2018 | Projektende | 31.08.2021 |
Zeitraum | 2018 - 2021 | Projektlaufzeit | 36 Monate |
Keywords | Parallelrechnen, Autotuning, Task Parallelismus |
Projektbeschreibung
Parallelrechnen zählt zu den wichtigsten Technologien, um laufzeitintensive Programme zu beschleunigen. Die Parallelisierung und Optimierung von Programmen ist jedoch in vielen Fällen sehr komplex, fehleranfällig und zeitaufwendig. Um diese Barriere zu überwinden, müssen einige zentrale Probleme in der Grundlagenforschung für die Programmierung von Parallelrechnern gelöst werden. Dazu zählen die Portierbarkeit von Performance für verschiedene Parallelrechner, die Notwendigkeit von Spezialkenntnissen über Rechner und Parallelisierungsumgebung sowie die Optimierung für ein Kriterium (z. B. Laufzeit).
Im Rahmen der Grundlagenforschung entwickelt INPACT eine neue Toolchain für parallele C/C++-Programme, um zu zeigen, dass die Entwicklung laufzeitintensiver, wissenschaftlicher und industrieller Simulationen sowie eingebetteter paralleler Software deutlich vereinfacht und in der Performance substanziell verbessert werden kann. Dies soll durch zwei Anwendungen aus dem Bereich des 3D-Scannings und einer Anwendung aus dem Bereich der Astrophysik demonstriert werden. Mit der Toolchain können C++-Programme für mehrere Ziele (z. B. Laufzeit und Ressourceneffizienz) parallelisiert und optimiert werden. INPACT wird im Gegensatz zum bisherigen Stand der Forschung eine neue bibliotheksbasierte API auf Basis von C++-Templates entwickeln, die mit anwenderfreundlichen Datenstrukturen und Operatoren die Parallelisierung von Programmen auf hoher Abstraktionsebene ermöglicht. Darüber hinaus wird durch die Verwendung von geschachteltem Parallelismus die Datenlokalität sowie die Portierbarkeit von Performance für moderne Parallelrechner mit gemeinsamem Speicher substanziell verbessert. Während die meisten Parallelisierungsumgebungen bisher nur auf eine manuelle Abstimmung von Software- und Hardwareparametern gesetzt haben, wird im Rahmen von INPACT ein innovatives Auto-Tuning für die automatische Anpassung von Programmen an verschiedene Rechner entwickelt. Die INPACT Toolchain wird anhand der genannten Anwendungen in Bezug auf Vereinfachung der Parallelisierung und Optimierung, Portierbarkeit sowie Laufzeiten und Ressourceneffizienz für verschiedene Problemgrößen evaluiert.
Abstract
Parallel computing is one of the most important technologies for accelerating runtime-intensive programs. However, the parallelization and optimization of programs is very complex, error-prone and time-consuming in many cases. To overcome this barrier, some key problems in basic research for programming parallel computers need to be solved. These include the portability of performance for different parallel computers, the need of special knowledge of computers and the parallelization environment as well as optimization for one criterion (e.g., runtime).
Within the planned basic research of INPACT, we will develop a new Toolchain for parallel C/C++ programs to show that the development of runtime-intensive, scientific and industrial simulations and embedded parallel software can be significantly simplified and its performance substantially improved. This will be demonstrated by two applications in the field of 3D scanning and one application in the field of astrophysics. With the Toolchain, C++ programs can be parallelized and optimized for several goals (e.g. runtime and resource efficiency). In contrast to the current state of research, INPACT will develop a new library-based API based on C++ templates, which enables the parallelisation of programs at a high level of abstraction with user-friendly data structures and operators. In addition, the use of nested parallelism substantially will improve data locality and performance portability for modern parallel computers with shared memory. While most parallelization environments have so far only focused on manual tuning of software and hardware parameters, INPACT is developing an innovative auto-tuning for the automatic adaptation of programs to different computers. The INPACT Toolchain will be evaluated with respect to simplification of parallelization and optimization, performance portability as well as runtime and resource efficiency for different problem sizes of the applications.