NEC HPC-Linux-Cluster

no/neinStudierende yes/jaBeschäftigte yes/jaEinrichtungen no/neinstud. Gruppen

NEC HPC-Linux Cluster

Der NEC HPC-Linux-Cluster des Rechenzentrums ist Teil eines hybriden NEC Hochleistungsrechnersystems, bestehend aus einem NEC SX-ACE Vektorrechnersystem mit einer theoretischen Peakperformance von 65,6TFlops und dem skalaren Linux-Cluster mit insgesamt 6192 Cores und einer theoretischen Peakperformance von 404,4 TFlops . Beide Systeme sind über die gleichen Vorrechner zu erreichen, haben Zugriff auf ein gemeinsames 5PB großes globales Dateisystem und alle Batchberechnungen werden über ein Batchsystem (NQSII) verwaltet.


 

Hardware

Vorrechner NEC HPC 124Rh-1

  • 4 Rechner mit jeweils
    • 2 Intel Xeon Gold 6130 (Skylake-SP) Prozessoren (2,1 GHz)
    • 32 Cores pro Knoten und 768 GB Hauptspeicher

 

NEC Linux-Cluster Batch-Knoten

  • 172 Knoten mit jeweils
    • 2 Intel Xeon Gold 6130 (Skylake-SP) Prozessoren (2,1 GHz)
    • 32 Cores pro Knoten und 192 GB Hauptspeicher
  • 8 Knoten mit jeweils
    • 2 Intel Xeon Gold 6130 (Skylake-SP) Prozessoren (2,1 GHz)
    • 21 Cores pro Knoten und 384 GB Hauptspeicher
  • 18 Knoten mit jeweils
    • 2 Intel Xeon E5-2680v3 (Haswell-EP) Prozessoren (2,5GHz)
    • 24 Cores pro Knoten und 128 GB Hauptspeicher
  • Venetzung: EDR-InfiniBand

 

Betriebssystem

  • Red Hat Linux (Release 7.4)

 

Rechnerzugang

Benutzerkennung

  • Für die Benutzung unseres NEC HPC-Systems ist eine extra Validierung erforderlich. Zur Beantragung einer Benutzerkennung schicken Sie bitte den vollständig ausgefüllten und unterschriebenen   Antrag auf Nutzung eines Hochleistungsrechners (bitte den Punkt NEC Hochleistungsrechnersystem ankreuzen) an das Rechenzentrum zurück.

Zugangsrechner

  • Ein interaktives Einloggen ist nur über den Vorrechner nesh-fe.rz.uni-kiel.de möglich. Beim Einloggen über diesen Namen werden Sie automatisch auf einen der verfügbaren Vorrechner weitergeleitet.
  • Der Zugang zum Vorrechner ist nur über eine SSH-Verbindung aus dem uni-internen Netzwerk möglich:

    ssh -X <username>@nesh-fe.rz.uni-kiel.de

  • Das voranstehende Dollarzeichen symbolisiert dabei stets den Kommandozeilenprompt und ist nicht Teil der Eingabe!
  • Mit der Option -X (großes X) wird das X11-Forwarding aktiviert.
  • Für das Einloggen von einem Windows-Rechner aus eignen sich als SSH-Clients zum Beispiel die Programme Putty, X-Win32 oder MobaXterm sowie WinSCP zum Transferieren von Daten.
  • Berechnungen auf dem NEC Linux-Cluster sollen hauptsächlich im Batchbetrieb durchgeführt werden. Auf dem Vorrechner sollen nur kurze interaktive Arbeiten (z.B. Programmübersetzungen, Tests von Skripten und Programmen) ausgeführt werden. Falls Sie für Ihre Berechnungen jedoch längere interaktive Rechenzeiten und/oder viel Hauptspeicher benötigen sollten, setzen Sie sich bitte vorab mit uns in Verbindung.

 

Dateisysteme

Die Vorrechner und alle Batch-Knoten  greifen gemeinsam auf ein globales Filesystem von insgesamt 5PB zu. Für alle Rechner existiert ein gemeinsamer HOME- und WORK-Bereich und zusätzlich steht auf jedem Batch-Knoten lokaler Plattenplatz  zur Aufnahme von temporären Dateien zur Verfügung.

Home-Verzeichnis

  • erreichbar über die Umgebungsvariable $HOME
  • global verfügbar an allen Knoten (Vorrechner und Batch-Knoten)
  • tägliche Datensicherung
  • zur Abspeicherung von Skripten, Programmen und kleineren Ergebnisdateien geeignet

 

Work-Verzeichnis

  • erreichbar über die Umgebungsvariable $WORK
  • global verfügbar an allen Knoten (Vorrechner und Batch-Knoten)
  • Dateisystem ohne Datensicherung
  • Batchberechnungen sollten nur in diesem Verzeichnis durchgeführt werden

 

Lokaler Plattenplatz

  • Über die Umgebungsvariable $TMPDIR steht auf jedem Batch-Knoten lokaler Plattenplatz zur Verfügung.
  • Besonders I/O-intensive Berechnungen sollten immer auf diesem Verzeichnis durchgeführt werden.
  • Auf dem NEC Linux-Cluster findet nach dem Jobende standardmäßig keine automatische Löschung der lokal im $TMPDIR-Verzeichnis abgespeicherten Daten statt. Führen Sie daher bitte eine manuelle Löschung durch, indem Sie folgende Skriptzeile in Ihre Batchskripte einbauen:
    export TMPDIR="/scratch/"`echo $PBS_JOBID | cut -f2 -d\:`

     

Tape-Library

  • erreichbar über die Umgebungsvariable $TAPE_CACHE
  • verfügbar an den Login-Knoten oder über die feque des Batchsystems
  • Aktuell nicht mehr benötigte Dateien sollten auf diesem zusätzlichen Dateisystem ausgelagert werden. Die hier abgelegten Dateien werden nach einiger Zeit auf Band geschrieben; sie können jedoch jederzeit auf das $HOME- bzw. $WORK-Verzeichnis zurück kopiert werden.
  • nicht für die Abspeicherung von vielen kleinen Dateien geeignet; erstellen von tar-Dateien. Falls eine große Anzahl von Dateien gepackt werden soll, empfehlen wir Dateigrößen im Bereich von 3GB und 50GB. Eine einzelne tar-Datei sollte jedoch nicht größer als 1TB sein.
  • langsame Zugriffsgeschwindigkeiten, daher möglichst kein direktes Arbeiten mit Dateien im $TAPE_CACHE Verzeichnis (kopieren Sie diese Dateien vor der Weiterverarbeitung (z.B. entpacken) erst wieder zurück auf das $WORK-Verzeichnis)
  • Datentransfer zu bzw. vom $TAPE_CACHE-Verzeichnis darf nicht mit dem rsnyc-Kommando erfolgen

 

Software

Compiler

  • Für die Programmübesetzung von seriellen und parallelen Programmen stehen auf dem NEC Linux-Cluster verschiedene Compiler zur Verfügung:
    • gnu-Compiler: gfortran, gcc und g+
    • Intel-Compiler: ifort, icc und icpc (verfügbar nach Initialisierung mit dem Kommando module load intel17.0.4)

 

MPI-Parallelisierung

  • Für die Entwicklung und Durchführung von MPI-parallelisierten Programmen steht auf dem System die Intel-MPI Umgebung zur Verfügung.
  • Initialisierung der Intel-MPI Umgebung: module load intelmpi17.0.4
  • Compileraufrufe
    • mpiifort, mpiicc und mpiicpc (Nutzung des Intel-Compilers)
    • mpif90, mpigcc und mpigxx (Nutzung des gnu-Compilers)
  • Starten von MPI-parallelisierten Programmen
    •  mpirun $NQSII_MPIOPTS -np Coreanzahl ./executablename
  • Durchführung von knotenübergreifenden Berechnungen:
    • Für knotenübergreifenden MPI-Berechnungen müssen die beteiligten Batchknoten ohne Passwortabfrage miteinander kommunizieren können. Um dieses zu erreichen, müssen von jedem Benutzer einmalig die beiden folgenden Schritte auf dem Login-Knoten des Systems durchgeführt werden:
      1. Erzeugen eines Schlüsselpaares mit dem Kommando:
        ssh-keygen -t rsa (Anfragen bitte nur mit Return bestätigen)
      2. Kopieren des öffentlichen Schlüssels mit dem Kommando:
        cp $HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys

 

Bibliotheken

  • netCDF, HDF5, fftw, gsl, PETSc, MKL, ...

 

Anwendersoftware und Tools

  • CDO, Ferret, gnuplot, NCO, likwid-Tools, Matlab, Python, R, Turbomole, ...
  • für das Programmpaket Matlab stehen aus lizenzrechtlichen Gründen unterschiedliche Installationen für CAU-Angehörige und GEOMAR-Mitarbeiter zur Verfügung. Letztere laden bitte vor der Benutzung das entsprechende Module mit der Endung _geomar.

 

Module-Konzept

  • Compiler, Bibliotheken, Software und spezielle Tools werden auf dem NEC Linux-Cluster über ein Module-Konzept bereitgestellt, das systemweit einheitlich ist und auch auf den Batch-Knoten zur Verfügung steht.
  • Einen Überblick über die installierten Programme gibt das folgende Kommando:

    module avail

  • Weitere Befehle zur Softwarenutzung:
    Kommando Erklärung
    module load <name> Lädt das Modul mit dem Namen <name>, d.h. alle Einstellungen, die für die Nutzung des spezifizierten Programmes notwendig sind werden vorgenommen
    module unload <name> Entfernt das Modul, d.h. alle Einstellungen werden rückgängig gemacht.
    module list Listet alle Module auf, die derzeit geladen sind.
    module show <name> Zeigt an, welche Einstellungen durch das Modul vorgenommen werden.

 

Batch-Verarbeitung

Für die Ressourcenverwaltung setzen wir auf dem NEC Linux-Cluster das Batchsystem NQSII zusammen mit dem Scheduler "Job Manipulator" ein.

Batchklassen

Zurzeit sind auf dem NEC Linux- Cluster folgende Batchklassen mit unterschiedlichen Rechenzeiten eingerichtet:

Batchklasse max. Rechenzeit (Walltime) Anzahl Cores pro Knoten max. Hauptspeicher pro Knoten max. Anzahl Knoten* 
clexpress 2 Stunden 32 192 GB 2
clmedium 48 Stunden 32 192 GB 120
cllong 100 Stunden 32 192 GB 50
clbigmem 200 Stunden 32 384 GB 8
clfo2 200 Stunden 24 128 GB 18
feque 1 Stunde (CPU-Zeit) 32 750 GB 1

* Die aktuell verfügbare Anzahl von Knoten kann unter Umständen geringer sein, falls einige Knoten aufgrund von Hard- oder Softwareproblemen aktuell nicht zur Verfügung stehen. Eine Aufstellung der aktuell verfügbaren Ressourcen erhalten Sie auf den Vorrechnern mit dem Kommando qcl.

 

Abgabe von Batch-Jobs

Für die Durchführung einer Berechnung im Batchbetrieb ist es notwendig, dass der Benutzer dem Batchsystem nicht nur mitteilt, welches Programm ausgeführt werden soll, sondern zusätzlich müssen dem System auch die für die Berechnung notwendigen Ressourcen (Rechenzeit, Speicherbedarf, usw.) mitgeteilt werden. Diese Ressourcenangaben werden zusammen mit dem eigentlichen Programmaufruf in eine Skriptdatei geschrieben und anschließend mit dem Befehl qsub <nqs_skript> an das Batchsystem übergeben.

Die für eine Jobabgabe wichtigsten Optionen sind:

NQSII-Option   Erklärung
#!/bin/bash   Definition der Shell

#PBS -T intmpi

 

Spezifiziert den Jobtyp (Intel MPI), nur erforderlich für parallele Berechnungen

#PBS -b 2

  Anzahl der Knoten (hier 2)

#PBS -l cpunum_job=16

  Anzahl angeforderter Cores pro Knoten (max. 16 bzw. 24)
#PBS -l elapstim_req=01:00:00   Walltime (hier 1h)
#PBS -l cputim_job=16:00:00   akkumulierte CPU-Zeit pro Knoten (hier 16*1h)
#PBS -l memsz_job=10gb   Hauptspeicherbedarf pro Knoten (RAM; hier 10gb)
#PBS -N test   Name des Batch-Jobs (hier test)
#PBS -o test.out   Datei für die Standardausgabe (hier test.out)
#PBS -e test.err   Datei für die Fehlerausgabe (hier test.err)
#PBS -q clexpress   Angeforderte Batch-Klasse (hier clexpress)
#PBS -j o   Standard- und Fehlerausgabe in eine Datei
#PBS -m abe   Email-Benachrichtigung wenn Job beginnt (b), endet (e) oder abbricht
#PBS -M <Email-Adresse>   Email-Adresse für die Jobbenachrichtungen (-m Optionen)

 

Beispiel Batch-Skripte

Beispiel-Skript für eine serielle Berechnung:

#!/bin/bash
#PBS -b 1
#PBS -l cpunum_job=1
#PBS -l elapstim_req=01:00:00
#PBS -l cputim_job=01:00:00
#PBS -l memsz_job=10gb
#PBS -N testjob
#PBS -o stdstderr.out
#PBS -j o
#PBS -q clexpress

# Wechsel in das qsub-Verzeichnis
cd $PBS_O_WORKDIR

# Starten der seriellen Berechnung
./executablename

# Ausgabe der verbrauchten Ressourcen (Rechenzeit, Hauptspeicher) nach Jobende
/usr/bin/nqsII/qstat -f ${PBS_JOBID/0:} 

 

Beispiel-Skript für eine parallele knotenübergreifende MPI-Berechnung:

#!/bin/bash
#PBS -T intmpi
#PBS -b 2
#PBS -l cpunum_job=16
#PBS -l elapstim_req=01:00:00
#PBS -l cputim_job=32:00:00
#PBS -l memsz_job=10gb
#PBS -N testjob
#PBS -o stdstderr.out
#PBS -j o
#PBS -q clexpress

# Wechsel in das qsub-Verzeichnis
cd $PBS_O_WORKDIR

# Initialisierung der Intel-Umgebung
module load intel17.0.4 intelmpi17.0.4

# Starten der parallelen Berechnung
mpirun $NQSII_MPIOPTS -np 32 ./executablename

# Ausgabe der verbrauchten Ressourcen (Rechenzeit, Hauptspeicher) nach Jobende
/usr/bin/nqsII/qstat -f ${PBS_JOBID/0:}

 

NQSII-Kommandos zur Jobabgabe und -Kontrolle

Die wichtigsten Kommandos für das Arbeiten mit dem NQSII-Batchsystem sind:

  • qsub <nqs_skript>  Abgabe einer Batchberechnung
  • qstat liefert Informationen über die eigenen Jobs
  • qdel <jobid> beendet einen laufenden oder entfernt einen wartenden Job
  • qstatall Auflistung aller  laufenden und wartenden Jobs auf dem gesamtem NEC HPC-System
  • qstatcl Auflistung aller Jobs, die auf dem NEC Linux-Cluster laufen bzw. warten
  • qstat -f <jobid> liefert detaillierte Informationen über einen bestimmten Job
  • qalter <jobid> Änderung der Job-Ressourcen eines wartenden Jobs
  • qcat -o <jobid> Inhalt der bisher erzeugten Standardausgabe eines laufenden Jobs anzeigen lassen (Verwende die Option -n <number> für die Anzahl der anzuzeigenden Zeilen)

 

Dokumentation

  • Using the NEC Linux-Cluster (short description in Englisch): available soon


Support und Beratung

HPC-Support-Team: hpcsupport@rz.uni-kiel.de
Verantwortliche Ansprechparter am Rechenzentrum:
Siehe unter HPC-Support und Beratung.