Linux-Cluster (caucluster)

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

caucluster

Der caucluster ist momentan ein vom rzcluster separierter Linux-Cluster, dessen Knoten von mehreren Einrichtungen der Christian-Albrechts-Universität zu Kiel (CAU) beschafft wurden und in Zukunft die Keimzelle eines neuen Rechenclusters an der CAU bilden sollen. Auf diesem System testet das Rechenzentrum momentan das Batch-System Slurm in Kombination mit einem neuen Fairshare-Betriebsmodell, das dafür sorgen soll, dass den Benutzergruppen im Mittel derjenige Anteil an Ressourcen zur Verfügung steht, der ihrem Finanzierungsanteil entspricht. Das System besteht derzeit aus 7 Rechenknoten mit insgesamt 280 Cores und jeweils 256GB Hauptspeicher.


 

Für Informationen zum neuen BeeGFS Dateisystem siehe hier .

 

Hardware

1 Vorrechner (Login-Knoten)

  • 8 Cores (8-Core Intel Xeon E5-2640 @ 2.60GHz)
  • 64GB Hauptspeicher
  • Rechnername: rzcl00bn

7 Rechenknoten (Batch-Knoten)

  • 40 Cores (4 10-Core Intel Xeon E7-4820 @ 1.90GHz)
  • 256GB Hauptspeicher
  • Rechnernamen: cau001, ..., cau007
  • Vernetzung: InfiniBand
  • 3.7TB lokaler Plattenplatz
  • Nachrüstbar mit 4 Beschleunigerkarten (Intel Xeon Phi)

Betriebssystem

  • CentOS Linux 7.x

 

Rechnerzugang

Benutzerkennung

  • Zur Beantragung einer Benutzerkennung für den caucluster füllen Sie bitte den Antrag auf Nutzung eines Hochleistungsrechners aus (bitte den Punkt Linux-Cluster (rzcluster) ankreuzen) und schicken Sie diesen an das Rechenzentrum.

  • WICHTIG: Die Nutzungserlaubnis gilt bis 15. Februar des folgenden Jahres. Bei Abmeldung oder bei Nichtverlängerung werden die Daten auf allen Plattenspeichern und Magnetbandkassetten nach 6 Monaten gelöscht. Rechtzeitig vorher wird dem/der Leiter/in ein Verlängerungsantrag zugesandt.

Zugangsrechner

  • Berechnungen auf dem caucluster sollen hauptsächlich im Batchbetrieb durchgeführt werden. Kurze interaktive Arbeiten (z.B. Programmübersetzungen, Tests von Skripten und Programmen) können auf dem Vorrechner 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.
  • Der Zugang zum Vorrechner caucluster.rz.uni-kiel.de erfolgt über eine SSH-Verbindung aus dem uni-internen Netzwerk:

    ssh -X <username>@caucluster.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 die Programme Putty, X-Win32 oder MobaXterm. MobaXterm und WinSCP können zum Datentransfer verwendet werden.

 

Dateisysteme

  • Jedem Nutzer stehen generell verschiedende Dateisysteme zur Verfügung, die jeweils nur für bestimmte Aufgaben geeignet sind!

Home-Verzeichnis

  • Global, d.h. auf allen Login- und Batch-Knoten verfügbares Nutzer-Verzeichnis
  • Erreichbar über die Umgebungsvariable $HOME
  • Tägliche Datensicherung
  • Geignet für Programm- und Skriptentwicklung sowie zum Speichern kleinerer, aber wichtiger Ergebnisdateien
  • Hier bitte keine Batch-Berechnungen!

Work-Verzeichnis

  • Global, d.h. auf allen Login- und Batch-Knoten verfügbares Nutzer-Verzeichnis
  • Für neu eingerichtete Benutzerkennungen wird automatisch ein Verzeichnis auf dem parallelen BeeGFS Dateisystem /work_beegfs angelegt.
  • Erreichbar über die Umgebungsvariable $WORK
  • Keine Datensicherung
  • Zur Durchführung von Batch-Berechnungen geeignet

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.
  • Achtung: Der lokale Plattenplatz steht nur während einer laufenden Batch-Berechnung zur Verfügung, d.h. alle dort befindlichen Daten werden nach Beendigung der Berechnung automatisch gelöscht.

Tape-Library

  • Aktuell nicht mehr benötigte Dateien sollten stets in archivierter Form (z.B. als tar-Dateien) auf dem zusätzlichen Dateisystem /nfs/tape_cache ausgelagert werden.
  • Die hier abgelegten Dateien werden nach einiger Zeit auf Band geschrieben. Sie können jedoch jederzeit vom Login-Knoten aus zurück in das Home- oder Work-Verzeichnis kopiert werden.
  • Nicht für das Auslagern vieler kleiner Dateien geeignet.
  • Empfohlene Dateigrößen im Bereich von 3GB bis 50GB (max. Kapazität eines Magnetbandes: 750 GB)
  • Datentransfer zur bzw. von der Tape-Library darf nicht mit dem rsync-Kommando erfolgen.

Zusätzlicher Plattenplatz

  • Unter dem Pfad /bose kann momentan weiterer, globaler Plattenplatz verwendet werden (insgesamt 2.9TB).

 

Software

Compiler

  • Auf dem System stehen verschiedene Compiler zum Übersetzen von seriellen und parallelen Programmen zur Verfügung.
  • GNU-Compiler: gcc, g++, ...
  • Intel-Compiler: ifort, icc, icpc, mpiifort, mpiicc, mpiicpc, ...
  • Portland-Compiler (PGI): pgf90, pgcc, pgc++, ...
  • Zur Durchführung von knotenübergreifenden MPI-Berechnungen müssen die beteiligten Batch-Knoten 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 Sie ein SSH-Schlüsselpaar mit dem folgenden Kommando:

      ssh-keygen -t rsa

      Bestätigen Sie die hierbei auftretenden Anfragen bitte nur mit Return.  
    2. Kopieren Sie die Datei $HOME/.ssh/id_rsa.pub in die Datei $HOME/.ssh/authorized_keys.

Bibliotheken

  • Standard-Bibliotheken: hdf5, netcdf, gsl, boost, eigen, fftw, mkl, ...

Anwendersoftware

  • Standard-Software: Matlab, Python, R, gnuplot, ...

Module-Konzept

  • Compiler, Bibliotheken, Software und spezielle Tools werden auf dem caucluster ü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.

    $ 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

Einführung

  • Das Prinzip der Batch-Verarbeitung:
    batch processing

 

Fairshare

  • Auf dem caucluster setzen wir das Batch-System Slurm als Workload-Manager ein und verteilen Rechenzeit nach einem Fairshare-Prinzip.
  • Die verbrauchte Rechenzeit (anhand derer Job-Prioritäten berechnet werden) ergibt sich dabei als Produkt von genutzer Walltime und der Anzahl der angeforderten Rechenkerne (Cores). Der verbrauchte Hauptspeicher wird momentan (noch) nicht im Fairshare-Accounting berücksichtigt.
  • WICHTIG! Um eine Batch-Berechnung ausführen zu können, muss der Nutzer momentan noch manuell in die Slurm Accounting-Datenbank eingetragen werden. Falls Ihre Kennung noch nicht freigeschaltet wurde, wenden Sie sich bitte per E-Mail an hpcsupport@rz.uni-kiel.de.
  • Einen Überblick über die verbrauchten Ressourcen auf Nutzer- oder Gruppenbasis gibt der folgende Befehl: sshare -a.

 

Slurm

  • Im Nachfolgenden sind die wichtigsten Slurm-Kommandos für die Ausführung von Batch-Berechnungen zusammengestellt.
  • Abgabe einer Batch-Berechnung:

    sbatch <jobscript>

  • Auflisten aller im System befindlichen Berechnungen:

    squeue

  • Auflisten der eigenen Berechnungen

    squeue -u <userid>

  • Löschen einer Batch-Berechnung:

    scancel <jobid>

  • Details zu einer Batch-Berechnung anzeigen:

    scontrol show job <jobid>

  • Job-Parameter:
    Parameter Erklärung
    -J, --job-name Job-Name
    -o, --output Stdout-Datei
    -e, --error Stderr-Datei
    -N, --nodes Anzahl der Knoten
    --tasks-per-node Anzahl von (MPI-)Tasks pro Knoten
    -c, --cpus-per-task Anzahl von Cores pro (MPI-)Task
    --mem Hauptspeicherbedarf (in MB pro Knoten)
    -t, --time Zeitlimit (Walltime), in Minuten bzw. hh:mm:ss
    -p, --partition Queue/Partition
  • Wenn für den Job-Parameter eine Kurzform existiert, kann dieser entweder über #SBATCH -J test oder #SBATCH --job-name=test gesetzt werden.

 

Partitionen/Queues

  • Die Standard-Partition ist die fairq, in der die Priorität von Jobs anhand des Fairshare-Algorithmus berechnet wird. Die maximale Rechenzeit eines Jobs beträgt dabei 100 Stunden.
  • Darüber hinaus gibt es eine Partition testq (mit höherer Basispriorität), in der Jobs mit einer maximalen Walltime von 30 Minuten und mit maximal 10 Cores pro Knoten laufen können.
  • Die Partitionen lowq, internq usw. sind dem RZ-internen Gebrauch vorbehalten!

 

Vorlagen

  • Beispiel-Skript für eine serielle Berechnung:
    #!/bin/bash
    #SBATCH --job-name=test
    #SBATCH --output=test.out
    #SBATCH --error=test.err
    #SBATCH --nodes=1
    #SBATCH --tasks-per-node=1
    #SBATCH --cpus-per-task=1
    #SBATCH --mem=1000
    #SBATCH --time=01:00:00
    #SBATCH --partition=fairq
    
    export OMP_NUM_THREADS=1
    ./test.ex
  • Beispiel-Skript für eine parallele, knotenübergreifende MPI-Berechnung:
    #!/bin/bash
    #SBATCH --job-name=test
    #SBATCH --output=test.out
    #SBATCH --error=test.err
    #SBATCH --nodes=2
    #SBATCH --tasks-per-node=40
    #SBATCH --cpus-per-task=1
    #SBATCH --mem=10000
    #SBATCH --time=01:00:00
    #SBATCH --partition=fairq
    
    export OMP_NUM_THREADS=1
    module load intelmpi16.0.1
    mpirun -np 80 ./test.ex
    
  • Beispiel-Skript für eine knotenübergreifende Hybrid-Berechnung:
    #!/bin/bash
    #SBATCH --job-name=test
    #SBATCH --output=test.out
    #SBATCH --error=test.err
    #SBATCH --nodes=2
    #SBATCH --tasks-per-node=4
    #SBATCH --cpus-per-task=10
    #SBATCH --mem=10000
    #SBATCH --time=01:00:00
    #SBATCH --partition=fairq
    
    export OMP_NUM_THREADS=10
    module load intelmpi16.0.1
    mpirun -np 8 ./test.ex

 

  • Auf den Batch-Knoten kann nach Anforderung der benötigten Ressourcen auch interaktiv gearbeitet werden. Dazu gibt es zwei verschiedene Möglichkeiten:
    1. Beispiel für eine interaktive Berechnung, wobei der Kommandozeilenprompt des Login-Knoten erhalten bleibt und nur Befehle mit einem vorangestllten srun remote (d.h. auf dem Rechenknoten) ausgeführt werden:

      salloc --nodes=1 --cpus-per-task=1 --time=10 --partition=testq

    2. Beispiel für eine interaktive Berechnung, wobei alle Befehle auf dem Rechenknoten ausgeführt werden:

      srun --pty --nodes=1 --cpus-per-task=1 --time=10 --partition=fairq /bin/bash


Support und Beratung

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