Energiesparmaßnahmen im High-Performance Computing

Die aktuellen Entwicklungen der Energiepreise haben auch die Effizienz von HPC-Installationen verstärkt in den Fokus gerückt. Mittel- und langfristig muss auch ein HPC-Betrieb möglichst nachhaltig sein, um den Beitrag zum menschengemachten Klimawandel zu minimieren. Die Arbeitsgruppe „Computing“ hat dazu den Einfluss von Maßnahmen u. a. zur Energieverwaltung, zur Taktfrequenz der Computeserver sowie zur Einschaltsteuerung mittels Batchsystem im Hinblick auf Energieeinsparung und Auswirkungen auf die Systemperformance untersucht und daraufaufbauend Maßnahmen ergriffen.

Energieverbrauch ist dieser Tage ein großes Thema. Ihn zu senken, hat verschiedene Motive, aber in Zeiten des menschengemachten Klimawandels steht die Reduktion des Kohlendioxidausstoßes natürlich ganz oben auf der Liste. Auch wenn der Strom aus regenerativen Energiequellen stammt, muss jede nicht benötigte Kilowattstunde nicht erzeugt werden oder steht zur selben Zeit an
anderer Stelle zur Verfügung. In der aktuellen Situation wird leider auch eine Verknappung des Energieangebotes durch Kriegshandlungen ein drohendes Szenario. Schließlich ist mit allem auch der
wirtschaftliche Aspekt verquickt. In jedem Fall muss die benötigte Energie bezahlt werden, um den Betrieb kontinuierlich aufrechterhalten zu können.

Strategien zur Energieeinsparung

Zur Einsparung von Energie im HPC-Umfeld gibt es mehrere Ansätze. Ein Ansatz besteht darin, ungenutzte Systeme nach einer bestimmten Zeit des Leerlaufs zu deaktivieren und sie dann bei Bedarf wieder zu aktivieren. Dadurch wird sichergestellt, dass keine Ressourcen verschwendet werden, während den Nutzer*innen gleichzeitig Flexibilität geboten wird und alle Systeme jederzeit dennoch zur Verfügung stehen, sollten sie von den Nutzer*innen benötigt werden. Eine andere Strategie ist, den CPU-Turbomodus zu deaktivieren und/oder die Frequenz der CPUs zu verringern, was den Stromverbrauch erheblich senken kann. Die Optimierung der Temperatur im Rechenzentrum kann ebenfalls zur Senkung des Energieverbrauchs beitragen, da weniger Energie in den Kühlsystemen benötigt wird. Schlussendlich ist die Optimierung des Codes im Hinblick auf die Leistung pro Watt ein weiterer effektiver Ansatz zur Senkung des Energieverbrauchs in HPC-Systemen. Durch die Berücksichtigung dieser Strategien können HPCSystemadministrator* innen den Energieverbrauch senken und gleichzeitig die Systemleistung beibehalten oder sogar verbessern.

Massnahmen und Tests

Computeknoten selektiv abschalten

Das Göttinger NHR-System „Emmy“ besteht aus Computeknoten zweier Ausbauphasen, im Folgenden Phase 1 und 2 genannt. Im Rahmen unserer Bemühungen, den Energieverbrauch und die Kosten zu senken, haben wir zunächst beschlossen, einen Teil der älteren, weniger energieeffizienten Knoten der Phase 1 von „Emmy“ abzuschalten. Die neueren und energieeffizienteren Knoten der Phase 2 werden stattdessen verwendet, um die Leistung und Kapazität des Clusters aufrechtzuerhalten. Diese Entscheidung wurde nach sorgfältiger Prüfung des Energieverbrauchs des Clusters und der potenziellen Kosteneinsparungen getroffen, die durch die Senkung des Energieverbrauchs erzielt werden können. Durch die Verwendung der Phase-2-Knoten anstelle der älteren Phase-1-Knoten können wir unsere Energiekosten erheblich senken und die Energieeffizienz des Clusters insgesamt verbessern. Obwohl diese Entscheidung Auswirkungen auf die Verfügbarkeit von Ressourcen für einige Nutzer*innen haben kann, glauben wir, dass dies ein notwendiger und vertretbarer Schritt in unseren laufenden Bemühungen zur Optimierung des Energieverbrauchs und zur Kostensenkung ist. Wir werden den Energieverbrauch des Clusters weiterhin überwachen und bei Bedarf weitere Anpassungen vornehmen, um sicherzustellen, dass wir so energieeffizient und kostengünstig wie möglich arbeiten. Darüber hinaus stellen wir mit „Grete“, der neuen GPU-Erweiterung des NHR-Systems „Emmy“, weitere ebenfalls bedeutend energieeffizientere Knoten bereit. Diese fangen die Reduktion der Kapazität des Clusters aufgrund der Abschaltung der Phase-1-Knoten ab.

Knotenspezifisches Power Capping (Gromacs)

GROMACS (https://www.gromacs.org/ ) ist ein High-Performance- Molekulardynamik-Simulationsprogramm. Als ein auch sonst oft eingesetztes Benchmarkprogramm war es prädestiniert für die durchgeführten Tests. Zusätzlich zur Abschaltung eines großen Teils der älteren Knoten in Phase 1 haben wir, um die Energieeffizienz der verbleibenden Knoten zu optimieren, einen Einzelknoten-GROMACS-Benchmark auf allen verbleibenden Knoten durchgeführt. Da CPUs, bedingt durch den Herstellungsprozess, selbst innerhalb einer Baureihe eine Streuung im Stromverbrauch um bis zu 15 % bei gleicher Taktfrequenz haben können, konnten wir durch den GROMACS Benchmark für jeden Knoten ein individuelles Powerbudget errechnen, das, in Summe über alle Knoten ein optimales Verhältnis bei der Leistung pro Watt bietet, während es gleichzeitig sicherstellt, dass alle Knoten möglichst mit der gleichen Geschwindigkeit laufen. Dies ist besonders für Mehrknotenjobs wichtig, die, bei ungleicher Geschwindigkeitsverteilung über die Knoten, bedingt durch die herstellerbedingten unterschiedlichen Stromverbräuche der CPUs, häufig auf die Geschwindigkeit des langsamsten Knotens limitiert sind, was zu unnötigem Energieverbrauch führt, da die restlichen Knoten nicht an ihrem Leistungsoptimum arbeiten. Dieses Powerbudget haben wir dann für jeden Knoten individuell eingestellt und so den Stromverbrauch der Knoten individuell limitiert, was nicht nur zu einem effizienteren Betrieb, sondern auch zur Einsparung von Energie beiträgt. Dieser Ansatz trägt zudem dazu bei, durch Reduktion der thermischen Belastung die Lebensdauer der Komponenten zu verlängern und dadurch auch die Wartungskosten im Laufe der Zeit zu senken.

CPU-Turbomodus deaktivieren

Weiterhin haben wir Tests durchgeführt, um die Auswirkungen der Deaktivierung des CPU-Turbomodus auf den Energieverbrauch und die Leistung zu ermitteln. Der CPU-Turbomodus ist eine Funktion, die es der CPU ermöglicht, ihre Taktfrequenz vorübergehend über ihre Nenngeschwindigkeit hinaus zu erhöhen, um eine höhere Leistung zu erzielen. Dies geht üblicherweise jedoch auf Kosten eines überproportional erhöhten Energieverbrauchs und einer höheren Wärmeentwicklung. Die Ergebnisse unserer Tests zeigten, dass die Deaktivierung des Turbomodus zu einem messbaren Rückgang des Energieverbrauchs von etwa 11 % führte, während die Auswirkungen auf die Leistung der meisten HPCAnwendungen vernachlässigbar waren. Einige wenige Anwendungen zeigten sogar einen kleinen Leistungsanstieg, während der Turbomodus deaktiviert war, was wir auf eine, durch eine clusterweit homogenere CPU-Frequenz, besser synchronisierte Kommunikation zwischen den Knoten zurückführten. Angesichts dieser Ergebnisse haben wir beschlossen, den CPU-Turbomodus auf dem Cluster generell zu deaktivieren und ihn nur auf ausdrückliche Anfrage für jene Anwendungen zu reaktivieren, die ihn tatsächlich benötigen und von ihm profitieren können. Durch die Deaktivierung des Turbomodus können wir den Energieverbrauch und die Wärmeentwicklung der Knoten reduzieren, was wiederum den Kühlungsbedarf verringert und die Lebensdauer unserer Geräte verlängert. Es bleibt jedoch wichtig zu bedenken, dass einige Anwendungen den CPU-Turbomodus benötigen und mit ihm eine höhere, manchmal sogar überproportional höhere, Leistung erreichen können. Aus diesem Grund muss der CPU-Turbomodus auch in Zukunft leicht aktivierbar sein, jedoch wird er auf dem Cluster in Zukunft nicht länger standardmäßig aktiviert, sondern nur noch auf Anfrage. Dadurch hoffen wir, ein Gleichgewicht zwischen Energieeffizienz und Leistungsanforderungen herzustellen. Insgesamt ist unsere Entscheidung, den CPU-Turbomodus im Cluster standardmäßig zu deaktivieren, ein wichtiger Schritt hin zu maximaler Energieeffizienz und Kosteneinsparungen. Wir werden den Energieverbrauch und die Leistung des Clusters selbstverständlich weiterhin überwachen und bei Bedarf weitere Anpassungen an dieser Regel vornehmen, sollte sich (z. B. durch automatisiertes Ein- und Ausschalten des Turbomodus) ein weiteres Einsparpotenzial ergeben.

Dynamisches Ein- und Ausschalten von Knoten via Batchsystem

In einem weiteren Schritt, die Energieeffizienz unseres HPCClusters zu optimieren, haben wir mit der Firma Atos zusammengearbeitet, um ein neues Plugin für den Slurm-Ressourcenmanager zu installieren. Dieses Plugin ermöglich es, Knoten auszuschalten, wenn sie nicht genutzt werden, und sie vollautomatisch wieder zu starten, wenn sie für neue Rechenjobs benötigt werden. Durch das Ausschalten von zeitweise nicht genutzten Knoten lässt sich natürlich der Stromverbrauch eines HPC-Clusters erheblich reduzieren, da die Knoten nicht länger Energie verbrauchen, während sie nichts tun. Das Plugin überwacht die Auslastung der Knoten des Clusters sowie einkommende Compute-Jobs im Batchsystem und schaltet Knoten automatisch ab, sobald sie für einen gewissen Zeitraum nicht mehr für Jobs benötigt wurden und im Leerlauf liefen. Wenn neue Aufträge an den Cluster übermittelt werden, startet das Plugin automatisch die erforderlichen Knoten neu, um sicherzustellen, dass jederzeit genügend Kapazität zur Bewältigung der Arbeitslast vorhanden ist. Der zeitliche Abstand zwischen dem letzten abgeschlossenen Job auf einem Knoten und seinem Herunterfahren ist dabei wichtig, um unnötiges Herunterfahren von Knoten zu verhindern, welche nach kürzester Zeit wieder benötigt werden und deshalb wieder hochgefahren werden müssen, da sowohl die Prozedur zum Herunterfahren eines Knotens sowie zum Wiederhochfahren mehr Energie benötigt, als der Knoten im Leerlaufprozess verwendet hätte, sodass sich das Herunterfahren und erneute Wiederhochfahren energietechnisch erst ab einer gewissen Dauer lohnt. Dieser Prozess ist nahtlos und transparent für die Nutzer*innen, da sie das Ein- und Ausschalten der Knoten nicht manuell anfordern müssen. Insgesamt ist die Installation dieses neuen Plugins ein wichtiger Schritt auf dem Weg zu maximaler Energieeffizienz und Kosteneinsparungen für unseren HPC-Cluster. Er ermöglicht es uns, weitere Energie im HPC-Cluster einzusparen, ohne dass sich die Kapazität des Clusters verringert oder sich andere Einschränkungen für die Nutzer*innen ergeben.

Ergebnisse

Die möglichen Tuningmaßnahmen sind zahlreich. Sei es die Aktivierung/Deaktivierung des Turbomodus, Deckelung des Verbrauchs mittels Strombudget, Steuerung des Energiemanagements durch das Betriebssystem usw. Jede Maßnahme für sich allein oder in Kombination beeinflusst den Energieverbrauch und die Performance einer Anwendungssoftware auf unterschiedliche Weise. Dies unterscheidet sich zusätzlich zwischen verschiedenen Applikationen. Das jedoch bedeutet, dass generalisierte Aussagen in der Regel nicht möglich und umfangreiche Messungen nötig sind. Zwar ist hier das Szenario von der technischen Seite, dem Zusammenspiel von Hardware, BIOS und Betriebssystem gedacht, es gibt aber auch den Aspekt der Anwendungssoftware selbst. Der Einsatz optimierter Bibliotheksfunktionen oder auch Programmieren unter dem Aspekt, durch Optimierung Laufzeitverkürzungen und damit Energieeinsparungen zu erreichen, bieten ebenfalls Potenzial.

Knotenspezifisches Power Capping

Mit GROMACS als Referenzworkload haben wir den Stromverbrauch jedes Knotens ungedrosselt ermittelt und getestet, bei welcher Limitierung des Stromverbrauchs wir die beste Leistung pro Watt erreichen können. Für die wassergekühlten Knoten ergab sich, dass bei 13 % Reduktion die optimale Leistung pro Watt erreicht wird. Da die Basiskomponenten und die Infrastruktur durch das Powercapping ihre Leistung nicht verändern können, wird bei einer stärkeren Reduktion die Performance stärker reduziert als die Leistungsaufnahme. Diesen Wert haben wir dann, mittels der individuellen Knotenbenchmarks, in individuelle Power-Budgets für jeden Knoten umgerechnet und in das BIOS der Knoten eingetragen. In einer abschließenden Betrachtung führte die Drosselung um 13 % bei den Singlenode-Benchmarks zu einer Performancereduktion von knapp über 7 %. Bei den Multinode-Benchmarks hingegen ging die Performance mit der gleichen Drosselung um nur 3 % herunter, was mit der nun ausgeglichenderen Taktfrequenz im Cluster zusammenhängt. Daran sieht man auch, dass die im HPC üblichen Multinode-Anwendungen andere Strategien benötigen als eine Singlenode-Betrachtung.

CPU-Turbomodus deaktivieren

Das Deaktivieren des Turbomodus stellte eine vergleichsweise einfach zu implementierende Energiesparmaßnahme dar. Dennoch war sie sehr wirksam, wie unsere Messungen ergeben haben: Mit deaktiviertem Turbomodus erreichen die luftgekühlten Knoten von Emmy eine Energieeinsparung von ca. 8 % gegenüber ihrem ursprünglichen Energieverbrauch, während die wassergekühlten Knoten, die, bedingt durch die bessere Wärmeabfuhrleistung des Wassers, häufiger im Turbomodus liefen, sogar eine Energieeinsparung von ca. 14 % erreichen konnten. In Summe erreichte „Emmy“ durch die Deaktivierung des CPU-Turbomodus eine Energieeinsparung von ca. 11 %. Bei einer abschließenden Betrachtung der Leistung unterschiedlicher HPC-Anwendungen auf dem Cluster stellte sich heraus, dass insbesondere speicherbandbreitenlimitierte Anwendungen (wie z.B. CFD Software) nach Abschalten des Turbomodus nur eine Performancereduktion von 0 – 3 % erleiden, während sich eine Energiereduktion von 18 – 20 % ergibt. Im schlechtesten, von den Nutzer*innen gemeldeten Fall ergab sich durch das Abschalten des CPU-Turbomodus eine Stromeinsparung von 10 – 11 %, während die Performancereduktion 8 – 9% betrug. Die meisten Anwendungen lagen jedoch bei einer Performancereduktion von ca. 3 % und einer Stromeinsparung von ca. 11 %. Das machte letztendlich die Entscheidung zugunsten einer CPU-Turbomodus-Deaktivierung einfach.

Dynamisches Ein- und Abschalten von Knoten via Batchsystem

Das von Atos entwickelte Plugin, welches in Zusammenarbeit mit dem Batchsystem in der Lage ist, Computeknoten im Leerlaufbetrieb herunterzufahren und bei Bedarf durch die Nutzer*innen automatisch wieder hochzufahren, ermöglicht es uns, Einiges an Strom zu sparen. Unsere Messungen dazu haben ergeben, dass das Abschalten eines Racks (ein Serverschrank) mit luftgekühlten Knoten von „Emmy“ ca. 1,9 % der Energie einspart, während das Abschalten eines wassergekühlten Racks von Emmys Computeknoten ca. 7,4 % des Energieverbrauchs von „Emmy“ einspart. „Emmy“ selbst besteht derzeit aus zehn Racks mit luftgekühlten Knoten und elf Racks mit wassergekühlten Knoten. Damit erreichen wir, durch das automatische Abschalten nicht genutzter Knoten, bei einer typischen Systemauslastung von ca. 80 % eine Energieeinsparung von ca. 5,5 % (bei ungefähr gleichförmiger Verteilung der Abschaltungen auf wasser- und luftgekühlte Knoten) sowie bei einer selteneren, aber dennoch gelegentlich vorkommenden Auslastung von ca. 60% eine Energieeinsparung von ca. 15 % gegenüber dem ursprünglichen Energieverbrauch. Allerdings ergab sich beim langfristigen Nutzen des Plugins noch ein Problem, da auch sehr kurze Rechenjobs bei entsprechend wenig verfügbaren Knoten in der Lage sind, ein Hochfahren weiterer Knoten zu veranlassen. Je nach Länge des Jobs könnte die Hochfahrzeit des Rechenknotens dabei die Rechenzeit des Jobs selbst übersteigen, was wiederum zu Energieverschwendungen führt. Um dieses Problem zu lösen, haben wir eine neue Option im Batchsystem aktiviert, welche das Hochfahren neuer Knoten in diesem Fall verzögert, um eine gewisse Mindestauslastung im System anzusammeln. In einzelnen Fällen kann das allerdings dazu führen, das sich die Startzeit sehr kleiner Jobs auf dem System verzögert.

Gesamt

Für einen zusammenfassenden Überblick über die Effizienz unserer Energiesparmaßnahmen haben wir schlussendlich nochmal mit unserem Energiemonitoring des Clusters einen Vergleich eines Zeitraums vor Anwendung der Energiesparmaßnahmen und eines Zeitraums nach deren Anwendung erstellt, welche in den beiden Abbildungen 1 und 2 zu sehen sind. Beide Zeiträume wurde gewählt, da der Cluster in diesen Zeiträumen besonders stark ausgelastet war und so insbesondere die Energiesparmaßnahmen zum Tragen kommen, welche den Energieverbrauch auf laufenden Knoten reduzieren, also insbesondere das knotenspezifische Power Capping und die Deaktivierung des CPU-Turbomodus. Abbildung 1 zeigt dabei den Stromverbrauch des Modular Data Centers der GWDG im Zeitraum vor den Energiesparmaßnahmen, zwischen dem 26.09.2022 und dem 30.09.2022, und Abbildung 2 zeigt dessen Stromverbrauch im Zeitraum nach den Energiesparmaßnahmen, zwischen dem 18.04.2023 und dem 21.04.2023. Das Modular Data Center (MDC) der GWDG enthält das System „Emmy” sowie das 2020 installierte Hardwareupgrade des Scientific Compute Clusters (SCC).

1_Stromverbrauch des MDC vor den Energiesparmaßnahmen
2_Stromverbrauch des MDC nach den Energiesparmaßnahmen

Aus den Grafiken lassen sich mehrere Dinge direkt ablesen: Zunächst einmal zeigt die Stromverbrauchskurve nach den Energiesparmaßnahmen deutlich weniger kurzfristige Schwankungen und glattere Kurven, was an dem deaktivierten CPU-Turbomodus liegt, da ohne CPU-Turbo die Kerne mit einer konstanteren Frequenz und damit auch mit einem konstanteren Stromverbrauch betrieben werden. Weiterhin erkennt man in den Graphen einen deutlich gesunkenen Maximalstromverbrauch von 1,364 MW vor den Energiesparmaßnahmen und 1,182 MW nach den Energiesparmaßnahmen. Dies ergibt, im Maximalstromverbrauch, eine Reduktion von ca. 13 %, genau im Mittel unserer Erwartungen aus unseren vorherigen Tests der einzelnen Maßnahmen. Innerhalb der getesteten Zeiträume ist der durchschnittliche Verbrauch lediglich ein wenig gesunken, von 1.072 MW auf 1.029 MW, was allerdings sehr stark von der tatsächlichen Auslastung des Systems abhängt und sich deswegen zwischen diesen beiden Zeiträumen weniger vergleichen lässt.

Fazit

Die Strategien zur Senkung des Energieverbrauchs in HPCSystemen sind nicht nur aus Gründen der Kosteneinsparung und des Umweltschutzes von Vorteil, sondern auch angesichts der aktuellen Energiekrise von entscheidender Bedeutung. Der Energiesektor sieht sich mit einer wachsenden Nachfrage nach Energie konfrontiert, während gleichzeitig die Ressourcen begrenzt sind und die Kosten steigen. Durch die Umsetzung dieser Strategien können HPC-Systemadministrator*innen eine wichtige Rolle bei der Senkung des Energieverbrauchs spielen und den Druck auf den Energiesektor mindern. Da die Energiepreise weiter steigen, werden diese Strategien sogar noch wichtiger, um eine nachhaltige und kosteneffektive HPC-Infrastruktur aufrechtzuerhalten. Durch die Senkung des Energieverbrauchs in HPC-Systemen können wir zu dem übergeordneten Ziel beitragen, die Kohlenstoffemissionen zu reduzieren und eine grünere Zukunft zu fördern. Die Einführung dieser Strategien zur Energiereduzierung ist also nicht nur gut und hilfreich für einzelne Organisationen, sondern dient auch der kollektiven Verantwortung gegenüber der Umwelt und der Gesellschaft als Ganzes.

Kategorien

Archive

--