Anleitung für die Einrichtung eines HPC-Clusters
Bisherige Teile dieser Artikelserie:
1

In den letzten sieben Jahren konnte ich umfangreiche Erfahrungen in der Einrichtung und dem Betrieb eines High Performance Computing Clusters (HPC-Cluster) sammeln. Daraufhin fragte mich ein Kollege Anfang des Jahres, ob ich mein Wissen nicht in einer kleinen Anleitung zusammentragen könnte. Er hätte noch einige ältere Rechner zur Verfügung, die er gerne zu einem (HPC-) Cluster zusammenfügen würde um kleinere Berechnungen durchführen zu können. Ich sagte zu.

In den folgenden Wochen schrieb ich ihm eine kurze Anleitung in LaTeX zusammen. Richtig zufrieden war ich mit der Anleitung allerdings nicht. Daher fasste ich den Plan, mit Hilfe einer Artikelserie die Anleitung noch einmal durchzuarbeiten und zu verbessern. Ich werde alle wichtigen Punkte in den Artikeln ansprechen und versuchen möglichst viele Informationen zusammen zu fassen oder mittels externer Links zugänglich zu machen. Am Ende soll die Lektüre der Artikelserie ausreichen, um einen HPC-Cluster installieren zu können. Parallel werde ich auch die LaTeX-Fassung der Anleitung überarbeiten und anschließend als PDF zur Verfügung stellen.

Im Folgenden werde ich zuerst den Begriff High Performance Computing erklären und in welchen Bereichen diese Technik Anwendung findet. Abschließen wird der erste Teil dieser Serie mit den Grundvoraussetzungen für die Umsetzung dieser Anleitung.

Der Vorteil eines HPC-Clusters ist die automatisierte Zuordnung von verschiedensten Rechenaufgaben an freie Rechenkapazitäten innerhalb des Clusters. Nutzer des Clusters können beliebig viele Berechnungen beauftragen, welche anschließend durch den Cluster abgearbeitet werden. Dabei können den Rechenjobs (Computejobs (CJ)) individuelle Prioritäten gegeben werden, ebenso einzelnen Nutzern und Gruppen. Dies ermöglicht eine sehr fein justierbare Verteilung der vorhandenen Rechenleistung des gesamten Clusters an alle Nutzer und Gruppen.

Ein Computer-Cluster besteht aus mehreren physisch getrennten PCs, Workstations oder Servern die über ein Netzwerk miteinander verbunden sind (Ethernet, Fibre, Infiniband). Zur Steuerung des Clusters wird ein Kontrollrechner benötigt, der sogenannte Head-Node (HN). Die eigentliche Rechenarbeit übernehmen in den meisten Fällen die sogenannten Compute-Nodes (CN). Bei diesen kann es sich um beliebige Computer handeln, auch wenn homogene CNs einige Vorteile bieten, dazu später mehr.

HPC-Cluster werden in vielen Bereichen genutzt, so finden sie unter anderem Anwendung in der Simulation von Kernexplosionen, bei der Vorhersage des Wetters, Festigkeitsanalysen von großen Bauwerken, dem Rendering von Animationen, oder Strömungs-Simulationen in der Automobil- und Luftfahrtindustrie und im Schiffbau (mein Metier). Die Liste der Möglichkeiten ist damit aber bei weitem noch nicht vollständig. Eine Liste der 500 größsten HPC-Cluster mit stets aktuellen Daten wird auf der Internetseite top500.org veröffentlicht.

Als Minimalkonfiguration eines HPC-Clusters würde ich ein Computersystem mit mindestens zwei Kernen definieren. Dieser Rechner würde dann sowohl als HN, als auch als CN definiert werden. Der Rechner würde also die Vergabe der Rechenjobs steuern (HN) und die Berechnungen auf dem verbliebenen freien Kern durchführen (CN). Die Performance dieses Systems dürfte allerdings bescheiden sein, aber ein Betrieb wäre möglich. Das obere Ende bzw. die Maximalkonfiguration liest sich da deutlich anders, der im Moment größte HPC ist der TIANHE-2 mit insgesamt 3.120.000 Kernen. Diese riesige Zahl setzt sich aus normalen CPU-Kernen der XEON-Baureihe (XEON E5-2692) und einer Vielzahl an Co-Prozessoren zusammen (Intel XEON Phi 31S1P).

Diese Anleitung richtet sich an Nutzer, die ihren ersten eigenen HPC-Cluster aufbauen wollen und hierfür einige alte PCs, Workstations oder Server zur Verfügung haben. Für die Installation der benötigten Software und zur Einrichtung der erforderlichen Dienste (DNS, DHCP, NFS,…) werden erweiterte Kenntnisse in der Systemverwaltung des verwendeten Betriebssystems voraus gesetzt. Die Nutzung der Konsole zum editieren von Konfigurationsdateien sollte ebenso geläufig sein, wie die Nutzung von SSH zum Verbinden mit entfernten Rechnern.

Im nächsten Teil dieser Serie werde ich die Anforderungen an die Hardware und die Basis-Installation des HN und der CNs erläutern.

Anleitung für die Einrichtung eines HPC-Clusters – Teil 1

2 Gedanken zu „Anleitung für die Einrichtung eines HPC-Clusters – Teil 1

  • 8. August 2016 um 8:55
    Permalink

    Moin,
    vielen Dank, die Serie werde ich sicher weiter verfolgen. Beim Xeon Phi handelt es sich übrigens nicht um eine GPU sondern einen Coprozessor mit einem leicht veränderten (aber grundsätzlich identischen) x86 Befelssatz 😉

    Antworten
    • 23. August 2016 um 17:49
      Permalink

      Danke für den Hinweis, werde ich gleich korrigieren. Ich hoffe ich komme bald dazu die Serie weiterzuführen.

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.