Go to page
 

Bibliographic Metadata

Title
Using just-in-time code generation to transparently accelerate applications in heterogeneous systems / by Gavin Vaz
AuthorVaz, Gavin
ParticipantsPlessl, Christian ; Platzner, Marco ; Rammig, Franz Josef ; Anjorin, Anthony ; Pfahler, Peter
PublishedPaderborn, 2019
Edition
Elektronische Ressource
Description1 Online-Ressource (xviii, 114 Seiten) : Illustrationen, Diagramme
Institutional NoteUniversität Paderborn, Dissertation, 2019
Annotation
Tag der Verteidigung: 24.09.2019
Defended on2019-09-24
LanguageEnglish
Document TypesDissertation (PhD)
URNurn:nbn:de:hbz:466:2-35759 
DOI10.17619/UNIPB/1-817 
Files
Using just-in-time code generation to transparently accelerate applications in heterogeneous systems [1.74 mb]
Links
Reference
Classification
Abstract (German)

Datenparallele Workloads im Bereich High Performance Computing förderndie Entwicklung von energieeffizienten heterogenen Systemen, die geeignete rechenintensive Aufgaben auf Beschleunigern ausführen, um den Datendurchsatz zu maximieren. Um von diesen heterogenen Systemen zu profitieren, müssen Anwendungsentwickler ihre Anwendung jedoch auf die jeweiligen Beschleunigerarchitekturen portieren. Dies erfordert nicht nur anwendungs- und domänenspezifisches Wissen, sondern auch ein tiefgreifendes Verständnis der Beschleunigerarchitekturen, und mündet letztendlich in einem erhöhten Entwicklungsaufwand und somit höheren Gesamtkosten. Um den Portierungsprozess zu vereinfachen, haben wir einen neuartigen automatischen und transparenten Parallelisierungsansatz, kurz Runtime and Just-in-Time Compilation System (RTCS), entwickelt. Das RTCS ist in der Lage, sequenzielle Anwendungen transparent zu transformieren, um heterogene Systeme mit mehreren Beschleunigern mit Hilfe von OpenCL zu unterstützen. Das RTCS parallelisiert die Anwendung, indem es automatisch geeignete datenparallele Schleifen erkennt und in unabhängige OpenCL-Kernel umwandelt. Der entsprechende OpenCL-Hostcode, der zum Einrichten des Beschleunigers, zum Erstellen der benötigten OpenCL-Puffer, zum Übertragen der Daten sowie zum Starten des OpenCL-Kernels benötigt wird, wird ebenfalls automatisch generiert. Ferner ist das RTCS in der Lage, Datentransfers zu optimieren und OpenCL-Kernel zu kacheln (tiling), um ihre Leistung zu verbessern. Dadurch könnenNutzer automatisch und transparent Anwendungen aus verschiedenen Bereichen beschleunigen lassen und ohne manuellen Portierungsaufwand verschiedene Beschleuniger verwenden. Diese Kombination aus transparenter und flexibler Unterstützung verschiedener Zielarchitekturen macht das RTCS einzigartig im Bereich der Parallelisierungswerkzeuge.

Abstract (English)

In the high performance computing domain, data parallel workloads are driving architectures toward energy efficient heterogeneous systems capable of executing computationally intensive tasks on accelerators designed to maximize data throughput. However, to benefit from this, application developers need to port their applications to different architectures, which requires not only application and domain-specific knowledge, but also the understanding of different accelerator architectures, resulting in increased design effort and overall costs. To help simplify this porting process, we have developed a novel automatic and transparent parallelization approach known as the Runtime and Just-in-Time Compilation System (RTCS), which is capable of transparently porting sequential programs to different heterogeneous multi-accelerator architectures via OpenCL. The RTCS parallelizes the application by automatically detecting and transforming suitable data-parallel loops into independent OpenCL kernels. The corresponding OpenCL host code required to setup the OpenCL device, create OpenCL buffers, transfer data to the device and launch the OpenCL kernel on the device is also automatically generated. Additionally, the RTCS applies data transfer optimizations and is also able to tile OpenCL kernels to improve their performance. Our parallelization approach is capable of automatically generating accelerated code from sequential applications in a Just-in-Time (JIT) manner, allowing users to automatically and transparently accelerate applications from diverse domains and target different accelerators without any manual effort. This combination of transparent and flexible support for different target architectures makes the RTCS unique in the domain of parallelization and offloading tools.

License
CC-BY-NC-SA-License (4.0)Creative Commons Attribution - NonCommercial - ShareAlike 4.0 International License