19 research outputs found

    A New Approach for Automated Feature Selection

    Get PDF
    Feature selection or variable selection is an important step in different machine learning tasks. In a traditional approach, users specify the amount of features, which shall be selected. Afterwards, algorithm select features by using scores like the Joint Mutual Information (JMI). If users do not know the exact amount of features to select, they need to evaluate the full learning chain for different feature counts in order to determine, which amount leads to the lowest training error. To overcome this drawback, we extend the JMI score and mitigate the flaw by introducing a stopping criterion to the selection algorithm that can be specified depending on the learning task. With this, we enable developers to carry out the feature selection task before the actual learning is done. We call our new score Historical Joint Mutual Information (HJMI). Additionally, we compare our new algorithm, using the novel HJMI score, against traditional algorithms, which use the JMI score. With this, we demonstrate that the HJMI-based algorithm is able to automatically select a reasonable amount of features: Our approach delivers results as good as traditional approaches and sometimes even outperforms them, as it is not limited to a certain step size for feature evaluation

    Q-Learning Inspired Self-Tuning for Energy Efficiency in HPC

    Full text link
    System self-tuning is a crucial task to lower the energy consumption of computers. Traditional approaches decrease the processor frequency in idle or synchronisation periods. However, in High-Performance Computing (HPC) this is not sufficient: if the executed code is load balanced, there are neither idle nor synchronisation phases that can be exploited. Therefore, alternative self-tuning approaches are needed, which allow exploiting different compute characteristics of HPC programs. The novel notion of application regions based on function call stacks, introduced in the Horizon 2020 Project READEX, allows us to define such a self-tuning approach. In this paper, we combine these regions with the Q-Learning typical state-action maps, which save information about available states, possible actions to take, and the expected rewards. By exploiting the existing processor power interface, we are able to provide direct feedback to the learning process. This approach allows us to save up to 15% energy, while only adding a minor runtime overhead.Comment: 4 pages short paper, HPCS 2019, AHPC 2019, READEX, HAEC, Horizon2020, H2020 grant agreement number 671657, DFG, CRC 91

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

    Get PDF
    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

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

    Get PDF
    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

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

    No full text
    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

    Using Performance Analysis Tools for a Parallel-in-Time Integrator

    No full text
    While many ideas and proofs of concept for parallel-in-time integration methods exists, the number of large-scale, accessible time-parallel codes is rather small. This is often due to the apparent or subtle complexity of the algorithms and the many pitfalls awaiting developers of parallel numerical software. One example of such a time-parallel code is pySDC, which implements, among others, the parallel full approximation scheme in space and time (PFASST). Inspired by nonlinear multigrid ideas, PFASST allows to integrate multiple time steps simultaneously using a space-time hierarchy of spectral deferred corrections. In this paper, we demonstrate the application of performance analysis tools to the PFASST implementation pySDC. We trace the path we took for this work, show examples of how the tools can be applied, and explain the sometimes surprising findings we encountered. Although focusing only on a single implementation of a particular parallel-in-time integrator, we hope that our results and in particular the way we obtained them are a blueprint for other time-parallel codes

    READEX: Linking Two Ends of the Computing Continuum to Improve Energy-efficiency in Dynamic Applications

    No full text
    In both the embedded systems and High Performance Computing domains, energy-efficiency has become one of the main design criteria. Efficiently utilizing the resources provided in computing systems ranging from embedded systems to current petascale and future Exascale HPC systems will be a challenging task. Suboptimal designs can potentially cause large amounts of underutilized resources and wasted energy. In both domains, a promising potential for improving efficiency of scalable applications stems from the significant degree of dynamic behaviour, e.g., runtime alternation in application resource requirements and workloads. Manually detecting and leveraging this dynamism to improve performance and energy-efficiency is a tedious task that is commonly neglected by developers. However, using an automatic optimization approach, application dynamism can be analysed at design time and used to optimize system configurations at runtime. The European Union Horizon 2020 READEX (Runtime Exploitation of Application Dynamism for Energy-efficient eXascale computing) project will develop a tools-aided auto-tuning methodology inspired by the system scenario methodology used in embedded systems. Dynamic behaviour of HPC applications will be exploited to achieve improved energy-efficiency and performance. Driven by a consortium of European experts from academia, HPC resource providers, and industry, the READEX project aims at developing the first of its kind generic framework to split design time and runtime automatic tuning while targeting heterogeneous system at the Exascale level. This paper describes plans for the project as well as early results achieved during its first year. Furthermore, it is shown how project results will be brought back into the embedded systems domain

    Melatonin treatment of pigs with acute pancreatitis reduces inflammatory reaction of pancreatic tissue and enhances fitness score of pigs: experimental research

    No full text
    Abstract Background Severe acute pancreatitis is associated with high morbidity and mortality. Melatonin is known as the activator of antioxidant enzymes. The main purpose of this study was to evaluate the clinical effect of melatonin treatment in a pig model with induced acute pancreatitis. Methods In this study, acute pancreatitis was induced in 38 German domestic pigs (German Hybrid). After induction of acute pancreatitis, 18 animals were treated with melatonin. Intraoperative clinical data, postoperative blood parameters, fitness, and Porcine Well-being (PWB) score, and post-mortal histopathological data were analyzed in both study groups. Results The matching procedure created two groups (melatonin group and control group) which were very similar. The fitness and PWB score were postoperative significantly enhanced in the melatonin group as compared to the control group (p = 0.005 and p = 0.003). Additionally, histological analysis revealed that acinar necrosis, fat tissue necrosis, and edema were significantly reduced in the melatonin group as compared to the non-melatonin group (p = 0.025, p = 0.003, and p = 0.028). Conclusions Pigs, which were treated with melatonin, were characterized by higher fitness and PWB scores than those of the control group. Moreover, melatonin treatment reduces the acinar necrosis, fat tissue necrosis, and edema of pancreatic tissue. Thus, melatonin might be a useful therapeutic option in severe acute pancreatitis
    corecore