Advanced Computing
TUILM-AdvancedComputing
Betrieb einer Cluster-Infrastruktur zur Durchführung massiv-paralleler numerischer Berechnungen und Simulationen.
Hardware
Die Computeservices des UniRZ beinhalten folgende Hardware:
MaPaCC 1 - Massiv Paralleler Computer Cluster
MaPaCC 1 - Massiv Paralleler Computer Cluster
Hardwarekonfiguration: 32 Knoten SUN X 4100:
- 2x AMD Opteron Dual Core 275 (2,2 GHz)
- Hauptspeicherausstattung:
- 8 Knoten mit 4 GByte RAM
- 16 Knoten mit 8 GByte
- 8 Knoten mit 16 GByte
- 2 Serial Attached SCSI (SAS) Festplatten je 73 GByte
- 4x Gigabit Ethernet Interface
- Infiniband Host Channel Adapter (IB HCA)
Mellanox MT 23108 - 1x Remote Service Controller (RSC)
Masterknoten SUN X4100:
- 2x AMD Opteron Single Core 252 (2,6 GHz)
- 4 GigaByte RAM
- 2 Serial Attached SCSI (SAS) Festplatten je 73 GByte (RAID 1)
- RAID 5 Filesystem - Kapazität: 1,5 TByte
- 4x Gigabit Ethernet Interface
- 1x Remote Service Controller (RSC)

- Abb. 1: Sicht auf Master- und Rechenknoten

- Abb. 2: Masterknoten (oben) und Fileserver (blaue Front)

- Abb. 3: Infiniband Switch

- Abb. 4: Gigabit Switch und Adminnetzwerkswitch
MaPaCC 2 - Massiv Paralleler Computer Cluster
MaPaCC 2 - Massiv Paralleler Computer Cluster
100 Compute Nodes
- 24 GByte main memory
- 8 CPU cores , 2 sockets (Intel X 5550 2.67 GHz)
- 250 GByte harddisk
- network 1: gigabit 1 Gbit/s
- network 2: gigabit 1 Gbit/s
- network 3: management 100MBit/s
1 SMP Node
- 128 GByte main memory
- 48 CPU cores; 8 sockets (AMD Opteron™ 8431 2.4 GHz)
- 300 GByte harddisk (SATA RAID 0)
- network 1: gigabit 1 Gbit/s
- network 2: gigabit 1 Gbit/s
- network 3: management 100MBit/s
MaPaCC 3 - Massiv Paralleler Computer Cluster
MaPaCC 3 - Massiv Paralleler Computer Cluster
48 Compute Nodes
- 64 GByte main memory
- 32 Cores at 4 sockets (AMD OPTERON 6134 2.3GHz)
- 150 GByte local harddisk
- network 1-4: gigabit 1 Gbit/s
- network 5: infiniband 32 Gbit/s
- network 6: management 100MBit/s
2 SMP Nodes
- 128/256 GByte main memory
- 32 Cores at 4 sockets
- 150 GByte local harddisk
- network 1-4: gigabit 1 Gbit/s
- network 5: infiniband 32 Gbit/s
- network 6: management 100MBit/s
Grafikarbeitsplätze im UniRZ (RTK 2)
Grafikarbeitsplätze im UniRZ (RTK 2)
Hardwareausstattung
- Systembezeichnung: Esprimo P9900 E-Star5
- Baujahr/Jahr d. Inbetriebnahme: 2011
- CPU: Intel i5 CPU 650 @ 3,20 GHz
- Grafik: GeForce 9500 GS
- RAM: 4 GB
- HDD: SATA 300GB
- OS & Version: CentOS5
FileServer Infrastructure
Homedirectories
/usr/wrk/people*
- people9 (13 TB)
- people4 (9 TB)
Service
- with weekly backup
- with quotas
- without tidy policies
Data Filesystems
/mnt/*
- san2emt (9.1 TB)
- fhgsan (5.7 TB)
Service
- with weekly backup
- with quotas
- without tidy policies
Scratch Filesystems
/usr/scratch*
- scratch (1.4 TB)
- scratch1 (3.9 TB)
- scratch_tsm (2.8 TB)
- scratch3 (141 TB) / High performance Scratch Filesystem
Service
- without weekly backup
- without quotas
- with tidy policies
Some words to /usr/scratch3
- consist of 96x 2 Terabyte SAS hard disks
- 24 disk per storage node
- distibuted over 4 storage nodes
- 1 metadata nodes
every storage administrates 24 Disks
and 36 Tbytes raid5 Redundancy
… 1 disk Redundance - FHG FS Fraunhofer File System

- Storage Nodes
TUIL - CS - Ressources - History
TUIL - CS - Ressources - History
SGI Origin 2000 (1996)
1 Computenode, 18 Cores (18 Sockets: ), 9 GByte RAM
FSC Cluster (2001-2006)
20 Computenodes, 40 Cores (40 Sockets: 2 CPU AMD 1800+), 40 GByte RAM
SUN V 880 (2004-2010)
8 Computenodes, 8 Cores (8 Sockets: UltraSparc III: 1.2 GHz), 16 GByte RAM
FSC BX 600 (2004)
10 Computenodes, 20 Cores (20 Sockets: 2 CPU Xeon: 2.4 GHz), 40 GByte RAM
Jobverwaltung mit LSF
Der Zugang zu den Computeservern erfolgt über das TUILAN. Die Programme bzw. die Software werden auf dem Computeserver gestartet und die grafische Ausgabe (bei interaktiven Jobs) erfolgt auf dem Clienten - also auf dem PC oder auf einer Workstation auf dem Arbeitsplatz des Nutzers. Die Zuteilung der CS- Ressourcen wie CPU, Memory erfolgt durch Jobverwaltungssoftware LSF.
Das Jobverwaltungssytem LSF (Load Sharing Facility) ermöglicht den Zugriff auf die Computeserver. Eine direkte ssh-basierende Verbindung zu einem einzelnen Knoten des CS- Clusters ist nicht möglich. Beim Arbeiten mit den Maschinen wird zwischen Batchjobs und interaktiven Jobs unterschieden. Jeder Job wird beim Starten durch eine von LSF zugeteilte Jobnummer (JobID) eindeutig gekennzeichnet.
Bevor ein Job gestartet wird, muß der Job hinsichtlich seiner Ressourcen (CPU Zeit, RAM) klassifiziert werden. Im Ergebnis dessen wird der Job vom Nutzer durch LSF einer passenden Queue zugeordnet.
Welche Ressourcen benötigt mein Job?
Bevor ein Job auf dem Computeserver ablaufen kann, muß der Nutzer seinen Job hinsichtlich der erforderlichen Ressourcen klassifizieren. Ressourcen können zum Beispiel sein:
- Interaktiver oder Batchjob
- Betriebssystem
- gewünschte CPU- Zeit
- erforderlicher Hauptspeicher
- Anzahl der Prozessoren
Die für den Job erforderlichen Ressourcen (Jobparameter) werden mit den vorgegebenen Queuekonfigurationen verglichen und damit einer bestimmten Queue zugeordnet.
Jobverwaltung mit LSF
Interaktive Jobs
Interaktiver Job
Als ein interaktiver Job wird ein Job bezeichnet, welcher auf dem Computeserver ein xterm startet und die grafische Ausgabe auf den Clienten umleitet. Die dazugehörige Kommandozeile lautet:
bsub -Is xterm
Die Option -Is gibt an, dass es sich um einen interaktiven Job mit Shellmode- Unterstützung handelt (siehe Abschnitt LSF Kommandos). Wenn wie im obigen Beispiel keine Queue oder kein Hostname angegeben wird, wird eine Standardqueue zugewiesen - LSF ist so konfiguriert, daß als Standardqueue die Queue mit dem Namem Inter8 gewählt wird und als Host die makalu1 oder makalu2 gewählt wird. Alternativ können für einen interaktiven Job folgende Kurzbefehle verwendet werden:
j interaktiver Job in der Standardqueue Inter8
j24 interaktiver Job in der Queue Inter24
Weitere Optionen zu bsub sind im Abschnitt LSF Kommandos erläutert.
DISPLAY-Variable
Die Umgebungsvariable DISPLAY gibt den Hostnamen oder IP-Adresse der Maschine an, zu dem bei einem interaktiven Job die grafische Ausgabe erfolgen soll. Das ist der Hostname (oder IP-Adresse) des Rechners, an dem sich der Nutzer physisch befindet. Zur richtigen Einstellung der DISPLAY-Variable gibt es mehrere Möglichkeiten:
Die DISPLAY- Variable wird vor dem Absetzen des Job auf den Namen (oder IP-Adresse) des Hosts bzw. Arbeitsplatzrechners gesetzt, auf welchem die grafische Ausgabe erfolgen soll. Zum Beispiel ist die Maschine namens kongur.rz.tu-ilmenau.de der Submit-Host und otto.inf-technik.tu-ilmenau.de der Host, an welcher der Nutzer arbeitet und an welcher die grafische Ausgabe erfolgen soll. Zuerst wird eine ssh- Verbindung von otto.inf-technik.tu-ilmenau.de zur Maschine namens kongur.rz.tu-ilmenau.de hergestellt:
ssh kongur.rz.tu-ilmenau.de -l unirz_username
Anschließend wird derWert der Variablen DISPLAY auf die Maschine otto.inf-technik.tu-ilmenau.de mit folgendem Kommando gesetzt:
setenv DISPLAY otto.inf-technik.tu-ilmenau.de:0
Die Zeichenfolge ":0" ist notwending um den primären X-Server auf otto.inf-technik.tu-ilmenau.de anzusprechen. Dann kann mit dem Kommando
bsub -Is xterm -sb -sl 1000
der interaktive Job abgesetzt werden. Alternativ können für das Absetzen eines interaktiven Jobs folgende Kurzbefehle verwendet werden:
j interaktiver Job in der Standardqueue Inter8
j24 interaktiver Job in der Queue Inter24
Der Ausgabebildschirm bzw. -host kann beim Jobabsetzen auch in Form einer Option des xterm- Kommandos angegeben. Das Kommando zum Absetzen eines interaktiven Jobs lautet dann:
bsub -Is xterm -display otto.inf-technik.tu-ilmenau.de:0
Für das erfolgreiche Starten eines interaktiven Jobs ist unbedingt der nachfolgende Abschnitt zu beachten!
Die X-Server Freigabe mit xhost
Dem jeweiligen interaktiven Rechenknoten (z. Z. makalu1 bzw. makalu2) muß explizit erlaubt werden, eine grafische Ausgabe auf dem Arbeitsplatzrechner vorzunehmen. Das geschieht mit dem Kommando xhost, welches auf dem Rechner auszuführen ist, an welchem der Nutzer interaktiv arbeiten möchte. Auf dem obengenannten Host namens otto.inf-technik.tu-ilmenau.de müssen vor dem Absetzen des interaktiven Jobs die folgenden Kommando ausgeführt werden:
xhost makalu1.rz.tu-ilmenau.de
xhost makalu2.rz.tu-ilmenau.de
Batchjob
Als Batchjob wird der Job bezeichnet, welcher keine grafische Ausgabe auf den Clienten benötigt. Die in diesem Job sequentiell abzuarbeitenden Kommandos werden in einem Skriptfile aufgeführt und zeilenweise ausgeführt.
Eine allgemeine Kommandozeile zum Absetzen eines Batchjobs lautet:
bsub -q Batch24 $HOME/start.ansys
Das bsub- Kommando mit den Optionen wird auf dem Clienten ausgeführt. Die Skriptdatei namens start.ansys, welche die abzuarbeitenden Kommandos enthält, muß sich in dem obigen Beispiel in dem Homeverzeichnis ($HOME) des Nutzer befinden! Die Datei start.ansys kann zum Beispiel folgende Kommandos enthalten:#!/bin/cshDieser Job erhält eine Job-ID und wird in die Queue mit dem Namen Batch24 eingeordnet und auf dem Rechenknoten mit der geringsten Belastung (Load) gestartet. Mit dem Kommando bjobs kann der Jobstatus angezeigt werden. Der Output des Jobs kann während der Jobabarbeitung mit dem Kommando bpeek JobID angesehen werden.
date
cd $HOME/work/ansys
pwd
ls
setansys
ansys100 -p ansysrf < stab.inp
echo endlich fertig mit dem Beispiel
Das bsub- Kommando ermöglicht beim Absenden eines Jobs die Angabe vieler Optionen. Daher ist es sinnvoll, sich mit einem Editor (vi, nedit, ieditor) ein Skript zu generieren, welches das bsub- Kommando mit den nachfolgenden Optionen enhält. So ein Skript kann zum Beispiel mit dem Namen start.ansys.lsf bezeichnet werden und folgende Zeile beinhalten:
bsub -q Batch72 -J AnsysJob -o $HOME/ansys.log $HOME/start.ansys
Dieser Job mit dem Namen AnsysJob soll in die Queue Batch72 eingeordnet werden und abgearbeitet werden. Der Job- Outputwird in einer Datei namens ansys.log im Homeverzeichnis gespeichert. Letztendlich wird in diesem Skript das im Homeverzeichnis des Nutzers befindliche Skript start.ansys aufgerufen - welches z. B. folgende Kommandos enthält.
Diese Vielzahl von Optionen beim Absenden eines Batchjobs kann sehr unübersichtlich sein. Im nachfolgenden Abschnitt wird eine weitere Möglichkeit zur kombinierten Abspeicherung der Joboptionen und der auszuführenden Kommandos beschrieben.
Die bsub- Optionen und die Jobbefehle in einem Skriptfile
Für die gemeinsame Abspeicherung der bsub- Optionen und der abzuarbeitenden Kommandos ist notwendig, eine einzige Skriptdatei zu erstellen. Dieser Datei kann der Name "start.ansys.lsf" gegeben werden und folgendermaßen aufgebaut sein:#!/bin/csh
#BSUB -q Batch72
#BSUB -R linux
#BSUB -J AnsysJob
#BSUB -o ansys.log
date
cd $HOME/work
pwd
setansys
ansys100 -p ansysrf ansys.inp
echo Endlich fertig!
echo War das anstrengend!
Eine Option für das bsub- Kommando wird in der Datei namens Batch mit der Zeichenfolge #BSUB gekennzeichnet. Nachdem alle Optionen aufgeführt sind, folgen dann die auszuführenden Kommandos.
Das Absetzen des Batchjobs mit den aufgeführten Optionen und die Abarbeitung der Kommandos, welche im Skript namens start.ansys.lsf aufgeführt sind, erfolgt dann mit:
bsub < start.ansys.lsf
Dieser Job wird in der Queue namens Batch72 eingeordnet und auf einem vom LSF Jobverwaltungssystem zugeteilten Knoten gestartet. Der Jobname lautet AnsysJob und der Joboutput wird nach Jobende in einer Datei namens ansys.log in dem Verzeichnis abgelegt, aus dem dieser Job gestartet wurde.
Es wird zuerst das Kommando date ausgeführt und anschließend mit dem Kommando cd $HOME/work in das Homeverzeichnis des Nutzers und weiter in das Verzeichnis work gewechselt. Es wird mit pwd das aktuelle Verzeichnis abgefragt und dann das Programm oder Skript namens ansys100 ausgeführt. Zum Schluß werden noch zwei kleine Bemerkungen mit Hilfe des echo Kommandos ausgegeben.
Serielle Batchjobs
Serielle Comsoljobs
Serielle Comsoljobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf beinhaltet folgende Zeilen:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1500 && mapacc"
#BSUB -o lsf_comsol.log
#BSUB -e lsf_comsol.err
#BSUB -J Comsol_Job_seriell
date
pwd
comsol -tmpdir /usr/tmp batch input
date
Hinweise
- dieser Comsoljob wird mit dem Kommando bsub<start.lsf gestartet
- es muss ein Comsol Inputfile namens input.m existieren - der Name des Inputfiles kann geändert werden - die *.m Extension muss beibehalten werden
- es wird der Inputfile ohne Extension angegeben
- die mit #BSUB beginnenden Zeilen stellen die Optionen für das bsub Kommando dar
- dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1500 MB Hauptspeicher und bekommt den Jobnamen "Comsol_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_comsol.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_comsol.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Comsoljob mit dem Kommando bsub < start.lsf gestartet wird
- der Comsolbatchjob wird aus diesem Verzeichnis gestartet - daher befindet sich auch der Comsolinputfile als auch sämtliche Logfiles in diesem Verzeichnis
- eine Erläuterung aller Comsol Optionen erhält man mit dem Kommando comsol -help
Serielle Matlabjobs
Serielle Matlabjobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf beinhaltet folgende Zeilen:
#!/bin/cshdate
#BSUB -q Batch24
#BSUB -R "mem > 1500 && mapacc"
#BSUB -o lsf_matlab.log
#BSUB -e lsf_matlab.err
#BSUB -J Matlab_Job_seriellpwd
setmatlab
matlab -nodisplay -nojvm -nodesktop -nosplash < matlab.m > matlab.log
date
Hinweise
- dieser Matlabjob wird mit dem Kommando bsub<start.lsf gestartet
- es muss ein Matlab Inputfile namens matlab.m existieren - der Name des Inputfiles kann geändert werden - die *.m Extension sollte beibehalten werden
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1500 MB Hauptspeicher und bekommt den Jobnamen "Matlab_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_matlab.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_matlab.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Matlabjob mit dem Kommando bsub < start.lsf gestartet wird
- der Matlabbatchjob wird aus diesem Verzeichnis gestartet - daher befindet sich auch der Matlabinputfile als auch sämtliche Logfiles in diesem Verzeichnis
- eine Erläuterung der Matlab Optionen -nodisplay -nojvm -nodesktop -nosplash erhält man mit dem Kommando matlab -help
Serielle Fluentjobs
Serielle Fluentjobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf kann folgende Zeilen beinhalten:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1000 && mapacc"
#BSUB -o lsf_fluent.log
#BSUB -e lsf_fluent.err
#BSUB -J Fluent_Job_seriell
date
cd $HOME/work/fluent
pwd
setfluent
fluent 3d -g < fluent.jou > fluent.log
Hinweise
- dieser Fluentjob wird mit dem Kommando bsub<start.lsf gestartet
- es muss ein Fluent Inputfile namens fluent.jou existieren
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- der Fluent Jornalfile namens fluent.jou hat folgenden Inhalt
file/read-case-data fluent_input.cas
solve/initialize initialize
solve/iterate 10
file/write-data fluent_output.dat
exit
yes - dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1000 MB Hauptspeicher und bekommt den Jobnamen "Fluent_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_fluent.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_fluent.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Fluentjob mit dem Kommando bsub < start.lsf gestartet wird
Serielle Ansysjobs
Serielle Ansysjobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf kann folgende Zeilen beinhalten:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1500 && mapacc"
#BSUB -o lsf_ansys.log
#BSUB -e lsf_ansys.err
#BSUB -J Ansys_Job_seriell
date
cd $HOME/work/ansys
pwd
setansys11
# mit -p aa_t_a
wird die Teaching Advance Lizenz benutzt
ansys110 -p aa_t_a < ansys.inp
# mit -p aa_r wird die Ansys Academic Research Lizenz benutzt
ansys110 -p aa_r < ansys.inp
date
Hinweise
- dieser Ansysjob wird mit dem Kommando bsub<start.lsf gestartet
- es muss ein Ansys Inputfile namens ansys.inp existieren - oder der Name des Inputfiles geändert werden
- die Ansys "Teaching Advanced" Lizenz (aa_t_a) ist knotenpunktlimitiert, die Ansys "Academic Research" Lizenz (aa_r) beinhaltet kein Knotenpunktlimit - die unlimitierte Ansys Lizenz sollte bei entsprechender Notwendigkeit benutzt werden
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1500 MB Hauptspeicher und bekommt den Jobnamen "Ansys_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_ansys.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_ansys.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Fluentjob mit dem Kommando bsub < start.lsf gestartet wird
- sinnvollerweise sollten sich der Ansysinputfile (hier: ansys.inp) und die LSF Datei im gleichen Verzeichnis befinden - dann kann das "cd ..." Kommando entfallen
Serielle Maxwelljobs
Serielle Maxwelljobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf beinhaltet folgende Zeilen:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1500 && mapacc"
#BSUB -o lsf_maxwell.log
#BSUB -e lsf_maxwell.err
#BSUB -J Maxwell_Job_seriell
date
pwd
maxwell -BatchSolve -Local -Ng Projektname1.mxwl
date
Hinweise
- dieser Maxwelljob wird mit dem Kommando bsub<start.lsf gestartet
- es muss ein maxwell Projekt namens Projektname1.mxwl existieren
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1500 MB Hauptspeicher und bekommt den Jobnamen "Maxwell_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_maxwell.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_maxwell.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Maxwelljob mit dem Kommando bsub < start.lsf gestartet wird
- der Maxwellbatchjob wird aus diesem Verzeichnis gestartet - daher befindet sich auch das Maxwellprojekt in Form eines Projektfiles
- Mit dem Kommando
maxwell -helpwerden alle Maxwell Startoptionen in einem grafischen Fenster angezeigt
Parallele Batchjobs
Parallele Comsoljobs
Parallele Comsoljobs werden auf einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf beinhaltet folgende Zeilen:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1500 && mapacc"
#BSUB -o lsf_comsol.log
#BSUB -e lsf_comsol.err
#BSUB -J Comsol_Job_seriell
#BSUB -n 2
date
pwd
comsol -tmpdir /usr/tmp -np 2 batch input
date
Hinweise
- dieser Comsoljob wird mit dem Kommando bsub<start.lsf gestartet
- dem bsub wird mit der Option "-n 2"die Anzahl der gewünschten CPUs mitgeteilt
- dem Comsol Solver wird mit der Option "-np 2" die Anzahl der zu verwendeten CPUs mitgeteilt - die bsub und die comsol Angaben müssen hinsichtlich der Anzahl der verwendeten CPUs unbedingt übereinstimmen!
- es muss ein Comsol Inputfile namens input.m existieren - der Name des Inputfiles kann geändert werden - die *.m Extension muss beibehalten werden
- es wird der Inputfile ohne Extension angegeben
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1500 MB Hauptspeicher und bekommt den Jobnamen "Comsol_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_comsol.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_comsol.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Comsoljob mit dem Kommando bsub < start.lsf gestartet wird
- der Comsolbatchjob wird aus diesem Verzeichnis gestartet - daher befindet sich auch der Comsolinputfile als auch sämtliche Logfiles in diesem Verzeichnis
- eine Erläuterung aller Comsol Optionen erhält man mit dem Kommando comsol -help
Parallele ABINIT Jobs
Parallele shared memory MPI basierende ABINIT Jobs können mit nachfolgenden LSF Beispielskript gestartet werden:
#!/bin/csh
#BSUB -q Batch72
#BSUB -R "mem>500 span[ptile=2]"
#BSUB -o abinit_lsf.log
#BSUB -e abinit_lsf.err
#BSUB -n 2
#BSUB -J ABINIT_parallel
cd $HOME/work/abinit
pwd
date
mpirun -np 2 ./abinip < ./inputfile
date
Diese Zeilen müssen in einer Datei abgespeichert werden - z. B. mit dem Namen start.abinit.lsf - und der parallele LSF Job wird mit dem Kommando
bsub < start.abinit.lsf
gestartet.
Alternativ können die obigen Zeilen in zwei Skripte aufgeteilt werden - Skript 1 für das bsub Kommando und seine Optionen - Skript 2 enthält die auszuführenden Kommandos:
| Skript 1: start.abinit.lsf | Skript 2: start.abinit |
bsub |
|
Hinweise:
- für das Starten eines ABINIT Jobs mit LSF ist das am Anfang dieser Seite aufgeführte Skript namens start.abinit.lsf zu bevorzugen weil sich hier die gesamten LSF Joboptionen und die eigentlichen Kommandos in einer Datei befinden
- Skript 1 und Skript 2 müssen Ausführungsrechte erhalten:
chmod 700 start.abinit.lsf
chmod 700 start.abinit - die Angabe der Inputfiles sollte vorzugsweise unter Verwendung des vollen Pfadnamens erfolgen - die $HOME Variable kann im Skript 1 und im Skript 2 verwendet werden
- Die mit der Option -o und -e angegebenen Output- und Errordateien werden - wenn wie im Beispielskript bezeichnet - in dem Verzeichnis abgelegt aus welchem dieser Job gestartet wird. Wenn diese Logfiles in einem anderem Verzeichnis abgespeichert werden sollen - z. B. im Homeverzeichnis - dann muss der komplette Pfadname angegeben werden - es dürfen dabei keine Umgebungsvariablen wie $HOME verwendet werden; z. B. mit:
#BSUB -o /usr/wrk/people9/otto/work/abinit/abinit_lsf.out - die Option -n 2 gibt die Anzahl der angeforderten CPU- Cores an - zusammen mit der Option span[ptile=2] fordert dieser Job damit von zwei Hosts je zwei CPU Cores an; wird die Option span[ptile=2] nicht verwendet entscheidet LSF über die Verteilung und Auswahl der CPU Cores innerhalb des Clusters - z. B. 1 CPU Core auf Host 1 und 1 CPU Core auf Host 13
- die Option -mem 500 fordert zum Startzeitpunkt 500 MByte Hauptspeicher (RAM) ueber alle (!) Parallelprozesse (= MPI Threads) an
- die Option -q Batch72 ordnet diesen Job in die Queue Batch72 ein - und erhaelt eine max. CPU Zeit von 72 h über alle (!) MPI Threads
- der ABINIT Job ist nach dem Starten noch einige Minuten zu "beobachten" - falsche Settings, die zum Abbruch des Programms führen (kommentiert mit "decision to take exit") - werden am Ende der Ausgabe mit einem Tip zur Reparatur ausgegeben
- ein Tutorial und weitere Infos zu ABINIT findet man unter www.abinit.org
Parallele Fluentjobs
Parallele Fluentjobs werden auf mehr als einer CPU bzw. einem CPU Core abgearbeitet.
Der LSF Inputfile namens start.lsf kann folgende Zeilen beinhalten:
#!/bin/csh
#BSUB -q Batch24
#BSUB -R "mem > 1000 && mapacc span[ptile=4]"
#BSUB -o lsf_fluent.log
#BSUB -e lsf_fluent.err
#BSUB -J Fluent_Job_parallel
#BSUB -n 4
date
cd $HOME/work/fluent
pwd
setfluent
fluent 3ddp -lsf -t4 -ssh -g < fluent.jou > fluent.log
Hinweise
- dieser Fluentjob wird mit dem Kommando bsub<start.lsf gestartet
- für den Fluentjob werden vier CPUs bzw. Cores angefordert - durch die bsub Option #BSUB n 4 und als Option zum Fluent Kommando fluent 3ddp -lsf -t4 ...
- span[ptile=4] erzwingt das mindestens vier Fluentprozesse auf vier Core auf einem Host gestartet werden - span[ptile=2] erzwingt dass mindestens zwei Fluentprozesse auf einem Host gestartet werden
- werden für diesen parallelen Fluentjob user defined function (UDF) verwendet - ist vorher unbedingt das UDF Handbuch zu konsultieren!!!
- es muss ein Fluent Inputfile namens fluent.jou existieren
- die mit #BSUB beginnenden Zeilen stellen die Optionen fuer das bsub Kommando dar
- der Fluent Jornalfile namens fluent.jou hat folgenden Inhalt
file/read-case-data fluent_input.cas
solve/initialize initialize
solve/iterate 10
file/write-data fluent_output.dat
exit
yes - dieser Job wird entsprechend den oben verwendeten Optionen in die Queue Batch24 eingeordnet, benötigt mindestens 1000 MB Hauptspeicher und bekommt den Jobnamen "Fluent_Job_seriell"
- der (LSF) Output wird in eine Datei namens "lsf_fluent.log" geschrieben
- eventuelle Fehlermeldungen werden in eine Datei namens "lsf_fluent.err" geschrieben
- die Output- und Errordatei befinden sich in dem Verzeichnis, von dem aus dieser Fluentjob mit dem Kommando bsub < start.lsf gestartet wird
MPI Jobs
MPI Jobs LSF Optionen und Kommandos allgemein gestartet werden:
#!/bin/csh
#BSUB -q Batch24
#BSUB -n 4
#BSUB -a openmpi
#BSUB -R "mem>1000 span[ptile=4]"#BSUB -o mpi_lsf.log
#BSUB -e MPI_lsf.err
#BSUB -J MPI_Job_LSF
date
pwd
mpirun.lsf ./a.out
date
Hinweise
- das MPI Binary muss vor dem Starten des Jobs übersetzt werden
- dieser Job wird in der Queue Batch24 eingeordnet
- die bsub Option -a openmpi zeigt die Verwendung der OpenMPI Implementation an
- die bsub Option span[ptile=4] erzwingt dass auf einem Knoten mindestens vier MPI Threads laufen müssen
- das Batchsystem weist diesem MPI Job die freien Knoten im Cluster zu
Parallele MPI Jobs
Parallele MPI basierende LAMMPS Jobs können mit nachfolgenden LSF Beispielskript gestartet werden:
#!/bin/csh
#BSUB -q Batch72
#BSUB -R "mem>500 span[ptile=2]"
#BSUB -o lammps_lsf.log
#BSUB -e lammps_lsf.err
#BSUB -n 4
#BSUB -a mpichp4
#BSUB -J LAMMPS_parallel
cd $HOME/work/lammps
pwd
date
setlammps
pam -g mpich4_wrapper lmp_g++ < $HOME/work/lammps/in.lj
date
Diese Zeilen müssen in einer Datei abgespeichert werden - z. B. mit dem Namen start.lammps.lsf - und der parallele LSF Job wird mit dem Kommando
bsub < start.lammps.lsf
gestartet. Alternativ können die obigen Zeilen in zwei Skripte aufgeteilt werden - Skript 1 für das bsub Kommando und seine Optionen - Skript 2 enthält die auszuführenden Kommandos:
| Skript 1: start.lammps.lsf | Skript 2: start.lammps |
| cd $HOME/work/lammps |
Hinweise:
- Skript 1 und Skript 2 müssen Ausführungsrechte erhalten:
chmod 700 start.lammps.lsf
chmod 700 start.lammps - die Angabe der Inputfiles sollte vorzugsweise unter Verwendung des vollen Pfadnamens erfolgen - die $HOME Variable kann im Skript 1 und im Skript 2 verwendet werden
- Die mit der Option -o und -e angegebenen Output- und Errordateien werden - wenn wie im Beispielskript bezeichnet - in dem Verzeichnis abgelegt aus welchem dieser Job gestartet wird. Wenn diese Logfiles in einem anderem Verzeichnis abgespeichert werden sollen - z. B. im Homeverzeichnis - dann muss der komplette Pfadname angegeben werden - es dürfen dabei keine Umgebungsvariablen wie $HOME verwendet werden; z. B. mit:
#BSUB -o /usr/wrk/people9/otto/work/lammps/lammps_lsf.out - die Option -n 4 gibt die Anzahl der angeforderten CPU- Cores an - zusammen mit der Option span[ptile=2] fordert dieser Job damit von zwei Hosts je zwei CPU Cores an; wird die Option span[ptile=2] nicht verwendet entscheidet LSF über die Verteilung und Auswahl der CPU Cores innerhalb des Clusters - z. B. 1 CPU Core auf Host 1 und 3 CPU Core auf Host 13
- die Option -mem 500 fordert zum Startzeitpunkt 500 MByte Hauptspeicher (RAM) ueber alle (!) Parallelprozesse (= MPI Threads) an
- die Option -q Batch72 ordnet diesen Job in die Queue Batch72 ein - und erhaelt eine max. CPU Zeit von 72 h über alle (!) MPI Threads
- die Option -a mpichp4 gibt an dass man dass Lammps unter Verwendung das MPICH Distribution starten möchte - dieses MPICH ist auf jedem Knoten im Cluster im Verzeichnis /usr/app-soft/mpich.ch_p4 installiert
- mit pam wird innerhalb von LSF der parallel application manager bezeichnet - der pam startet und kontrolliert alle zu diesem Job zugehörigen MPI Threads
Gaussian Jobs
#!/bin/csh
#BSUB -q Batch72
#BSUB -R "mem>500 span[ptile=4]"
#BSUB -o gaussian_lsf.log
#BSUB -e gausian_lsf.err
#BSUB -n 4
#BSUB -J Gaussian_parallel
cd $HOME/work/gaussian
pwd
date
setgaussian
g03 < $HOME/work/gaussian
date
Queuekonfiguration
Welche Ressourcen benötigt mein Job?
Bevor ein Job auf dem Computeserver ablaufen kann, muß der Nutzer seinen Job hinsichtlich der erforderlichen Ressourcen klassifizieren. Ressourcen können zum Beispiel sein:
- Interaktiver oder Batchjob
- gewünschte Maschine
- gewünschte CPU- Zeit
- erforderlicher Hauptspeicher
- Anzahl der Prozessoren
Die für den Job erforderlichen Ressourcen (Jobparameter) werden mit den vorgegebenen Queuekonfigurationen verglichen und damit einer bestimmten Queue zugeordnet.
Die Queues und ihre Konfiguration
In diesem Abschnitt sind alle verfügbaren Queues mit ihren jeweiligen Ressourcen bzw.Parametern aufgeführt. Die Ressourcen einer Queue (Queueparameter) sind:
- maximale Anzahl der Jobs in dieser Queue
- maximale Anzahl der Jobs je Nutzer
- maximale Anzahl der Jobs je Computeserver
- maximale Laufzeit der Jobs
- maximale CPU-Zeit (Usertime) der Jobs
- maximal verfügbarer Hauptspeicher
- die Namen der verfügbaren Computeserver
- gewünschte CPU-Zeit
- maximale Anzahl der Prozessoren
Folgende Queues mit ihren Parametern sind für allgemeine Anwendungen verfügbar:
| Queuename | Max. Anzahl der Jobs | Max. Anzahl der Jobs je Nutzer | Max. Laufzeit |
|---|---|---|---|
| Inter8 | 16 | 2 | 8 h |
| Inter24 | 16 | 6 | 12 h |
| InterXL | 22 | 16 | 14 Tage |
| Batch24 | 100 | 30 | 24 h |
| Batch72 | 100 | 60 | 72 h |
| BatchXL | 100 | 44 | kein Limit |
Für spezielle Applikationen und Nutzer können bei Bedarf zusätzliche Queues eingerichtet werden.
LSF Kommandos
Häufig verwendete LSF-Kommandos
In dem nachfolgenden Abschnitt werden die einzelnen LSF-Kommandos in ihrer grundlegenden Aufgabe erläutert. Soweit nicht angegeben, erhält man tiefergehende Informationen zu dem jeweiligen Kommando über die Man Pages.
| lsinfo | Informationen zu der LSF- Konfiguration bezüglich Maschinentyp, -bezeichnung, -modell und der vorhandenen Ressourcen |
| lsmon | Ausgabe der Belastung (des Loads) aller Rechenknoten |
| bhosts | Anzeige des Status aller Masterhosts |
| bhosts -l | ausführliche Ausgabe der Hostparameter |
| man bhosts | Anzeige aller Optionen zum Kommando |
| bqueues | Anzeige das Queuestatus |
| bqueues -l | ausführliche Ausgabe aller Queuparameter |
| man bqueues | Anzeige aller Optionen zum Kommando |
| bjobs | Anzeige des Jobstatus der eigenen (!) Jobs |
| bjobs -l | Anzeige aller Jobparameter |
| bjobs -u all | Anzeige der Jobs aller Nutzer |
| bjobs -l 1153 | Jobinformationen des Jobs mit der JobID 1153 |
| man bjobs | Anzeige aller Optionen zum Kommando |
| bpeek JobID | Anzeige des Joboutputs, also der ASCII- Zeichen, die der Job auf dem Bildschirm ausgibt |
| bpeek -f JobID | kontinuierliche Ausgabe des Joboutputs (wie tail -f ) |
| man bpeek | Anzeige aller Optionen zum Kommando |
| xlsmon | Grafisches Frontend für die Anzeige der Load- Informationen und Ressourcen allerbeteiligten Hosts im CS-Cluster |
| xbsub | Grafische Frontend zum Absetzen eines Jobs |
| xlsbatch | Grafisches Frontend zur Ansicht aller Jobs, Hosts, Queues, Users, Hostgroups |
Remote Visualization
HowTo
Wie kann ich den "Remote Visualization" Server benutzen?
- Einmaliger Download der TurboVNC Software hier
- Verbinden mit dem Remote Visualization" Server per ssh
Hinweis: Einmaliger Download eines ssh Clienten - z. B. putty - hier - Start des TurboVNC Servers mit
vncserverHinweis: Beim erstmaligen Starten des TurboVNC Servers muss ein Passwort gesetzt werden!
- Auf dem Clienten (=Arbeitsplatzrechner) den TurboVNC Clienten starten
Start > Programme > TurboVNC > TurboVNC Viewer - Eingabe des (Remote Visualization" Server) Hostnamens
hpcvr.rz.tu-ilmenau.deund der in Schritt 3 angezeigten Displaynummer:
- Auf Ihrem Clienten (=Arbeitsplatzrechner) erscheint der vollständige Linux KDE Desktop:

- Hinweis: Software die OpenGL Funktionalität voraussetzt muss mit
vglrunKommando gestartet werden - z. B. die Visualsierungssoftware tecplot gestartet mit:vglrun tecplotIm Folgenden ist eine Auswahl weiterer OpenGL basierender Software aufgeführt:Gambit: vglrun gambit
Fluent 6: vglrun fluent6
Fluent 12: vglrun fluent12
HFSS: vglrun hfss
Maxwell: vglrun maxwell
Avizo: vglrun avizo
Comsol: comsol -mesa
Fieldview: vglrun fv
Gaussview:vglrun /usr/app-soft/gaussian/gv/gview
Das vglrun Kommando leitet die OpenGL Aufrufe an die Grafikkarte des entfernten Visualisierungsservers - damit wird der Arbeitsplatzrechner nur minimal belastet.
FAQ
1. Wie starte ich den TurboVNC Server?
Der Start des VNC Server erfolgt mit dem Kommando
vncserver
2. Wie kann ich mir meine laufenden TurboVNC anzeigen lassen?
Die laufenden VNC Server können mit dem Kommando
vncserver -list
angezeigt werden - dabei wird folgender Output erzeugt:
hpcvr.rz.tu-ilmenau.de:> vncserver -list
TurboVNC server sessions:
X DISPLAY # PROCESS ID
:7 32498
Die Angabe :7 bezeichnet die Nummer des für den jeweiligen Nutzer relevanten VNC Server - hier ist es die Nummer :7.
Hinweis: Für jeden Nutzer ist ein laufender TurboVNC Server ausreichend!
3. Wie kann ich einen TurboVNC Server stoppen?
Ein laufender VNC Server mit der Nummer :7 kann mit dem Kommando
vncserver -kill :7
gestoppt werden. Die anschliessende Abfrage der laufenden VNC Server mit
hpcvr.rz.tu-ilmenau.de:> vncserver -list
TurboVNC server sessions:
X DISPLAY # PROCESS ID
zeigt keinen laufenden VNC Server an.
4. Wie kann ich das Passwort für meinen TurboVNC Server ändern?
Das Passwort für meinen TurboVNC Server kann ich mit dem Kommando
vncpasswd
ändern.
5. Wie kann ich die Auflösung meines VNC Servers konfigurieren?
Mit der geometry Option kann die Auflösung des TurboVNC Servers eingestellt werden - wenn ich einen TurboVNC Server mit einer Auflösung von 1280x1024 Pixel starten möchte muss der TurboVNC Server folgendermassen gestartet werden
vncserver -geometry 1280x1024
Ebenso können andere Auflösungen angegeben werden.
Hinweis: Ohne Angabe der geometry Option wirde der TurboVNC Server mit einer Auflösung von 1024x768 Pixel gestartet!
6. Wozu brauche ich am lokalen (Windows) Clienten den "TurboVNC Viewer (Listen Mode)"
Im "Listen Mode" des TurboVNC Viewer erfolgt keine Weiterleitung der Tastatur- und Maussignale an den TurboVNC Server auf dem "Remote Visualization" Host. Für dieses Feature kann mit dem Kommando vncpasswd ein zusätzliches Passwort vergeben werden - um anderen Personen den Desktop im "view only" Modus zur Verfügung stellen zu können.
Hardware Server
8x Dual Core AMD Opteron 880 2,4 GHz
32 GByte Hauptspeicher
Quadro FX 3450/4000 SDI
Software Server
VirtualGL | TurboVNC
Software Client
TurboVNC | Download unter www.virtualgl.org/Downloads/TurboVNC
Direkter Downloadlink für den TurboVNC-Windowsclienten hier.
Start des TurboVNC Client unter Windows mit
Start > Programme > TurboVNC > Turbo VNC Viewer
Es erscheint folgendes Loginfenster:

Software
Hinweis: Mit dem in runden Klammern angegebenen Kommando wird die Softwareumgebung gesetzt.
Computational Fluid Dynamics (CFD)
- Fluent (setfluent)
Start von Fluent 6.3 mitfluent6
Start von Fluent 12 mitfluent12Start von Fluent 12.1 mitfluent121Start von TGrid mittgrid - Ansys/CFX (setansys121)
Start von Ansys Classic mitlauncher121
Start von CFX mitcfx5 - Comsol 3.5a mit
comsol
Multi Purpose
- Maple (xmaple)
- Matlab
Start von Matlab 2007b mitm2007Start von Matlab 2009b mitm2009Start von Matlab 2010b mitm2010Start von Matlab 2011a mitm2011 - Mathematica (setmath)
Visualisierung, Pre- und Postprozessing
- Gambit
Start von Gambit mitgambit - Tecplot (settecplot)
- Ensight (setensight)
- Fieldview (setfieldview)
- Avizo
- Patran
- Comsol
Start von Comsol 3.5 mitcomsolStart von Comsol 4.1 mitcomsol4
Simulation
- Ansys (setansys)
- Maxwell, Optimetrics (setmaxwell)
- HFSS (sethfss)
- ADS (setads)
- Simplorer (setansoft)
- MSC: Adams, Nastran, ... (setmsc)
- Hypermesh (sethyper)
- Comsol (comsol)
- LAMMPS (setlammps)
- Gaussian (setgaussian09)
- Turbomole (setturbomole)
- Silvaco (setsilvaco2010)
- TCAD (settcad)
Europractice
- Cadence
- Mentor Graphics (setmentor)
- Synopsys (setsynop)
- Altera
- Xilinx
Compiler
- gnu
- PGI (setpgi)
- Intel (setintel)
- NAG (setnag)
Bibliotheken
- fftw
- mpb
Kommunikation
- MPICH (setmpi_chp4)
- OpenMPI (setompi)
Materialien/Links
LSF - Load Sharing Facility
Message Passing Interface MPI
InfiniBand IB
Parallel Programming
Compiler
Benchmarking
Vortragsfolien





