Batchbetrieb mit PBSPro auf SGI Altix 4700
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, Ein- und Ausgabedateien,...) mitgeteilt werden.Beim PBSPro-Batchsystem kann die Abgabe von Batch-Jobs im Prinzip auf drei verschiedene Arten erfolgen:
- interaktiv über einen Kommandozeilenaufruf
- mit einem Batchskript
- über eine grafische Benutzeroberfläche
Interaktive Jobabgabe
Die Abgabe einer Batch-Berechnung erfolgt mit dem Kommando:qsub [Optionen] auszuführende Datei
Die für eine Jobabgabe wichtigsten Optionen sind:
| PBS-Kommando | Erklärung |
|---|---|
| -o outfile | Standardausgabe wird in die Datei outfile umgeleitet |
| -e errfile | Standard-Fehlerausgabe wird in die Datei errfile umgeleitet |
| -j oe | Standardausgabe und Fehlerausgabe werden in die gleiche Datei umgeleitet |
| -l ncpus=CPUs | Anzahl der Cores (dedault ncpus=1, max. ncpus=32, möglichst durch 4 teilbar) |
| -l walltime=0:15:00 | Rechenzeit in std:min:sec (default 6 Std., max. 150 Std.) | -l mem=4gb | Speicherbedarf. Bitte nur angeben, wenn Sie mehr als 1GB/Core benötigen. |
| -l core=dual bzw. -l core=single |
Legt fest, ob der Job Dual oder Single Core CPUs nutzen
soll. Diese Angabe ist nur sinnvoll, wenn man weiß, dass der Job stark von einem bestimmten CPU-Typ profitiert, denn PBSpro achtet immer darauf, dass Single und Dual Core CPUs nicht gemischt werden (Details) |
| -N altix_pbs | Name des Batchjobs |
| -M Email-Adresse | Email-Adresse des Benutzers |
| -m abe | Email wenn Job startet(b), abbricht(a), ended (e), keine mail (n) |
| -I | Interaktiver Job. Der Benutzer bekommt eine interaktive Shell, wenn der Job startet. Nützlich zum Debuggen und z.B. für Software mit grafischer Benutzeroberfläche |
| -V | Alle Umgebungsvariablen werden aus der Shell übernommen, von der aus qsub aufgerufen wird. |
Beispiel für eine Jobabgabe:
qsub -l ncpus=4,walltime=00:15:00 -o job.out -e job.err job.exe
Hier soll eine Berechnung mit 4 Prozessoren durchgeführt werden.
Die maximale Rechenzeit beträgt 15 Minuten und die Ausgabedateien
sind job.out und job.err.
Weitere Informationen zu diesen und weiteren Optionen findet man auf der
SGI Altix mit dem Kommando:
man qsub
Wer sich für technische Details der gemischten Bestückung mit Single und Dual Core Prozessoren interessiert, wird auf der Seite zur Hardwarekonfiguration der SGI Altix fündig.
Jobabgabe mit einem Skriptfile
Anstelle die verschiedenen Optionen direkt über die Kommandozeile einzugeben, ist es meistens vorteilhafter diese Anweisungen in eine Skript-Datei zu schreiben. Hierbei muss beachtet werden, dass jede Option in einer eigenen Zeilen stehen muss und dass diese immer mit #PBS beginnt.Das oben beschriebene Beispiel würde in einer Skripdatei folgendermaßen aussehen:
-
#!/bin/sh # Beispiel für eine parallele Berechnung #PBS -l ncpus=4 #PBS -l walltime=00:15:00 #PBS -l mem=4gb #PBS -o job.out #PBS -e job.err ./job.exe
Die Übergabe dieser Skriptdatei an das Batchsystem erfolgt mit Kommando:
qsub skript.exe
Bemerkung
Will man mit der Option -I eine interaktive Batch-Berechnung starten, so
muss diese Option über die Kommandozeile (qsub -I)
abgegeben werden. Im Batch-Skript wird die Zeile #PBS -I ignoriert.
Jobabgabe mit grafischer Benutzeroberfläche
Für die Abgabe einer Batch-Berechnung kann auf der Altix 4700 auch die grafische Benutzeroberfläche xpbs verwendet werden.
Beispielskripte
PBS-Kommandos zur Job-Kontrolle
Die beiden wichtigsten Kommandos zur Kontrolle eines Batch-Jobs sind:qstat : liefert Informationen über laufende und wartende Batch-Jobs
qdel jobid : beendet einen laufenden Job bzw. entfernt einen wartenden Job
Weitere wichtige Optionen für die Job-Kontrolle sind
qstat -a : detaillierte Informationen über alle wartenden und laufende jobs wartenden Batch-Jobs
qstat -f jobid : detailliertere Informationen über einen bestimmten Job
qalter jobid : Job-Ressourcen eines wartenden Jobs ändern
tracejob jobid: liefert Log-Informationen über einen Job
qout jobid : zeigt die bisher erzeugte Standardausgabe eines laufenden Jobs an
PBS-Dokumentation
Ansprechpartner
Falls Sie Fragen zur Durchführung von Batch-Berechnungen auf den Parallelrechnern am Rechenzentrum haben, wenden Sie sich bitte an Markus Stammberger.
