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

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.:1 Einleitung und Motiovation 2 Energieeffizienz und Machine-Learning – eine thematische Einführung 2.1 Energieeffizienz von Programmen im Hochleistungsrechnen 2.1.1 Techniken zur Energiemessung oder -abschätzung 2.1.2 Techniken zur Beeinflussung der Energieeffizienz in der Hardware 2.1.3 Grundlagen zur Performanceanalyse 2.1.4 Regionsbasierte Ansätze zur Erhöhung der Energieeffizienz 2.1.5 Andere Ansätze zur Erhöhung der Energieeffizienz 2.2 Methoden zur Merkmalsauswahl 2.2.1 Merkmalsauswahlmethoden basierend auf der Informationstheorie 2.2.2 Merkmalsauswahl für stetige Merkmale 2.2.3 Andere Verfahren zur Merkmalsauswahl 2.3 Machine-Learning mit neuronalen Netzen 2.3.1 Neuronale Netze 2.3.2 Backpropagation 2.3.3 Aktivierungsfunktionen 3 Merkmalsauswahl für mehrdimensionale nichtlineare Abhängigkeiten 3.1 Analyse der Problemstellung, Merkmale und Zielgröße 3.2 Merkmalsauswahl mit mehrdimensionaler Transinformation für stetige Merkmale 3.2.1 Mehrdimensionale Copula-Entropie und mehrdimensionale Transinformation 3.2.2 Schätzung der mehrdimensionalen Transinformation basierend auf Copula-Dichte 3.3 Normierung 3.4 Vergleich von Copula-basierten Maßzahlen mit der klassischen Transinformation und dem Pearson-Korrelationskoeffizienten 3.4.1 Deterministische Abhängigkeit zweier Variablen 3.4.2 UnabhängigkeitVergleich verschiedener Methoden zur Auswahl stetiger Merkmale 3.5 Vergleich verschiedener Methoden zur Auswahl stetiger Merkmale 3.5.1 Erzeugung synthetischer Daten 3.5.2 Szenario 1 – fünf relevante Merkmale 3.5.3 Szenario 2 – fünf relevante Merkmale, fünf wiederholte Merkmale 3.5.4 Schlussfolgerungen aus den Simulationen 3.6 Zusammenfassung 4 Entwicklung und Umsetzung des Frameworks 4.1 Erweiterungen der READEX Runtime Library 4.1.1 Grundlegender Aufbau der READEX Runtime Library 4.1.2 Call-Path oder Call-Tree 4.1.3 Calibration-Module 4.2 Testsystem 4.2.1 Architektur 4.2.2 Bestimmung des Offsets zur Energiemessung mit RAPL 4.3 Verwendete Benchmarks zur Erzeugung der Datengrundlage 4.3.1 Datensatz 1: Der Stream-Benchmark 4.3.2 Datensatz 2: Eine Sammlung verschiedener Benchmarks 4.4 Merkmalsauswahl und Modellgenerierung 4.4.1 Datenaufbereitung 4.4.2 Merkmalsauswahl Algorithmus 4.4.3 Performance-Events anderer Arbeiten zum Vergleich 4.4.4 Erzeugen und Validieren eines Modells mithilfe von TensorFlow und Keras 4.5 Zusammenfassung 5 Evaluierung des Ansatzes 5.1 Der Stream-Benchmark 5.1.1 Analyse der gewählten Merkmale 5.1.2 Ergebnisse des Trainings 5.2 Verschiedene Benchmarks 5.2.1 Ausgewählte Merkmale 5.2.2 Ergebnisse des Trainings 5.3 Energieoptimierung einer Anwendung 6 Zusammenfassung und Ausblick Literatur Abbildungsverzeichnis Tabellenverzeichnis QuelltextverzeichnisThere are a variety of different approaches to improve energy efficiency in High Performance Computing (HPC). Besides advances to the hardware or cooling systems, optimising the executed programmes' energy efficiency is another a promising approach. Determining energy-optimal settings of program functions, such as the processor frequency, can be applied during the program's execution to reduce energy consumption. However, when the program is modified, the optimal setting might change. Therefore, the energy-optimal settings need to be determined again, which is a time-consuming process and a significant impediment for applying such methods. Fortunately, finding the optimal frequencies can be simplified using machine learning methods, as shown in this thesis. With the help of so-called performance events, a neural network can be trained, which can automatically estimate the optimal processor frequencies during program execution. Performance events are processor-specific and can provide insight into the procedures of a processor. However, there are some pitfalls to be avoided when using performance events. Performance events are counted by performance counters, but as the number of counters is limited, the number of events that can be counted simultaneously is also limited. This poses the question of which of these events are relevant and need to be counted. % Though the issue has received some attention in several publications, a convincing solution remains to be found. In answering this question, feature selection methods are helpful, especially so-called filter methods, where features are selected before the training. Unfortunately, many feature selection methods either assume a linear correlation between the features, such as methods using the Pearson correlation coefficient or require data split into classes, particularly methods based on mutual information. Neither can be applied to performance events as linear correlation cannot be assumed, and splitting the data into classes would result in a loss of information. In order to address that problem, this thesis analyses existing feature selection methods together with their corresponding algorithms, designs new methods, and compares different feature selection methods. By utilising new methods based on the mathematical concept of copulas, it was possible to detect non-linear correlations without splitting the data into classes. Thus, several performance events could be identified, which can be utilised together with neural networks to increase the energy efficiency of HPC applications. In addition to selecting performance events, the created framework ensures that different programme parts, which might have different optimal settings, can be identified. Moreover, it assures that sufficient data for the training of the neural networks is generated and that the network can easily be applied. Furthermore, the framework is flexible enough to evaluate other machine learning methods. Finally, an end-to-end evaluation with a sample application demonstrated the framework's performance. The evaluation illustrates that, while extending the runtime by only 7%, energy savings of 24% can be achieved, showing that substantial energy savings can be attained using machine learning approaches.:1 Einleitung und Motiovation 2 Energieeffizienz und Machine-Learning – eine thematische Einführung 2.1 Energieeffizienz von Programmen im Hochleistungsrechnen 2.1.1 Techniken zur Energiemessung oder -abschätzung 2.1.2 Techniken zur Beeinflussung der Energieeffizienz in der Hardware 2.1.3 Grundlagen zur Performanceanalyse 2.1.4 Regionsbasierte Ansätze zur Erhöhung der Energieeffizienz 2.1.5 Andere Ansätze zur Erhöhung der Energieeffizienz 2.2 Methoden zur Merkmalsauswahl 2.2.1 Merkmalsauswahlmethoden basierend auf der Informationstheorie 2.2.2 Merkmalsauswahl für stetige Merkmale 2.2.3 Andere Verfahren zur Merkmalsauswahl 2.3 Machine-Learning mit neuronalen Netzen 2.3.1 Neuronale Netze 2.3.2 Backpropagation 2.3.3 Aktivierungsfunktionen 3 Merkmalsauswahl für mehrdimensionale nichtlineare Abhängigkeiten 3.1 Analyse der Problemstellung, Merkmale und Zielgröße 3.2 Merkmalsauswahl mit mehrdimensionaler Transinformation für stetige Merkmale 3.2.1 Mehrdimensionale Copula-Entropie und mehrdimensionale Transinformation 3.2.2 Schätzung der mehrdimensionalen Transinformation basierend auf Copula-Dichte 3.3 Normierung 3.4 Vergleich von Copula-basierten Maßzahlen mit der klassischen Transinformation und dem Pearson-Korrelationskoeffizienten 3.4.1 Deterministische Abhängigkeit zweier Variablen 3.4.2 UnabhängigkeitVergleich verschiedener Methoden zur Auswahl stetiger Merkmale 3.5 Vergleich verschiedener Methoden zur Auswahl stetiger Merkmale 3.5.1 Erzeugung synthetischer Daten 3.5.2 Szenario 1 – fünf relevante Merkmale 3.5.3 Szenario 2 – fünf relevante Merkmale, fünf wiederholte Merkmale 3.5.4 Schlussfolgerungen aus den Simulationen 3.6 Zusammenfassung 4 Entwicklung und Umsetzung des Frameworks 4.1 Erweiterungen der READEX Runtime Library 4.1.1 Grundlegender Aufbau der READEX Runtime Library 4.1.2 Call-Path oder Call-Tree 4.1.3 Calibration-Module 4.2 Testsystem 4.2.1 Architektur 4.2.2 Bestimmung des Offsets zur Energiemessung mit RAPL 4.3 Verwendete Benchmarks zur Erzeugung der Datengrundlage 4.3.1 Datensatz 1: Der Stream-Benchmark 4.3.2 Datensatz 2: Eine Sammlung verschiedener Benchmarks 4.4 Merkmalsauswahl und Modellgenerierung 4.4.1 Datenaufbereitung 4.4.2 Merkmalsauswahl Algorithmus 4.4.3 Performance-Events anderer Arbeiten zum Vergleich 4.4.4 Erzeugen und Validieren eines Modells mithilfe von TensorFlow und Keras 4.5 Zusammenfassung 5 Evaluierung des Ansatzes 5.1 Der Stream-Benchmark 5.1.1 Analyse der gewählten Merkmale 5.1.2 Ergebnisse des Trainings 5.2 Verschiedene Benchmarks 5.2.1 Ausgewählte Merkmale 5.2.2 Ergebnisse des Trainings 5.3 Energieoptimierung einer Anwendung 6 Zusammenfassung und Ausblick Literatur Abbildungsverzeichnis Tabellenverzeichnis Quelltextverzeichni

    Similar works