Zentrum für Datenverarbeitung (ZDV)

Batchskripte

Das einfache Batchskript

Ein einfaches Batchskript für einen Job, der auf einem Knoten mit 8 Kernen laufen soll, wird wie folgt erstellt:

 

#!/bin/bash
#PBS -l nodes=1:ppn=8
#PBS -l walltime=0:10:0


#das eigentliche Skript darf erst nach den PBS Kommandos beginnen und
#PBS Kommandos sollten auch nicht durch Kommentare unterbrochen werden

cd $PBS_O_WORKDIR
./myprog my_param

 

Die wichtigsten Parameter in dem Batchskript sind:

Bitte beachten Sie:

Bitte fordern Sie nur die Ressourcen an, die Sie auch tatsächlich brauchen!

Wenn Sie z.B. nur 4 Kerne benötigen, so drücken Sie dies durch "-l nodes=1:ppn=4" aus. Sie sollten dabei auch verhindern, dass mehr Prozesse gestartet werden, als Sie Kerne reserviert haben.

Das einfache Batchskript um weitere Parameter erweitern

Wollen Sie nun z.B. einen bestimmten Compiler verwenden (oder ein anderes Programm), so müssen Sie die entsprechende Moduldatei auch im Batchskript laden. Wenn sie z.B. den Intel Compiler 10.1 verwenden möchten, ist es notwendig den Pfad ihrer "~/.bashrc" vorher mit anzugeben.

Eine Vorlage eines entsprechenden Skriptes sehen Sie nun:

 

#!/bin/bash
#PBS -l nodes=1:ppn=2
#PBS -l walltime=48:0:0
.~/.bashrc
module load intel/10.1
cd $PBS_O_WORKDIR
./myprog my_param

 

Das einfache Batchskript für einen parallelen Job erweitern

Einen parallelen Job (MPI Job) auf mehreren Knoten zu starten, erfordert die Angabe der parallel zu verwendenden Knotenanzahl im Batchskript. Zusätzlich sollten Sie die entsprechende MPI-Version als Moduldatei laden.

In unserem Beispiel wollen wir einen Job auf vier Knoten mit jeweils acht Prozessen laufen lassen. Ein Beispielskript könnte folgendermaßen aufgebaut sein:

 

#!/bin/bash
#PBS -l nodes=4:ppn=8
#PBS -l walltime=48:0:0
.~/.bashrc
module load openmpi/1.2.6
#openmpi benutzt das TM Interface, um mit Torque zu kommunizieren. Deshalb ist
#es nicht notwendig ein hostfile zu erzeugen, da dies automatisch geschieht

mpirun myprog arg1 arg2