eng.jpgENG

Einloggen und Erste Schritte

Kurz gefasst

  • Nutze ssh um zu 141.44.8.59 zuverbinden
  • Erstelle ein SSL Schlüsselpaar
  • Sende die folgenden Information an Dr. Schulenburg mit dem Betreff WWW-t100 (email unten)
    • public key des Schlüsselpaars
    • Kurze Beschreibung des Projekts
    • Erforderlichen Ressourcen
  • Falls du Student bist, frag dein Betreuer Erlaubnis

Bei Fragen zu Neumann kontaktiere Dr. Schulenburg joerg.schulenburg@ovgu.de, oder Tel. -58408.

Um das Neumann-Cluster nutzen zukönnen muss ein Account beantragt werden. Die notwendigen Informationen hierfür sind der Homepage zu entnehmen: Neumann-Cluster.

Sobald ein Account auf Neumann erstellt wurde, kann ein beliebiger SSH-Client genutzt werden um auf Neumann zu zugreifen.

[user@home]$ ssh user@141.44.8.59

oder

[user@home]$ ssh user@neumann.urz.uni-magdeburg.de

Schlüssel erstellen

Nach dem ersten Login sollte ein ein neuer SSH-Schlüssel innerhalb des Neumann-Clusters erzeugt werden. Auf diese Weise kann man sich per ssh auf die Compute-Knoten einloggen. Dieser Zugang wird für einige Programme benötigt die einen ssh-Zugriff auf die zu benutzenden Knoten benötigen und nicht per mpirun gestartet werden.

Zuerst wird ein neuer Schlüssel erzeugt. Achtung! Es darf hier keine Passphrase für den Schlüssel gesetzt werden.

[user@login ~]$ ssh-keygen

Nun wird der neue Schlüssel (id_rsa oder ähnlich) den bekannten Schlüsseln hinzugefügt.

[user@login ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

Zur Sicherheit wird der Fremdzugriff für authorized_keys nocheinmal begrenzt mit:

[user@login ~]$ chmod 600 .ssh/authorized_keys

Nutzer, die folgende Programme nutzen möchten, müssen auf jeden Fall ein Schlüssel erzeugen!

  • CD-Adapco StarCCM+
  • ANSYS Fluent

Arbeitsverzeichnis erstellen

Für den Nutzer sind zwei Verzeichnisse von Bedeutung /home/user und /scratch/tmp/. Im home-Verzeichnis sollten möglichst keine großen Daten abgelegt werden. Dafür ist das scratch-Verzeichnis vorgesehen. Denn, im home-Verzeichnis stehen nur etwa 1 Terabyte Speicherplatz zur Verfügung, im scratch-Verzeichnis dagegen etwa 290 TB. Sollte das home-Verzeichnis einmal vollgeschrieben werden, könnten sämtliche laufenden Jobs auf dem Cluster beeinträchtigt werden!

Wie viel Speicherplatz verfügbar ist kann so geprüft werden:

[user@login ~]$ df -h ~
Filesystem             Size  Used Avail Use% Mounted on
controller:/home/vc-a  914G  592G  323G  65% /home

[user@login ~]$ df -h /scratch/tmp/
Filesystem      Size  Used Avail Use% Mounted on
beegfs_nodev    292T  4.7T  287T   2% /mnt/beegfs

Für den eigenen Account kann im Verzeichnis /scratch/tmp ein Arbeitsverzeichnis wie folgt angelegt werden:

[user@login ~]$ mkdir /scratch/tmp/user

(user mit dem eigenen Account austauschen oder durch ${USER} ersetzen)

Aufgrund der Systemkonfiguration sollten Job-Skripte vom home-Verzeichnis aus gestartet werden. Im Job-Skript sollte dann in das Arbeitsverzeichnis gewechselt werden (cd /scratch/tmp/user).

Es werden keine Backups angelegt- weder für das home-, noch für das scratch-Verzeichnis. Wichtige Daten sollten also immer heruntergeladen/kopiert werden.

Ein Job einreichen

Die kurze Job-Skript-Datei im folgenden führt den Prozess sleep für die angegebene Dauer aus und soll stellvertretend für eine richtige Aufgabe stehen.

job.sh
#!/bin/bash
#SBATCH -J testRun # jobname displayed by squeue
#SBATCH -N 1
#SBATCH --time 00:05:00 # set walltime, what you expect as maximum, in 24h format
#SBATCH -p sw01_short
srun sleep 300

Dieses Skript wird mit dem Befehl sbatch eingereicht.

[user@login ~]$ sbatch job.sh
Submitted batch job 14875

Sofern ein Knoten frei ist, wird dieser Job sofort ausgeführt. Meistens ist dies jedoch nicht der Fall sodass der Job in die Warteschleife eingefügt wird. Die Warteschleife kann mit dem Befehl squeue angezeigt werden.

[user@login ~]$ squeue
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
14726       big     LSUB    user1 PD       0:00    140 (Resources)
14743       big   job-01    user2 PD       0:00     90 (Priority)
14821       big      BTP    user3 PD       0:00     40 (Dependency)
14824       big      act    user3 PD       0:00     30 (Resources)
14827       big    sqt10    user4 PD       0:00     70 (Resources)
14710       big   RGB_D4    user4  R 4-02:36:20      1 c116
14875 sw01_shor  testRun    user   R       0:05      1 c002
14411 sw04_long    MISLC    user6 PD       0:00      4 (Dependency)
13212 sw04_long    MISLC    user6  R 9-21:22:05      4 c[088,107-109]
14437 sw04_long      z_t    user5  R    3:48:26      7 c[045-046,065...

Alternativ zu squeue können auch qstat und squeue_all genutzt werden. Für Nutzer die bereits Erfahrungen mit anderen Workload Managern lässt sich eine Rosetta-Tafel für die Übersetzung alter Scripte nutzen.

Den laufenden Job steuern

Muss ein Job frühzeitig beendet werden oder einfach nur aus der Warteschleife entfernt werden muss der Befehl scancel genutzt werden:

[user@login ~]$ scancel 12345

Detailierte Aufgaben, wie Array-Jobs, mehrere Jobs,.. beenden, kann ebenfalls durchgeführt werden. Sie genaueres unter man scancel Alle Informationen von SLURM zu einem Job können mit eingesehen werden.

[user@login ~]$ scontrol show job 12345
JobId=12345 Name=BTP
   UserId=user(1000) GroupId=user(1000)
   Priority=4294892716 Nice=0 Account=(null) QOS=(null)
   JobState=PENDING Reason=Dependency Dependency=singleton
   Requeue=1 Restarts=0 BatchFlag=1 ExitCode=0:0
   RunTime=00:00:00 TimeLimit=4-19:00:00 TimeMin=N/A
   SubmitTime=2016-07-22T13:39:14 EligibleTime=Unknown
   StartTime=Unknown EndTime=Unknown
   PreemptTime=None SuspendTime=None SecsPreSuspend=0
   Partition=big AllocNode:Sid=c502:32676
   ReqNodeList=(null) ExcNodeList=(null)
   NodeList=(null)
   NumNodes=40-40 NumCPUs=640 CPUs/Task=1 ReqB:S:C:T=0:0:*:*
   Socks/Node=* NtasksPerN:B:S:C=16:0:*:* CoreSpec=0
   MinCPUsNode=16 MinMemoryNode=0 MinTmpDiskNode=0
   Features=(null) Gres=(null) Reservation=(null)
   Shared=0 Contiguous=0 Licenses=(null) Network=(null)
   Command=/home/user/job.sh
   WorkDir=/home/user
   StdErr=/home/user/slurm-12345.out
   StdIn=/dev/null
   StdOut=/home/user/slurm-12345.out
de/guide/first_login.txt · Zuletzt geändert: 2017/09/27 10:26 von Sebastian Engel
Nach oben
CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0