10.09.2015 – Kategorie: Hardware & IT
GPU-Server und -Cluster: Energieeffizient und schnell rechnen
Grafikprozessoren (GPUs) eignen sich aufgrund ihrer Architektur besonders gut für das High Performance Computing (HPC). Durch ihre hohe Rechenleistung pro Watt dominieren GPU-beschleunigte Supercomputer die Green500-Liste. Immer mehr wissenschaftliche Institute und Engineering-Firmen setzen deshalb auf GPU-Server und -Cluster. Der HPC-Experte Dr. David Rohr gibt uns einen interessanten Einblick in die Welt des Supercomputing und erläutert, worauf es insbesondere bei der Hardware ankommt.
Dr. David Rohr ist Postdoc-Stipendiat am Frankfurt Institute for Advanced Studies (FIAS). Er arbeitet aktuell an verschiedenen Projekten im Bereich Hochenergiephysik und High Performance Computing (HPC) – hauptsächlich in Kooperation mit dem CERN (die Europäische Organisation für Kernforschung) und dem GSI (GSI Helmholtzzentrum für Schwerionenforschung). Dr. Rohr ist für die GPU-basierte Echtzeit-Ereignisrekonstruktion für das ALICE-Experiment (http://home.web.cern.ch/about/experiments/alice) am CERN verantwortlich.
Digital Engineering Magazin (DEM): Herr Dr. Rohr, an welchem Projekt arbeiten Sie derzeit?
Dr. David Rohr: Aktuell arbeite ich an unserer Implementierung des Linpack-Benchmarks, von uns HPL-GPU genannt. Dieser Benchmark besteht aus einem Prozess zur Lösung eines dichten Systems aus linearen Gleichungen und wird in der Regel zur Klassifizierung der schnellsten Supercomputer weltweit verwendet. Insbesondere habe ich die Linpack-Implementierung für Graphics Processing Units (GPUs), hauptsächlich Grafiklösungen von AMD und heterogene Systeme optimiert.
Im Rahmen meiner Arbeit am FIAS hatte ich am Design verschiedener HPC-Cluster, zum Beispiel dem SANAM-Cluster (an zweiter Stelle in der Green500-Liste vom November 2012) und dem Lattice-CSC-Cluster (erreichte den ersten Platz in der Green500-Liste vom November 2014), mitgewirkt und deren Installation und Inbetriebnahme überwacht. Der SANAM- und der Lattice-CSC-Cluster wurden am GSI in Darmstadt installiert.
DEM: Wozu wurde der Lattice-CSC-Cluster entwickelt?
Dr. David Rohr: Der Lattice-CSC-Cluster ist ein allgemeiner Multi-GPU-Cluster aus Standardkomponenten, der nahezu jeden wissenschaftlichen Prozess ausführen kann, an dem GPUs beteiligt sind. Der Hauptzweck des Lattice-CSC besteht in der Ausführung von Simulationen in der Quantenchromodynamik oder QCD. QCD ist die physikalische Theorie zur Beschreibung der starken Wechselwirkung, eine der vier fundamentalen Kräfte im Universum. Das GSI Helmholtzzentrum für Schwerionenforschung baut aktuell einen neuen Teilchenbeschleuniger für Experimente für die Schwerionenforschung – genannt FAIR (Facility for Antiproton and Ion Research). QCD-Berechnungen sind für Simulationen in der Schwerionenphysik sehr wichtig. Daher benötigen das GSI und FAIR erhebliche Ressourcen für die QCD-Berechnungen.
Der einzige allgemeine Ansatz zur Berechnung von QCD-Eigenschaften vom ersten Prinzip ist Lattice-QCD (LQCD), mit dem das Problem in ein vierdimensionales Raum-Zeit-Gitter diskretisiert wird. Lattice-CSC verwendet den Lattice-QCD-Ansatz für seine QCD-Simulationen und nutzt eine GPU-beschleunigte, auf OpenCL basierende LQCD-Anwendung, die in Kooperation mit FIAS entwickelt wurde. Lattice-QCD ist die wichtigste Anwendung mit Lattice-CSC – folglich der Name. OpenCL ist ein offener, lizenzgebührenfreier Industriestandard, der schnellere Berechnungen ermöglicht.
Der rechenintensivste Teil von LQCD-Simulationen ist die Invertierung eines sogenannten Dirac-Operator, für den eine Matrix-Vektor-Multiplikation erforderlich ist. Diese wird als D-Slash bezeichnet. Sie ist die wichtigste Komponente der Berechnung in LQCD-Simulationen und erfordert eine sehr hohe Speicherbandbreite.
DEM: Welche Hardware-Anforderungen mussten erfüllt werden und warum haben Sie sich für AMD-FirePro-GPUs und nicht für Consumer-GPUs oder ein Produkt eines Mitbewerbers entschieden?
Dr. David Rohr: LQCD steht im Mittelpunkt von Lattice-CSC und der D-Slash-Kernel ist die wichtigste Komponente der Berechnung. Daher wollten wir die Hardware mit der besten D-Slash-Performance einsetzen, die wir für unser festes Budget bekommen konnten. Das heißt, wir benötigen Hardware mit einer sehr hohen Speicherbandbreite. Für uns zählen nicht die Anschaffungskosten, sondern die Gesamtbetriebskosten. Und bei den steigenden Energiepreisen ist die Energieeffizienz ein sehr wichtiger Aspekt. Glücklicherweise bieten GPUs allgemein beide Vorteile – eine sehr gute Energieeffizienz und eine enorme Speicherbandbreite. Da unsere Anwendung auf OpenCL basiert, suchten wir folglich nach einer GPU, die OpenCL optimal unterstützt. Darüber hinaus spielen bei einem Cluster in der Größe von Lattice-CSC auch die Wartungsfreundlichkeit und Stabilität eine wichtige Rolle. Unsere Wahl ist dabei auf die AMD FirePro S9150 GPU gefallen, eine professionelle Grafikkarte für Serversysteme mit einer sehr hohen Speicherbandbreite und einer guten Energieeffizienz.
Außerdem bietet die AMD FirePro S9150 die höchste verfügbare Rechenleistung mit der doppelten Genauigkeit einer einzelnen GPU. Auch wenn dieser Aspekt für unsere LQCD-Anwendung mit beschränkter Speicherbandbreite nicht unbedingt erforderlich ist, haben wir so die Möglichkeit, andere Anwendungen mit hoher Performance ebenfalls auf Lattice-CSC auszuführen. Die AMD-Grafikkarte bildet auch die Grundlage für die hohe Energieeffizienz. Belohnt wurden wir mit dem ersten Platz in der Green500-Liste.
DEM: Wie viele AMD-FirePro-S9150-GPUs setzen Sie in Ihrem Cluster ein und welche Performance erzielen Sie damit?
Dr. David Rohr: Der Cluster besteht aus 160 Rechenknoten mit jeweils vier GPUs, zwei CPUs und 256 GByte Speicher. Ein einzelner Rechenknoten erzielt eine Performance von mehr als zehn TFLOPS mit doppelter Genauigkeit und das gesamte System hat eine theoretische Spitzenleistung von 1,7 PFLOPS. Die gesamte Speicherbandbreite der vier S9150-GPUs eines Knotens erreicht 1.280 GByte pro Sekunde und der gesamte GPU-Speicher pro Knoten beträgt 64 GByte.
DEM: Der Lattice-CSC-Cluster hat kürzlich den ersten Platz in der Green500-Liste als der weltweit energieeffizienteste Supercomputer eingenommen. Was können Sie uns über diesen Erfolg erzählen, und welche Voraussetzungen waren für diese erstaunlichen Ergebnisse erforderlich?
Dr. David Rohr: Es war viel Arbeit und Optimierungsaufwand für Software und Hardware nötig, um das Benchmark-Ergebnis von 5,27 GFLOPS pro Watt zu erreichen. Wir arbeiteten mit unserer eigenen DGEMM (Matrix-Multiplikation)- und HPL-GPU (Linpack-Benchmark)-Software, die ich am FIAS entwickelte.
Damit wir diese Energieeffizienz erreichen konnten, waren zahlreiche Schlüsselaspekte hilfreich, zum Beispiel der Support von AMD mit der Bereitstellung eines OpenCL-DGEMM-Kernels mit hoher Effizienz. Darüber hinaus konnten wir mit unserer selbstentwickelten Software den gesamten Workload dynamisch auf alle verfügbaren GPUs und CPUs verteilen.
Wir setzen die dynamische Frequenz- und Spannungsskalierung ein, um jederzeit mit der optimalen CPU- und GPU-Spannung beziehungsweise -Frequenz arbeiten zu können.
Unsere Software passt während der Ausführung des Linpack-Benchmark bestimmte interne Parameter dynamisch an. Dies gewährleistet, dass wir jederzeit mit den optimalen Parametern arbeiten.
Durch die Optimierung von Hardware und Software konnten wir mit den AMD-FirePro-S9150-GPUs eine Energieeffizienz von 5,27 GFLOPS pro Watt erzielen. Dies ist eine um 18 Prozent höhere Performance pro Watt als beim Gewinner der Green500-Liste vom Juni 2014.
DEM: Welche Erfahrung haben Sie bei der Arbeit mit OpenCL gemacht? Wie lässt sich dieser Standard mit anderen Lösungen vergleichen?
Dr. David Rohr: Als Forschungsinstitut müssen wir es möglichst vermeiden, uns an einen Anbieter zu binden. Deshalb ist es für uns wichtig, dass OpenCL offen ist, also anbieter- und plattformunabhängig. Zu Beginn konnte der Standard nicht ganz mit anderen APIs mithalten. Aber mit der neuen OpenCL-2.0-Spezifikation bekommen wir einen Großteil der Funktionen, die wir benötigen. Ein wichtiger Aspekt, der meiner Meinung nach noch fehlt, ist die Unterstützung für C++ in GPU-Kernels – zumindest in einer eingeschränkten Form. Eine Mitbewerberlösung hat diese Funktion und OpenCL sollte dies auch ermöglichen. AMD bietet eine Erweiterung, die C++ in begrenztem Umfang für GPU-Kernels ermöglicht, was meiner Meinung nach in die richtige Richtung geht. Um jedoch wirklich plattformunabhängig zu sein, muss diese Erweiterung Teil des Standards werden. Wir setzen diese OpenCL-C++-Erweiterungen von AMD aktuell sehr erfolgreich in unserer Online-Computer-Farm am CERN in Genf ein.
DEM: Wie werden sich Supercomputer Ihrer Meinung nach in den nächsten drei bis fünf Jahren weiterentwickeln?
Dr. David Rohr: Ich sehe eine Weiterentwicklung in der Konvergenz von CPU- und GPU-Architekturen. Vor einigen Jahren waren CPUs serielle komplexe Single-Core-Prozessoren und GPUs parallele Chips mit mehreren, sehr einfachen Kernen. Damals konnte man allgemeine Anwendungen auf GPUs nicht ausführen. Heute sehen wir Einflüsse der GPU in CPUs, zum Beispiel gibt es Multi-Core-CPUs mit immer ausgereifteren Vektoranweisungen. Außerdem haben GPUs einige Aspekte der Hauptprozessoren übernommen, beispielsweise die Cache-Hierarchie, sodass die Ausführung allgemeiner Anwendungen jetzt möglich ist. Ein großer Nachteil von GPUs ist der begrenzte Arbeitsspeicher und dass die GPU über die PCI-Express-Schnittstelle auf den Systemspeicher zugreifen muss. Ich denke, in Zukunft wird es heterogene Lösungen geben, die sowohl schnelle serielle CPU-Kerne und mehrere parallele GPU-Kerne auf einem Chip mit einheitlichem Arbeitsspeicher vereinen.
Bei den aktuellen Ansätzen gibt es meiner Meinung nach ein Problem. Ein großer Vorteil von GPUs ist nämlich die große Speicherbandbreite dank des schnellen GDDR5-Speichers. Die aktuellen Hauptprozessoren hingegen nutzen den Systemspeicher und der hier verwendete DDR3-Speicher ermöglicht eine erheblich geringere Bandbreite. Wir benötigen deshalb einen Ansatz, der die Vorteile beider Systeme verbindet – die heterogene Natur der Hauptprozessoren und die hohe Speicherbandbreite der aktuellen diskreten GPUs.
Darüber hinaus braucht man die richtigen Programmiermodelle, um diese neuen Chips programmieren zu können.
DEM: Welcher Schritt steht bei Ihnen als nächstes an?
Dr. David Rohr: Um die Lattice-QCD-Performance und die Energieeffizienz noch weiter zu optimieren, besteht der nächste logische Schritt darin, noch mehr GPUs in einem Server zu integrieren. Wir experimentieren aktuell mit Servern, die mit acht GPUs bestückt sind. Wir müssen den bestmöglichen Kompromiss finden, da die Performance an einem bestimmten Punkt aufgrund der begrenzten PCI-Express-Bandbreite sinken wird. Das GSI baut aktuell im Rahmen des FAIR-Projekts einen neuen Teilchenbeschleuniger. Lattice-CSC hat eine gute Grundlage für QCD-Simulationen geschaffen, aber bei FAIR ist für die Ereignisrekonstruktion ein Vielfaches der verfügbaren Rechenressourcen erforderlich. Wir bauen aktuell am GSI ein neues Rechenzentrum, dass auf bis zu 15 Megawatt erweiterbar sein wird. Dieses Rechenzentrum ist sehr energieeffizient. Wir erwarten einen Kühlungsaufwand im Bereich von fünf Prozent, das heißt einen PUE-Wert von 1,05. In den nächsten Jahren wollen wir in diesem Rechenzentrum einen großen Cluster für die Datenverarbeitung der FAIR-Experimente installieren. Da herkömmliche Prozessoren für dieses System nicht leistungsstark genug sind, werden daher GPUs oder andere Beschleuniger eine wichtige Rolle spielen.
DEM: Herr Dr. Rohr, vielen Dank für Ihre Antworten.
Weitere Infos
Mehr Informationen über die AMD-FirePro-Server-GPUs, den Lattice-CSC-Cluster und über die Green500-Liste finden Sie unter
http://www.fireprographics.com/hpc.
Ein Interview mit Dr. David Rohr
können Sie auf YouTube unter
https://www.youtube.com/watch?v=
QBVtKJ-D7P4&feature=youtu.be
betrachten.
Teilen Sie die Meldung „GPU-Server und -Cluster: Energieeffizient und schnell rechnen“ mit Ihren Kontakten:
Zugehörige Themen:
Hardware