Image of Compute Cluster Racks

Hochleistungsrechnen am ITMZ

Das Angebot an Ressourcen zum wissenschaftlichen Rechnen für die Wissenschaftler der Universität soll sowohl den speziellen Bedürfnissen einzelner Nutzergruppen als auch dem allgemeinen Bedarf genügen.

Als Möglichkeit, beiden Ansprüchen bestmöglich gerecht zu werden, hat sich weltweit der Einsatz von Compute Cluster aus Standard-Hardware bewährt. Deren Ausbaustufen reichen dabei von kleinen Clustern mit wenigen Knoten bis zu High-End-Systemen mit mehreren tausend Knoten. Insbesondere die Möglichkeit der modularen Erweiterung eines Clusters erleichtert die Anpassung des Systems an die stetig wachsenden Anforderungen an die Rechenleistung im wissenschaftlichen Rechnen.

Das ITMZ betreibt in seinen HPC Installationen neben eigenen Rechenknoten für Wissenschaftler der Universität auch die speziellen Rechenknoten verschiedener Institutionen der Universität. Damit wird ein stabiler und flexibler Zugriff auf die benötigten Ressourcen bei gleichzeitig minimalem Administrationsaufwand auf Seiten der Wissenschaftler erreicht. Durch die Bündelung der Geldmittel aus verschiedenen Quellen und Einrichtungen der Universität können so die Kosten für die generelle HPC Infrastruktur minimiert werden. Gleichzeitig steht allen eine deutlich größere Gesamtrechenleistung zur Verfügung und kann gemeinsam je nach aktuellem Bedarf genutzt werden. Dieses Konzept ermöglicht die Konzentration der Forschungsgruppen auf ihre wissenschaftliche Arbeit.


Zugangsberechtigung HPC-Resourcen

Um die HPC-Cluster nutzen zu können, benötigen Sie einen allgemeinen Account am ITMZ. Sie müssen zusätzlich einen Erweiterungsantrag zur Nutzung der HPC-Cluster stellen. Auf dem Antrag füllen Sie bitte die Felder 1,2,3,5 und 7 aus. Im Kopf kreuzen Sie bitte "Erweiterung" an! In Feld 7 kreuzen Sie bitte "Linux Cluster" an und geben dahinter an, welches der aktuellen Systeme Sie nutzen wollen. Sollte Ihre Einrichtung eigene Ressourcen besitzen, so kreuzen Sie zusätzlich "Cluster/Server der Fakultät" an und schreiben den Namen Ihres Lehrstuhls bzw. der Einrichtung der die Ressourcen gehören dahinter.

Nach der Freischaltung Ihres Accounts erhalten Sie vom jeweiligen System eine Email mit der Bestätigung der Zugriffsberechtigung sowie einigen weiteren Informationen.


Zugang

Bitte beachten Sie: Der Zugang ist nur aus dem Netz der Universität Rostock möglich! Sollten Sie mit einer externen IP arbeiten, benutzen Sie bitte entweder den VPN-Zugang oder einen Anwendungsserver der Universität!

Der Zugriff ist grundsätzlich nur auf die sogenannten Login-Knoten möglich! Zum Einloggen wird die "Secure Shell" bzw. ein entsprechender Client (z.B. putty) benötigt!

Für den Datenaustausch mit Ihrem Rechner nutzen Sie bitte "Secure Copy". Bitte binden Sie Daten- und Home-Verzeichnisse der HPC-Systeme nicht dauerhaft lokal ein! Dauerhaftes Einbinden führt häufig zu unerwünschten Nebenwirkungen auf den Filerservern der Cluster und beeinträchtigt deren Rechenleistung!

Module-Konzept

Jedem Nutzer wird auf den Systemen eine minimale Standardumgebung gesetzt. Durch das Module-Konzept kann der Nutzer relativ leicht die Umgebung seinen individuellen Ansprüchen bezüglich Compiler oder paralleler Entwicklungsumgebung anpassen. Dazu stehen ihm verschiedene module-Files zur Verfügung. Durch laden derartiger Module kann die Benutzerumgebung flexibel den jeweiligen Anforderungen angepasst werden. In einem Batchjob muss bzw. sollte die Module-Umgebung ebenfalls genutzt werden.

Kurzanleitung:

  • Welche Module aktuell vorhanden sind, kann per Kommando module avail abgefragt werden. Die Bezeichnungen geben den Namen und die Version der damit einzustellenden Umgebung an.
  • Ein module-File wird geladen mit module load <module-file> .
  • Die aktuell geladene Umgebung kann mit module list in Erfahrung gebracht werden.
  • Details zu den einzelnen Modulen gibt es mit module display <module-file> oder module help <module-file>.
  • Das Kommando module gibt eine Übersicht über alle verfügbaren Befehle.

Ausführliche Dokumentation: Environment Modules

Batchverarbeitung

Auf den HPC-Systemen kommt der Resourcen-Manager SLURM zur fairen Auslastung der Ressourcen zum Einsatz. Jobs sollten grundsätzlich von den Login-Knoten abgesetzt werden. Die Priorisierung der Jobs in der Warteschlange geschieht nach einem "fair-share" Prinzip. Es wird jedoch darauf geachtet, dass nur eine bestimmte Anzahl von Jobs eines Nutzers gleichzeitig gestartet werden können.

Kurzanleitung:

  • Übersicht der Partitionen des jewiligen Systems und deren Auslastung liefert sinfo
  • Übersicht der Warteschlange und laufenden Jobs liefert: squeue
  • Übersicht der eigenen Jobs liefert: squeue -u <USERID>
  • Übersicht der "fair-share"-Konten: sshare -l bzw. sshare -la
  • Einreihen eines eigenen Jobs: sbatch <jobfile>

Bitte Informieren Sie sich auf der Seite von SLURM über die genaue Verwendung. In Ihrem Nutzerverzeichnis existiert ein Unterverzeichnis ~/ClusterInfos,
Dort finden Sie eine Quick-Reference-Card als PDF, Beispiele sowie weitere Informationen!

Übersetzen eigener Software

Neben kommerziellen HPC-fähigen Anwendungen kann der Nutzer auch eigene Anwendungen bzw. freie oder nur im Source-Code vorliegende Anwendungen verwenden. Dem Nutzer stehen dazu verschiedene Compiler zur Verfügung diese selber zu übersetzen. Neben den Standard-GNU-Compilern sind verschiedene Compiler-Suites installiert. Die entsprechenden Einstellungen bzw. Auswahl des Compilers wird über die jeweiligen Module-Files vorgenommen. Bei Fragen hierzu wenden Sie sich bitte an hpc.cluster(at)uni-rostock(dot)de.

Parallelisierung

Die Parallelisierung über mehrere Knoten des Clusters ist nur über message passing möglich. Dafür stehen dem Nutzer verschiedene Implementationen des Message Passing Interface (MPI) zur Verfügung.

Zwischen den einzelnen Versionen kann per Module-File umgeschaltet werden. Die Abarbeitung bzw der Start von parallelisierten Anwendungen erfolgt jeweils mit einem sog. Wrapper z.B. mpirun.

Es ist zu beachten, dass immer die Umgebung zur Abarbeitung genutzt wird bzw. gesetzt werden muss, in der auch die Entwicklung/Übersetzung/Compilierung erfolgte. Dies kann einfach durch die Übergabe der entsprechenden Umgebungsvariablen bzw. laden des Moduls im Jobscript erfolgen (siehe oben).

Eine gute Einführung in die Programmierung von HPC-Systemen und mit MPI erhalten Sie hier.