Automatische Portable Rechenleistung für Heterogene Multicore-Systeme
Automatic Portable Performance for Heterogeneous Multi-cores
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Compiler,
Parallel,
Heterogenous,
Machine Learning,
Modelling,
Optimisation
Den in Programmen enthalten Parallelismus effizient auf heterogene Multicore-Prozessoren zu übertragen stellt sich als eine sehr schwierige Aufgabe heraus, die überdies stark von der zu Grunde liegenden Architektur abhängt. Ziel dieses Projektes ist die Erforschung eines neuartigen Ansatzes, nach dem ein paralleler Compiler automatisch lernt, wie Programmparallelismus optimal auf heterogene Multicore-Plattformen abgebildet werden kann. Anstatt eine Übersetzungsstrategie für jede einzelne parallele Plattform "hart" zu kodieren, verfolgen wir einen innovativen und portablen Ansatz: der parallele Compiler passt sich selbst automatisch an jede beliebige heterogene Hardware an, und kann im Laufe der Zeit seine Leistung verbessern. Dies wird mittels maschineller Lernverfahren erreicht, die zuerst offline den Raum der möglichen Optimierungen ausloten, um daraus anschliessend eine Strategie abzuleiten, die für ein beliebiges Benutzerprogramm die günstigste Zuordnung liefert. Dieser, auf Vorhersagemodellen beruhende, Ansatz kann um Online-Anpassungen, zur Handhabung von Ressourcenkonflikten, weiter ausgebaut werden. Das Projekt zielt auf die Erforschung von Multicore-Systemsoftware, die "für die Zukunft skalierbar" ist. Sollte dies gelingen, wird es eine breite Palette von Anwendungen, für High Performance Computing über Desktop Computer bis hin zu mobilen Geräten, geben. Es ermöglicht die portable, plattformübergreifende Performance paralleler Programme; angesichts der zunehmenden Verbreitung heterogener Multicore-Systeme ist zu erwarten, dass solch ein Ansatz international breite akademische Auswirkungen haben und von erheblichem Nutzen für die Industrie innerhalb der EU sein wird. Multi-Core-Prozessoren sind allgegenwärtig und werden als die am ehesten gangbare Möglichkeit angesehen, mit zunehmender Transistordichte höhere Performance zu erzielen. Zeitgleich mit diesem Aufstieg der Multicore-Systeme haben sich spezialisierte oder kundenspezifische Prozessoren wie etwa Universal-Graphikprozessoren (GP-GPU) durchgesetzt. Leider gibt es keinen klar vorgezeichneten Weg, wie sich die Anwendungssoftware diese Leistung zunutze machen kann. Da dies mit aktueller Compiler-Technologie, deren Aufgabe darin besteht, Software auf die darunter liegende Hardware abzubilden, schlicht unmöglich ist, sind erhebliche manuelle Eingriffe seitens des Programmierers erforderlich, eine Abstimmung auf jedes System. Da die Anzahl und Vielfalt der Prozessoren in Multicore-Systemen zunimmt, wächst diese Software-Kluft und wird ein kritisches Problem von Computersystemen in fünf Jahren darstellen.
Die effiziente Parallelisierung und Optimierung von Programmen für moderne heterogene Parallelrechner ist extrem schwierig und hängt darüber hinaus auch von der zugrundeliegenden Architektur ab. Das Ziel dieser Arbeit war ein neuer Ansatz auf Basis eines Übersetzers, der die Übertragung eines Programms auf moderne Rechner mit GPUs (Grafikprozessoren) durch Lernen verbessert. Solche Rechner mit GPUs findet man weitverbreitet in Konsumentenrechnern, industriellen und wissenschaftlichen Rechnern. Statt einer fixen rechnerspezifischen Lösung auf Basis eines Übersetzers anzubieten, haben wir uns für eine innovative Übersetzertechnologie entschieden, die die Performance für heterogene Rechner automatisch anpassen kann. In diesem Zusammenhang haben wir Techniken aus dem Bereich des Maschinenlernens verwendet, die zunächst den Optimierungsraum reduzieren und danach eine Strategie für die beste Übertragung eines Programms auf eine Zielarchitektur ermitteln. Im Zentrum unseres Projekts stand OpenCL, der erste offene Standard einer Programmiersprache für eine große Klasse von heterogenen Parallelrechnern. Die Entwicklung von Programmen für heterogene Rechnersysteme ist ein hochkomplexer Prozess aufgrund von unterschiedlichen Rechnereinheiten, Speichermodulen und Übertragungsgeschwindigkeiten, die man in modernen Parallelrechnern findet. Im Rahmen dieses Projekts haben wir die Lastverteilung von OpenCL Programmen für heterogene Parallelrechner erforscht. Die besondere Schwierigkeit bestand darin, dass die beste Lastverteilung von der Anwendung, den Eingabedaten und der Zielarchitektur abhängt. In diesem Zusammenhang haben wir eine neue Lösung mit Hilfe von Maschinenlernen entwickelt. Unsere neue Lösung hat bisherige Ansätze auf der Basis von zahlreichen Testcodes um ca. 25 % verbessert. Eine zentrale Komponente dieser Lösung war ein Vorhersagemodell, das mit Hilfe eines neuronalen Netzwerks und der Principal Component Analysis entwickelt wurde. Dieses Modell versucht effiziente Task-Verteilungen abzuschätzen, die für den zugrundeliegenden Übersetzer zur Steuerung der Optimierung verwendet wird. Dieser Ansatz wurde unter dem Insieme Compiler entwickelt und wird von der Universität Innsbruck frei zur Verfügung gestellt. Darüber hinaus ist es uns zum ersten Mal gelungen, OpenCL für Clusterrechner mit GPUs zu erweitern. Experimente haben gezeigt, dass unser Lösungsansatz eine Effizienz von 64 % für zahlreiche Testcodes erreicht. Unsere Forschung und Resultate sind daher ein guter Anfang zur effizienten Nutzung von heterogenen Rechnern mit reduzierter Laufzeit und verbesserter Produktivität von parallelen Programmen.
- Universität Innsbruck - 100%
Research Output
- 323 Zitationen
- 18 Publikationen
-
2012
Titel Automatic OpenMP Loop Scheduling: A Combined Compiler and Runtime Approach DOI 10.1007/978-3-642-30961-8_7 Typ Book Chapter Autor Thoman P Verlag Springer Nature Seiten 88-101 -
2012
Titel The JavaSymphony Extensions for Parallel GPU Computing DOI 10.1109/icpp.2012.56 Typ Conference Proceeding Abstract Autor Aleem M Seiten 30-39 -
2012
Titel Low-Latency Collectives for the Intel SCC DOI 10.1109/cluster.2012.58 Typ Conference Proceeding Abstract Autor Kohler A Seiten 346-354 -
2012
Titel Tuning MPI Runtime Parameter Setting for High Performance Computing DOI 10.1109/clusterw.2012.15 Typ Conference Proceeding Abstract Autor Pellegrini S Seiten 213-221 -
2012
Titel A Multi-Objective Auto-Tuning Framework for Parallel Codes DOI 10.1109/sc.2012.7 Typ Conference Proceeding Abstract Autor Jordan H Seiten 1-12 -
2012
Titel A multi-objective auto-tuning framework for parallel codes. Typ Conference Proceeding Abstract Autor Moritsch H Et Al -
2011
Titel Performance Analysis and Benchmarking of the Intel SCC DOI 10.1109/cluster.2011.24 Typ Conference Proceeding Abstract Autor Gschwandtner P Seiten 139-149 -
2011
Titel Visual Data Mining Using the Point Distribution Tensor. Typ Conference Proceeding Abstract Autor Leimer W Et Al -
2013
Titel An automatic input-sensitive approach for heterogeneous task partitioning DOI 10.1145/2464996.2465007 Typ Conference Proceeding Abstract Autor Kofler K Seiten 149-160 -
2013
Titel Automatic problem size sensitive task partitioning on heterogeneous parallel systems DOI 10.1145/2442516.2442545 Typ Conference Proceeding Abstract Autor Grasso I Seiten 281-282 -
2013
Titel LibWater: heterogeneous distributed computing made easy. Typ Conference Proceeding Abstract Autor Fahringer T Et Al -
2014
Titel Kd-tree based N-Body Simulations with Volume-Mass Heuristic on the GPU DOI 10.1109/ipdpsw.2014.141 Typ Conference Proceeding Abstract Autor Kofler K Seiten 1256-1265 -
2014
Titel Energy Efficient HPC on Embedded SoCs: Optimization Techniques for Mali GPU DOI 10.1109/ipdps.2014.24 Typ Conference Proceeding Abstract Autor Grasso I Seiten 123-132 -
2014
Titel Random Fields Generation on the GPU with the Spectral Turning Bands Method DOI 10.1007/978-3-319-09873-9_55 Typ Book Chapter Autor Hunger L Verlag Springer Nature Seiten 656-667 -
2014
Titel SAMPO: an Agent-based mosquito point model in OpenCL. Typ Conference Proceeding Abstract Autor Gesing S Et Al Konferenz Proceedings of the 2014 Symposium on Agent Directed Simulation. -
2013
Titel LibWater DOI 10.1145/2464996.2465008 Typ Conference Proceeding Abstract Autor Grasso I Seiten 161-172 -
2012
Titel OpenMP in a Heterogeneous World, 8th International Workshop on OpenMP, IWOMP 2012, Rome, Italy, June 11-13, 2012. Proceedings DOI 10.1007/978-3-642-30961-8 Typ Book Verlag Springer Nature -
2014
Titel A uniform approach for programming distributed heterogeneous computing systems DOI 10.1016/j.jpdc.2014.08.002 Typ Journal Article Autor Grasso I Journal Journal of Parallel and Distributed Computing Seiten 3228-3239 Link Publikation