Automatisierte Optimierung von Aufgaben- und Fließbandparallelität

  • Damit ein paralleles Programm optimale Leistung erzielt, muss es an die verwendete Hardwareplattform angepasst werden. Üblicherweise werden dafür Tuningparameter wie z. B. die Anzahl verwendeter Ausführungsfäden oder der Stufen in einer Fließbandstruktur einstellbar gemacht. Autotuner können die optimale Parameterkonfiguration automatisch bestimmen, haben aber den Nachteil, dass die Tuningparameter vom Programmierer manuell bereitgestellt werden müssen und aufgrund des großen Suchraums oftmals eine Vielzahl von Testläufen notwendig ist. In der Diplomarbeit wird ein Ansatz vorgestellt, der Tuningparameter automatisch aus parallelen Sprachkonstrukten ableitet und konfiguriert. Das Programm wird vom Übersetzer mit Tuningparametern instrumentiert, die zur Laufzeit mittels Heuristiken eingestellt werden. Für die evaluierten Anwendungen konnte dadurch die Anzahl manuell zu implementierender Tuningparameter um 91% reduziert werden. Die mittlere Fehlerrate der Heuristiken zur Bestimmung der Parameterkonfiguration betrug dabei zwischen 5% und 9% auf unterschiedlichen Plattformen.