Autotuning und Heterogenisierung der parallelen GNU C++ Standardbibliothek

  • Das Ziel der vorliegenden Masterarbeit war es, Algorithmen aus der parallelen C++-Standardbibliothek der GNU Compiler Collection so anzupassen, dass Teile der Rechenlast auf eine externe Beschleunigerkarte ausgelagert werden können. Die Verteilung der Last zwischen dem Beschleuniger und dem Systemprozessor sollte mittels eines Autotuners optimiert werden. Dazu wurden Algorithmen analysiert und anhand ihrer Eignung zur Auslagerung ausgewählt. Zusätzlich wurden Bereiche und Variablen markiert, die dem verwendeten Autotuner Kontrolle über die Lastverteilung und die resultierenden Laufzeitveränderungen geben. Die Laufzeiten der veränderten Algorithmen wurden mit den Laufzeiten der ursprünglichen Implementierungen verglichen, um den Erfolg der Auslagerungsmaßnahmen zu beziffern. Die Messergebnisse zeigen, dass sich nur dann ein Vorteil durch Auslagerung und Autotuning erreichen lässt, wenn die verwendeten Funktionen für die Ausführung auf einem Beschleuniger geeignet sind. Unter geeigneten Bedingungen war es mir jedoch möglich, Speedups von bis zu 40 zu erreichen.