Machine Learning Cluster am Campus Lingen
Aufbau eines Machine Learning Clusters
Herausforderung
Für den Aufbau eines Machine Learning Clusters am Standort Lingen sind einige relevante Aspekte zu berücksichtigen. Dazu zählen unter anderem die Wärmeentwicklung, die Gewährleistung gewisser Sicherheitsstandards, der Strombedarf etc. Beispielsweise sind die Serverschränke in unserem Serverraum auf den Strombedarf limitiert und die Klimaanlage kann nur begrenzte Abwärme abführen. Entsprechend sind diese Faktoren bei der Hardware-Zusammenstellung zu berücksichtigen. In diesem Kontext ist ein weiterer Aspekt, die möglichst maximale Hardware-Leistung für das Machine Learning Clusters im festgelegten Projektbudget zu generieren.
Vorgehen
Zunächst erfolgte der Aufbau erster Server mit ausgewählter Gaming Hardware. Dies hat den Hintergrund, dass Benchmarks auf der jeweiligen Hardware mit künstlichen neuronalen Netzen zur Bildklassifikation durchgeführt wurden. Für die Benchmarks wurden alle relevanten Hardware-Sensordaten mithilfe eigener Skripte beobachtet sowie dokumentiert. Aus diesen Werten bzw. Daten konnten Anpassungen an der (neuen) Hardware-Konfiguration vorgenommen werden, um Engpässe zu vermeiden.
Grafikkarten statt Prozessoren
Im Vergleich zu Prozessoren bieten Grafikkarten bei Fließkommaberechnungen eine deutlich bessere Leistung zu einem günstigeren Preis. Als Beispiel benötigt das ResNet50 zum Trainieren (mit ImageNet Datensatz) etwa 1018 Gleitkommaoperationen. Folglich wird für dieses Training im geplanten Cluster theoretisch 51 Minuten benötigt. Da für maschinelles Lernen Fließkommaberechnungen essenziell sind, haben wir ein reines Grafikkarten Cluster aufgebaut, um die maximale Leistung aus dem festgelegten Budget zu gewinnen. In der Vergleichsgrafikken (s.u.) ist zu erkennen, dass die GPU deutlich schneller ist als CPUs.
Auswahl der Grafikkarte
Für die Wahl der passenden Grafikkarte wurde die GIGABYTE GeForce GTX 1080 Ti, ASUS GeForce RTX 2080 Ti TURBO, NVIDIA TITAN RTX und NVIDIA Tesla T4 miteinander verglichen, um die weitere Cluster-Planung zu präzisieren. Die NVIDIA TITAN RTX und ASUS GeForce RTX 2080 Ti TURBO bieten nahezu identische Leistungsmerkmale. Die Titan RTX Grafikkarte unterscheidet sich in diesem Kontext nur mit einem höheren Speicher, jedoch für einen deutlich höheren Preis. Im weiterem Vergleich positioniert sich die Tesla T4, aufgrund der Leistungenmerkmale, hinter der GeForce RTX 2080 Ti.
In den ersten Testservern mit Gaming Hardware stieg die Temperatur der Grafikkarten stark an. Nach gründlichen Untersuchungen wurde festgestellt, dass ein falsches Kühlungssystem dies verursachte. Für die Problemlösung haben wir eine Grafikkarte mit Blower-Cooler-Technik ausprobiert. Die Blower-Cooler-Variante ermöglicht es, dass die warme Luft der Grafikkarte nach hinten herausgeleitet wird (s. Grafik). Demzufolge befindet sich keine heiße Luft im Server und es ergänzt sich mit dem Front-To-Back Luftstrom in Servergehäusen. Für den Cluster-Aufbau wurde daher die Blower-Cooler Variante sowie die GeForce RTX 2080 Ti, aufgrund ihrer Leistungsmerkmalen, gewählt.
Clustermanagement
Für die explizite Verwaltung des Clustersmanagements wird von uns Slurm (Simple Linux Utility for Ressource Management) eingesetzt. Es basiert auf einem Batch-System, wodurch eine Annahme sowie Bearbeitung von Rechenjobs möglich ist. Jeder Nutzer formuliert seinen Rechenjob in einem Bash-Skript mit entsprechender SLURM-Syntax. Dadurch werden Hardware-Ressourcen wie Anzahl der Rechenkerne, Laufzeit, Speicher, etc. angefordert. Diese Informationen werden von Slurm genutzt, um einen Job zu starten, sofern die benötigen Ressourcen im Cluster zur Verfügung stehen. Sind alle Ressourcen belegt, werden sämtliche Jobs in einer Warteschlange abgelegt.
Ausstattung des Machine Learning Clusters
Server | Deepspace 6 | Deepspace 7-9 | Demonsrun (Login-Server) | Demonsrun 1-6 |
CPU | Intel(R) Core(TM) i5-6600K CPU 3.5GHz | Intel(R) Core(TM) i7-7700K CPU @A 4.20 GHz | Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz | Je 2x Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz |
GPU | 1x ASUS GeForce RTX 2080 Ti Turbo 11GB | 3x Gigabyte 1080 Ti 11GB | - | Je 4x Gigabyte GeForce RTX 2080 Ti Turbo Blower Edition 11GB |
RAM | 32 GB | Je 64 GB | 96 GB | Je 192 GB |