Ein Framework zur Optimierung der Energieeffizienz von HPC-Anwendungen auf der Basis von Machine-Learning-Methoden

Research output: Types of ThesisDoctoral thesis

Abstract

Ein üblicher Ansatzpunkt zur Verbesserung der Energieeffizienz im High Performance Computing (HPC) ist, neben Verbesserungen an der Hardware oder einer effizienteren Nachnutzung der Wärme des Systems, die Optimierung der ausgeführten Programme. Dazu können zum Beispiel energieoptimale Einstellungen, wie die Frequenzen des Prozessors, für verschiedene Programmfunktionen bestimmt werden, um diese dann im späteren Verlauf des Programmes anwenden zu können. Mit jeder Änderung des Programmes kann sich dessen optimale Einstellung ändern, weshalb diese zeitaufwendig neu bestimmt werden muss. Das stellt eine wesentliche Hürde für die Anwendung solcher Verfahren dar. Dieser Prozess des Bestimmens der optimalen Frequenzen kann mithilfe von Machine-Learning-Methoden vereinfacht werden, wie in dieser Arbeit gezeigt wird. So lässt sich mithilfe von sogenannten Performance-Events ein neuronales Netz erstellen, mit dem während der Ausführung des Programmes die optimalen Frequenzen automatisch geschätzt werden können. Performance-Events sind prozessorintern und können Einblick in die Abläufe im Prozessor gewähren. Bei dem Einsatz von Performance-Events gilt es einige Fallstricke zu vermeiden. So werden die Performance-Events von Performance-Countern gezählt. Die Anzahl der Counter ist allerdings begrenzt, womit auch die Anzahl der Events, die gleichzeitig gezählt werden können, limitiert ist. Eine für diese Arbeit wesentliche Fragestellung ist also: Welche dieser Events sind relevant und müssen gezählt werden? Bei der Beantwortung dieser Frage sind Merkmalsauswahlverfahren hilfreich, besonders sogenannte Filtermethoden, bei denen die Merkmale vor dem Training ausgewählt werden. Viele bekannte Methoden gehen dabei entweder davon aus, dass die Zusammenhänge zwischen den Merkmalen linear sind, wie z. B. bei Verfahren, die den Pearson-Korrelationskoeffizienten verwenden, oder die Daten müssen in Klassen eingeteilt werden, wie etwa bei Verfahren, die auf der Transinformation beruhen. Beides ist für Performance-Events nicht ideal. Auf der einen Seite können keine linearen Zusammenhänge angenommen werden. Auf der anderen Seite bedeutet das Einteilen in Klassen einen Verlust an Information. Um diese Probleme zu adressieren, werden in dieser Arbeit bestehende Merkmalsauswahlverfahren mit den dazugehörigen Algorithmen analysiert, neue Verfahren entworfen und miteinander verglichen. Es zeigt sich, dass mit neuen Verfahren, die auf sogenannten Copulas basieren, auch nichtlineare Zusammenhänge erkannt werden können, ohne dass die Daten in Klassen eingeteilt werden müssen. So lassen sich schließlich einige Events identifiziert, die zusammen mit neuronalen Netzen genutzt werden können, um die Energieeffizienz von HPC-Anwendung zu steigern. Das in dieser Arbeit erstellte Framework erfüllt dabei neben der Auswahl der Performance-Events weitere Aufgaben: Es stellt sicher, dass diverse Programmteile mit verschiedenen optimalen Einstellungen voneinander unterschieden werden können. Darüber hinaus sorgt das Framework dafür, dass genügend Daten erzeugt werden, um ein neuronales Netz zu trainieren, und dass dieses Netz später einfach genutzt werden kann. Dabei ist das Framework so flexibel, dass auch andere Machine-Learning-Methoden getestet werden können. Die Leistungsfähigkeit des Frameworks wird abschließend in einer Ende-zu-Ende-Evaluierung an einem beispielhaften Programm demonstriert. Die Evaluierung il­lus­t­riert, dass bei nur 7% längerer Laufzeit eine Energieeinsparung von 24% erzielt werden kann und zeigt damit, dass mit Machine-Learning-Methoden wesentliche Energieeinsparungen erreicht werden können.

Details

Original languageGerman
Qualification levelDr.-Ing.
Awarding Institution
Supervisors/Advisors
  • Nagel, Wolfgang Erwin, Main supervisor
  • Kersting, Kristian, Reviewer, External person
Defense Date (Date of certificate)30 Sept 2022
Publication statusPublished - 3 Nov 2022
No renderer: customAssociatesEventsRenderPortal,dk.atira.pure.api.shared.model.researchoutput.Thesis