Software > MSC-MARC > Batchbetrieb

Batchbetrieb

Ausführung von Marc im Batchbetrieb

Seriell und parallel im Shared Memory Modus auf einem Knoten:

Eine Berechnung mit Marc sollte nur für kleine Testfälle oder Beispiele interaktiv auf Orac ausgeführt werden.

Die Initialisierung erfolgt in der Module-Technik wie folgt:

   module load marc

Mit -jid jobname wird die Inputdatei jobname.dat erwartet. 

Beim Aufruf von run_marc wird MARC aus dem lokalen Verzeichnis gestartet. Während der Laufzeit wird  im TMP-Verzeichnis /tmp/marc_'$jid_$PPID' gerechnet. Um keine Quota-Probleme zu bekommen wird empfohlen, den Job run_marc von /bigwork aus zu starten. 

Eine ausführliche Beschreibung der run_marc Optionen findet man in der aktuellen Online-Dokumentation.

Die Programmausführung von MARC auf den Compute-Servern  erfogt durch  ein Jobskript für das Batchsystem PBS.

Das Batchskript wird von Orac abgeschickt:

qsub jobscript

Marc stellt einen seriellen und zwei parallele Modi bereit: Shared Memory parallel und Distributed Memory parallel. Im Beispiel wird nur der Shared Memory Modi beschrieben.

Der serielle Modus kann für mittelgroße Beispiele oder Testfälle verwendet werden. Bei größeren Testfällen ist dagegen das Rechnen im parallelen Modus (d.h. auf mehreren Prozessoren gleichzeitig) besser geeignet, um schneller ein Ergebnis zu erhalten. Die Berechnungszeit verkürzt sich dabei im Idealfall proportional zur Anzahl der beteiligten Prozessoren.

Im Shared Memory Modus erfolgt die Parallelisierung durch parallele Threads. Für diese wird gemeinsam adressierbarer Speicher benötigt. Aus diesem Grund können solche Rechnungen nur auf einem Knoten laufen. Welche Ressourcen pro Knoten auf den RRZN-Computeservern zur Verfügung stehen, finden Sie unter Rechnerressourcen.

Das folgende Batchscript ist ein Beispiel für einen seriellen MARC Aufruf:

#!/bin/ksh
#
#PBS -S /bin/ksh
#PBS -N marc
#PBS -l nodes=1:ppn=1,walltime=00:30:00
#  Ressourcenanforderung: 1 Knoten, 1 Prozessor, 30 Min. Rechenzeit
#PBS -o jobname.log
#PBS -e jobname.err
#PBS -m e
#PBS -M ...........@.......uni-hannover.de
#PBS -q all

#  Wechsel in das Working Directory
#
cd $PBS_O_WORKDIR
#
# Initialisierung der Modulefiles
#
. /usr/share/modules/init/ksh
module load marc

run_marc -jid jobname -b no -v no

 

Das folgende Batchscript ist ein Beispiel für einen parallelen MARC Aufruf (SMP):

#!/bin/ksh
#
#PBS -S /bin/ksh
#PBS -N marc
#PBS -l nodes=1:ppn=8,walltime=00:30:00
#  Ressourcenanforderung: 1 Knoten, 8 Prozessoren, 30 Min. Rechenzeit
#PBS -o jobname.log
#PBS -e jobname.err
#PBS -m e
#PBS -M ...........@.......uni-hannover.de
#PBS -q all

#  Wechsel in das Working Directory
#
cd $PBS_O_WORKDIR
#
# Bestimmung der Anzahl der Prozessoren für den nproc-Parameter
#
np=`expr  $(cat $PBS_NODEFILE | wc -l)`
#
# Initialisierung der Modulefiles
#
. /usr/share/modules/init/ksh
module load marc

run_marc -jid jobname -b no -v no -nprocd $np

 

Beispiel für Aufruf eines parallelen Job mit einer  User Subroutine

run_marc -jid jobname -b no -v no -nprocd $np -user=user.f

 

Last Change: 23.11.2010
 
Editorial Responsibility RRZN