https://sdq.kastel.kit.edu/index.php?title=A_Parallelizing_Compiler_for_Adaptive_Auto-Tuning&feed=atom&action=historyA Parallelizing Compiler for Adaptive Auto-Tuning - Versionsgeschichte2024-03-29T05:15:34ZVersionsgeschichte dieser Seite in SDQ-InstitutsseminarMediaWiki 1.39.6https://sdq.kastel.kit.edu/mediawiki-institutsseminar/index.php?title=A_Parallelizing_Compiler_for_Adaptive_Auto-Tuning&diff=714&oldid=prevPhilip.pfaffe@kit.edu: Die Seite wurde neu angelegt: „{{Vortrag |vortragender=Timo Kegelmann |email=urdbm@student.kit.edu |vortragstyp=Masterarbeit |betreuer=Philip Pfaffe |termin=Institutsseminar/2018-10-05 |kurz…“2018-08-31T13:37:32Z<p>Die Seite wurde neu angelegt: „{{Vortrag |vortragender=Timo Kegelmann |email=urdbm@student.kit.edu |vortragstyp=Masterarbeit |betreuer=Philip Pfaffe |termin=Institutsseminar/2018-10-05 |kurz…“</p>
<p><b>Neue Seite</b></p><div>{{Vortrag<br />
|vortragender=Timo Kegelmann<br />
|email=urdbm@student.kit.edu<br />
|vortragstyp=Masterarbeit<br />
|betreuer=Philip Pfaffe<br />
|termin=Institutsseminar/2018-10-05<br />
|kurzfassung=Parallelisierende Compiler und Auto-Tuner sind zwei der vielen Technologien, die Entwick-<br />
lern das Schreiben von leistungsfähigen Anwendungen für moderne heterogene Systeme<br />
erleichtern können. In dieser Arbeit stellen wir einen parallelisierenden Compiler vor, der<br />
Parallelität in Programmen erkennen und parallelen Code für heterogene Systeme erzeu-<br />
gen kann. Außerdem verwendet der vorgestellte Compiler Auto-Tuning, um eine optimale<br />
Partitionierung der parallelisierten Codeabschnitte auf mehrere Plattformen zur Laufzeit<br />
zu finden, welche die Ausführungszeit minimiert. Anstatt jedoch die Parallelisierung ein-<br />
mal für jeden parallelen Abschnitt zu optimieren und die gefundenen Konfigurationen so<br />
lange zu behalten wie das Programm ausgeführt wird, sind Programme, die von unserem<br />
Compiler generiert wurden, in der Lage zwischen verschiedenen Anwendungskontexten zu<br />
unterscheiden, sodass Kontextänderungen erkannt und die aktuelle Konfiguration für je-<br />
den vorkommenden Kontext individuell angepasst werden kann. Zur Beschreibung von<br />
Kontexten verwenden wir sogenannte Indikatoren, die bestimmte Laufzeiteigenschaften<br />
des Codes ausdrücken und in den Programmcode eingefügt werden, damit sie bei der Aus-<br />
führung ausgewertet und vom Auto-Tuner verwendet werden können. Darüber hinaus<br />
speichern wir gefundene Konfigurationen und die zugehörigen Kontexte in einer Daten-<br />
bank, sodass wir Konfigurationen aus früheren Läufen wiederverwenden können, wenn die<br />
Anwendung erneut ausgeführt wird.<br />
Wir evaluieren unseren Ansatz mit der Polybench Benchmark-Sammlung. Die Ergeb-<br />
nisse zeigen, dass wir in der Lage sind, Kontextänderungen zur Laufzeit zu erkennen und<br />
die Konfiguration dem neuen Kontext entsprechend anzupassen, was im Allgemeinen zu<br />
niedrigeren Ausführungszeiten führt.<br />
}}</div>Philip.pfaffe@kit.edu