Einführung in die Rechendienste - RRZN
Einführung in die Rechendienste - RRZN
Einführung in die Rechendienste - RRZN
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Compute<strong>die</strong>nste am<br />
Rechenzentrum<br />
Scientific Comput<strong>in</strong>g Gruppe<br />
css@rrzn.uni-hannover.de<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 1
Inhalt<br />
1 Zugang<br />
2 Arbeitsablauf<br />
3 Verfügbare Rechenleistung<br />
4 Anwendungen und Software<br />
5 Die Modules-Umgebung<br />
6 Benutzung des Batchsystems<br />
7 Beispiel-Batchskripte<br />
8 Dateisysteme<br />
9 Wenn Fehler auftauchen. . .<br />
10 Informationsl<strong>in</strong>ks<br />
11 Kontakt<strong>in</strong>formationen<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 2
Skizze des Clustersystems<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 3
Zugang–Accounts beantragen<br />
E<strong>in</strong> »Projekt« ist vorhanden:<br />
Der Projektleiter beantragt e<strong>in</strong>en neuen Account über <strong>die</strong> BIAS Webseite:<br />
https://bias.rrzn.uni-hannover.de<br />
Ke<strong>in</strong> vorhandenes »Projekt«:<br />
ORG.BEN4 ausfüllen<br />
danach Account über BIAS erstellen<br />
Tipps:<br />
Beantragter Benutzername soll den Namen des Nutzers abbilden<br />
Mailadresse des Nutzers angeben<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 4
Zugang–zum System<br />
ssh log<strong>in</strong>-node.rrzn.uni-hannover.de<br />
(Zugangsknoten: Orac und Avon)<br />
Hier kann man:<br />
Rechenjobs vorbereiten<br />
Batchskripte vorbereiten<br />
Rechenjobs <strong>in</strong> <strong>die</strong> Queue (Jobwarteschlange) schicken<br />
Kle<strong>in</strong>e Tests laufen lassen<br />
Den Queuestatus abfragen<br />
Rechenergebnisse sichten<br />
Dateien <strong>in</strong> das Archivsystem kopieren<br />
Dateien zum Arbeitsplatzrechner kopieren<br />
NICHT für Produktionsläufe: Maximale Laufzeit 30 M<strong>in</strong>uten, danach<br />
werden Prozesse abgebrochen<br />
Alle Anwendungen, Compiler und Tools s<strong>in</strong>d verfügbar<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 5
Zugang–zum System (W<strong>in</strong>dows; grafische Oberfläche)<br />
NX<br />
Kostenlos (frei verfügbar)<br />
Sehr schnell, kann über langsame Leitungen benutzt werden<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html#c15446<br />
X-W<strong>in</strong>32<br />
Kosten: 10 e<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html#c12246<br />
XM<strong>in</strong>g<br />
Kostenlos (Open-Source-Software)<br />
Benutzt PuTTY für e<strong>in</strong>e verschlüsselte Verb<strong>in</strong>dung zu den Log<strong>in</strong>knoten<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html#c12252<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 6
Zugang–zum System (W<strong>in</strong>dows; weitere Software)<br />
PuTTY: Nutzung mit der Kommandozeile auf den Log<strong>in</strong>knoten<br />
Kostenlos (Open-Source-Software)<br />
Benutzt e<strong>in</strong>e SSH (Secure-Shell) verschlüsselte Verb<strong>in</strong>dung<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html#c14762<br />
FileZilla: Dateien transferieren<br />
Kostenlos (Open-Source-Software)<br />
Be<strong>die</strong>nung über grafische Oberfläche<br />
http://filezilla-project.org/<br />
Dokumentation:<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 7
Arbeitsablauf<br />
Dateien vom Arbeitsplatzrechner auf e<strong>in</strong>en der Log<strong>in</strong>knoten kopieren<br />
Sicher stellen, dass das Programm funktioniert<br />
Batchskript schreiben<br />
Batchskript submittieren; Job <strong>in</strong> <strong>die</strong> Warteschlange absetzen<br />
⇒ qsub <br />
Jobstatus überprüfen<br />
⇒ qstat -a<br />
http://www.rrzn.uni-hannover.de/betriebsstatus.html<br />
Überflüssige Daten löschen<br />
Optional: Ergebnisse zum Arbeitsplatzrechner zurückkopieren<br />
Optional: Ergebnisse <strong>in</strong>s Archivsystem kopieren<br />
⇒ Account zum Archiv muss über BIAS freigegeben werden<br />
http://www.rrzn.uni-hannover.de/batchsystem.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 8
Verfügbare Rechenleistung<br />
3 Cluster (für Jobs, <strong>die</strong> viele CPUs brauchen)<br />
Tane: 96 Knoten; je 12 Kerne á 2.9 GHz; 48 GB<br />
Paris: 11 Knoten; je 8 Kerne á 3 GHz; 64 GB<br />
Taurus: 54 Knoten; je 12 Kerne á 2.66 GHz; 48 GB<br />
14 SMP Rechner (für Jobs, <strong>die</strong> viel Hauptspeicher brauchen)<br />
Lucky: 24 Kerne á 2.6 GHz; 256 GB<br />
SMP: 18 Knoten; je 24 Kerne á 2.0 GHz; 256 GB<br />
Centaurus: 32 Kerne á 2.7 GHz; 512 GB<br />
Helena: 160 Kerne á 2.0 GHz; 640 GB<br />
http:<br />
//www.rrzn.uni-hannover.de/scientific_comput<strong>in</strong>g.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 9
Verfügbare Rechenleistung (fort.)<br />
Sehr große Projekte können auf dem HLRN rechnen<br />
Gesondertes Antragsverfahren<br />
»Schnupperaccounts« s<strong>in</strong>d möglich<br />
http://www.hlrn.de<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 10
Steigende Rechenleistung<br />
Rechenleistung des Clustersystems<br />
Rechenleistung (GFlops)<br />
3<br />
2<br />
1<br />
Rechenleistung<br />
Rechenleistung/Watt<br />
400<br />
300<br />
200<br />
100<br />
Rechenleistung/Watt (MFlops/W)<br />
0<br />
01.2008<br />
·10 4 Datum<br />
07.2008<br />
02.2009<br />
08.2009<br />
03.2010<br />
09.2010<br />
04.2011<br />
11.2011<br />
05.2012<br />
0<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 11
Anwendungen und Software<br />
Es gibt e<strong>in</strong>e Vielfalt von Anwendungen und Software auf dem<br />
Clustersystem<br />
Chemie<br />
Biologie<br />
Ingenieurwissenschaften<br />
Numerik<br />
Mathematik<br />
Physik<br />
Statistik<br />
Wirtschaftswissenschaften<br />
Parallelisierungswerkzeuge<br />
Softwareentwicklung<br />
Visualisierung<br />
Die »Modules«-Umgebung erleichtert <strong>die</strong> Benutzung<br />
Das module-Kommando <strong>in</strong>itialisiert <strong>die</strong> richtige Umgebung für <strong>die</strong><br />
jeweilige Anwendung<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 12
Anwendungen–Physik<br />
Anwendung Gebiet Modulname<br />
Comsol Multiphysik comsol<br />
Matlab Matrizen und allgeme<strong>in</strong>e Numerik matlab<br />
Octave Matrizen und allgeme<strong>in</strong>e Numerik octave<br />
QuTiP Quanten<strong>in</strong>formation qutip<br />
Bild: Trajektorien für e<strong>in</strong> neues 3D-Elektronenmikroskop (COMSOL) | Renke Scheuer, Institut für Mess- und Regelungstechnik, LUH<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 13
Anwendungen–Mathematik<br />
Anwendung Gebiet Modulname<br />
GAMS Mathematische Optimierung gams<br />
Maple Symbolische Mathematik maple<br />
Mathematica Symbolische Mathematik mathematica<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 14
Anwendungen–Wirtschaftswissenschaft und Statistik<br />
Anwendung Gebiet Modulname<br />
R Statistik und Grafik R<br />
SAS Statistische Analyse, Data-M<strong>in</strong><strong>in</strong>g sas<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 15
Anwendungen–Chemie<br />
Anwendung Gebiet Modulname<br />
CPMD Molekulardynamik cpmd<br />
Crystal Elektronische Struktur-Berechnung crystal<br />
GAMESS-US Allgeme<strong>in</strong>e ab <strong>in</strong>itio Quantenchemie gamess_us<br />
Gaussian Elektronische Struktur-Berechnung gaussian<br />
Gromacs Molekulardynamik gromacs<br />
MSINDO Molekulardynamik ms<strong>in</strong>do<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 16
Anwendungen–Biologie<br />
Anwendung Gebiet Modulname<br />
Biopython Werkzeuge für biologisches Rechnen biopython<br />
Blat Schnelle Sequenzsuche blat<br />
Bowtie Genesequenzen Anordner bowtie<br />
BWA Burrows-Wheeler Anordner bwa<br />
Oases Transcriptome Assemblierung für kurzes oases<br />
Lesen<br />
TGI Cluster Tool EST/mRNA Datensätzen <strong>in</strong> Clustern sortieren<br />
tgicl<br />
Velvet Gen-Sequenz Anordung velvet<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 17
Anwendungen–Ingenieurwissenschaft<br />
Anwendung Gebiet Modulname<br />
Abaqus F<strong>in</strong>ite Element Simulationen abaqus<br />
ANSYS Multiphysik ansys<br />
CFX Fluiddynamik cfx<br />
Fluent Fluiddynamik fluent<br />
Gambit Präprocess<strong>in</strong>g (Geometrie/Meshes) gambit<br />
HFSS Elektromagnetisches Feld Simulationen hfss<br />
Marc F<strong>in</strong>ite Element Simulationen marc<br />
Maxwell Elektromagnetische Feld-Simulationen maxwell<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 18
Anwendungen–Ingenieurwissenschaft (fort.)<br />
Anwendung Gebiet Modulname<br />
Nastran F<strong>in</strong>ite Element Simulationen nastran<br />
OpenFOAM Fluiddynamik openfoam<br />
Patran Prä- und Postprozessor für CAE Simulationen patran<br />
Creo CAD/CAE Entwurfs- und Entwicklungswerkzeug<br />
creo/proe<br />
SELFE 3D Ozeansimulation selfe<br />
StarCCM+ Fluiddynamik starccm<br />
StarCD Fluiddynamik starcd<br />
Bild: Wasserspiegelauslenkung und Sal<strong>in</strong>ität im Weserästuar | Anna Zorndt, Franzius Institut, LUH<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 19
Anwendungen–Simulationspakete<br />
Anwendung Beschreibung Modulname<br />
Harm<strong>in</strong>v Waveform harmonic <strong>in</strong>version harm<strong>in</strong>v<br />
Meep FDTD simulations meep<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 20
Anwendungen–Visualisierung<br />
Anwendung Gebiet Modulname<br />
Blender 3D Grafik blender<br />
Gnuplot Allgeme<strong>in</strong>e Datenvisualisierung gnuplot<br />
Paraview Allgeme<strong>in</strong>e und 3D Datenvisualisierung paraview<br />
Povray »Persistence of Vision« Raytracer povray<br />
QtiPlot Schnelle Datenvisualisierung qtiplot<br />
VTK Visualisierungs Tookit vtk<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 21
Compiler<br />
Anwendung Sprachen Modulnamen<br />
GNU C/C++, Java, Fortran gcc, g++, gcj, gfortran<br />
Intel C/C++, Fortran icc, ifort,<br />
<strong>in</strong>tel.compiler<br />
PGI C/C++, Fortran pgi<br />
Sun Java Java sun-java<br />
Solaris Studio C/C++, Fortran solstudio<br />
Nvidia CUDA C cudatoolkit<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 22
Numerische Bibliotheken<br />
Bibliothek Gebiet Modulnamen<br />
Geospatial Data Datenverarbeitung gdal<br />
Abstraction Library (GDAL)<br />
Gnu Scientific Library (GSL) Allgeme<strong>in</strong>e Numerik gsl<br />
FFTW<br />
Fourier-<br />
fftw<br />
Transformation<br />
Intel Math Kernel Library (MKL) Allgeme<strong>in</strong>e Numerik imkl<br />
LAPACK/BLAS L<strong>in</strong>eare Algebra lapack, blas<br />
Multi-precision complex arithm. Complex Arith. mpc<br />
Multi-precision float<strong>in</strong>g po<strong>in</strong>t Float<strong>in</strong>g Po<strong>in</strong>t Arith. mpfr<br />
Qhull<br />
Computationale<br />
Geom.<br />
qhull<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 23
Allgeme<strong>in</strong>e Bibliotheken und Anwendungen<br />
Bibliothek Gebiet Modulnamen<br />
L A TEX Textbearbeitung latex<br />
libctl Controlefile-Bibliothek libctl<br />
PROJ Cartografische Projektionen proj<br />
Xerces XML-Bearbeitung xerces-c<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 24
MPI-Implementierungen<br />
MPI – das Message Pass<strong>in</strong>g Interface – ist e<strong>in</strong>e Bibliothek für <strong>die</strong><br />
Kommunikation zwischen Prozessoren, um Programme <strong>in</strong> fast beliebigen<br />
Konfigurationen parallel laufen zu lassen<br />
Implementierung Beschreibung Modulname<br />
MPICH2 Standard MPICH Installation mpich2<br />
MVAPICH MPICH für Inf<strong>in</strong>iband optimiert mvapich2<br />
Intel MPI Intels Implementierung des MPI impi<br />
OpenMPI OpenMPI openmpi<br />
PGI-MPICH MPICH mit PGI Compiler übersetzt pgi-mpich<br />
PGI-MVAPICH MVAPICH mit PGI Compiler übersetzt pgi-mvapich<br />
MPI funktioniert nicht automatisch; muss programmiert se<strong>in</strong><br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 25
Debugger und Profiler<br />
Anwendung Beschreibung Modulname<br />
Valgr<strong>in</strong>d Call Graph und Speicheranalyse valgr<strong>in</strong>d<br />
kCachegr<strong>in</strong>d Grafische Oberfläche zu Valgr<strong>in</strong>d kcachegr<strong>in</strong>d<br />
Valkyrie Grafische Oberfläche zu Valgr<strong>in</strong>d valkyrie<br />
Totalview Paralleler Debugger totalview<br />
Intel Trace Analyser Profiler itac<br />
VTune Profiler vtune<br />
MPE MPI-Programm-Profiler mpe2-impi<br />
Scalasca Parallelprogramm-Profiler scalasca<br />
Intel Debugger<br />
idb<br />
GNU Debugger<br />
gdb<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 26
Verwenden der Modules-Umgebung<br />
Zuerst muss <strong>die</strong> Modules-Umgebung <strong>in</strong>itialisiert werden<br />
Initialisierung passiert normalerweise beim Log<strong>in</strong> automatisch<br />
Initialisierung <strong>in</strong>nerhalb e<strong>in</strong>es Batchjobs:<br />
#!/b<strong>in</strong>/bash -log<strong>in</strong><br />
<strong>in</strong> <strong>die</strong> erste Zeile e<strong>in</strong>es Batchskripts.<br />
Falls das module-Kommando nicht bekannt ist, muss man <strong>die</strong> Umgebung<br />
explizit mit e<strong>in</strong>em der folgenden Kommandos <strong>in</strong>tialisieren<br />
Im Allgeme<strong>in</strong>en:<br />
source $MODULESHOME/<strong>in</strong>it/`basename $SHELL`<br />
Mit ksh, bash und csh funktioniert auch:<br />
. $MODULESHOME/<strong>in</strong>it/ksh<br />
. $MODULESHOME/<strong>in</strong>it/bash<br />
. $MODULESHOME/<strong>in</strong>it/csh<br />
Der Punkt und das Leerzeichen vorne s<strong>in</strong>d wichtig!!!<br />
http://www.rrzn.uni-hannover.de/modules.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 27
Kommandos der Modules-Umgebung<br />
Alle Module anzeigen lassen<br />
$ module avail<br />
E<strong>in</strong> Modul (oder mehrere) laden<br />
$ module load <br />
E<strong>in</strong> Modul entladen<br />
$ module unload <br />
Bereits geladene Module zeigen<br />
$ module list<br />
Informationen über e<strong>in</strong> Modul zeigen<br />
$ module show <br />
Hilfe und detaillierte Informationen über e<strong>in</strong> Modul zeigen<br />
$ module help <br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 28
Batchsystem<br />
E<strong>in</strong> Batchsystem ist e<strong>in</strong> automatisches System, um Rechenjobs fairen Zugang<br />
zu den Ressourcen e<strong>in</strong>es Clusters zu währen. Jobs werden von e<strong>in</strong>em zentralen<br />
Ort zum Batchsystem geschickt (»submittiert«) und <strong>in</strong> e<strong>in</strong>e Warteschlange<br />
(auch »Queue« genannt) gestellt. E<strong>in</strong> Scheduler verteilt <strong>die</strong> Jobs nach e<strong>in</strong>em<br />
vorgegebenen Priorisierungsalgorithmus auf <strong>die</strong> vorhandenen Ressourcen, um<br />
möglichst viel Durchsatz zu erzielen.<br />
Simulationen (Rechenjobs) werden mit e<strong>in</strong>em »Batchskript« <strong>in</strong> <strong>die</strong> Queue<br />
abgeschickt. E<strong>in</strong> Batchskript ist e<strong>in</strong>e Textdatei, <strong>die</strong> <strong>die</strong> Ressourcen (wie<br />
Rechenzeit, Hauptspeicher und CPU-Anzahl) beschreibt, <strong>die</strong> der Rechenjob für<br />
se<strong>in</strong>en Lauf benötigt. Das Batchskript enthält auch <strong>die</strong> Kommandos, <strong>die</strong> man<br />
auf der Konsole absetzen würde, um den Job laufen zu lassen. Diese<br />
Kommandos werden auf dem entsprechenden Rechenknoten automatisch<br />
durchgeführt.<br />
http://www.rrzn.uni-hannover.de/batchsystem.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 29
Anatomie e<strong>in</strong>es Batchskripts<br />
#!/b<strong>in</strong>/bash beschreibt, welche Shell für <strong>die</strong> Ausführung des Skriptes<br />
verwendet werden soll<br />
Optionen ans Batchsystem übergeben<br />
Zeilen fangen mit #PBS an<br />
Beschreiben u.a. <strong>die</strong> Anforderungen des Jobs, welche Warteschlange<br />
verwendet werden soll, usw.<br />
Kommandos, <strong>die</strong> <strong>die</strong> Simulation/den Rechenjob vorbereiten und<br />
durchführen, z.B.:<br />
Nötigenfalls <strong>die</strong> Modules-Umgebung <strong>in</strong>itialisieren<br />
mit #!/b<strong>in</strong>/bash -log<strong>in</strong> unnötig<br />
Module laden<br />
Umgebungsvariablen setzen<br />
In das Verzeichnis wechseln, <strong>in</strong> dem gerechnet werden soll<br />
Das Programm aufrufen<br />
Grundsätzlich wird alles nach e<strong>in</strong>em ‘#’ (Kommentarzeichen) ignoriert<br />
Ausnahmen:<br />
#! <strong>in</strong> der ersten Zeile<br />
PBS-Optionen<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 30
E<strong>in</strong> simples Batch-Skript<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N job_name<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=3gb<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2<br />
3 # change to work dir:<br />
4 cd $BIGWORK<br />
5<br />
6 # run the program<br />
7 ./hello<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 31
PBS-Optionen<br />
#PBS -N Name des Jobs<br />
#PBS -M Mailadresse des Nutzers<br />
#PBS -m ae<br />
Mail an Nutzer senden; beim Jobende (’e’) oder -abbruch (’a’)<br />
#PBS -j oe<br />
Zusammenführen (»jo<strong>in</strong>«) von Standardausgabe (’o’) und<br />
Fehlerprotokoll (’e’); (STDOUT und STDERR)<br />
#PBS -l nodes=:ppn= Knoten, Prozessorkerne je Knoten anfordern<br />
#PBS -l walltime= Maximale Laufzeit des Jobs (HH:MM:SS)<br />
#PBS -l mem= Gesamthauptspeicher des Jobs anfordern<br />
z.B. 3600mb, 10gb<br />
#PBS -q Name der Warteschlange (Queue)<br />
z.B. all, test, helena<br />
#PBS -W x="PARTITION:" Name der Clusterpartition (optional)<br />
z.B. paris, smp, tane, taurus<br />
#PBS -v Liste der Umgebungsvariablen, <strong>die</strong> zum Job exportiert<br />
werden sollen<br />
#PBS -V<br />
Alle Umgebungsvariablen der aktuellen Shell dem Job exportieren<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 32
Batchsystemkommandos<br />
Jobs <strong>in</strong> <strong>die</strong> Warteschlange absetzen<br />
$ qsub <br />
Interaktive Batchjobs<br />
$ qsub -I -X (öffnet e<strong>in</strong>e Shell auf e<strong>in</strong>em Knoten)<br />
Alle Jobs anzeigen lassen<br />
$ qstat -a<br />
Alle Jobs mit Knoten-Ansicht anzeigen lassen<br />
$ qstat -n<br />
Volle Ausgabe für e<strong>in</strong>en bestimmten Job zeigen<br />
$ qstat -f <br />
Job von der Queue löschen<br />
$ qdel <br />
Job von e<strong>in</strong>er Queue <strong>in</strong> e<strong>in</strong>e andere schieben<br />
$ qmove <br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 33
Erweiterte Batchsystemkommandos<br />
Alle Jobs anzeigen lassen mit geteilter Ansicht: »show queue«<br />
(RUNNING, IDLE, BLOCKED)<br />
$ showq<br />
Alle bereits existierende Reservierungen zeigen: »show reservations«<br />
$ showres<br />
Sofort verfügbare Prozessoren und Laufzeiten: »show backfill«<br />
$ showbf<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 34
Warteschlangen (Queues)<br />
all – für Jobs aller Art 1 (#PBS -q all; Default-E<strong>in</strong>stellung)<br />
test – für kurze Testjobs (#PBS -q test)<br />
nur e<strong>in</strong> Knoten kann benutzt werden; Jobs, <strong>die</strong> mehr als e<strong>in</strong>en Knoten<br />
anfordern, werden <strong>in</strong> <strong>die</strong>ser Queue nicht anlaufen<br />
helena – für große-SMP-Jobs (#PBS -q helena)<br />
nur e<strong>in</strong> Knoten kann benutzt werden; Jobs, <strong>die</strong> mehr als e<strong>in</strong>en Knoten<br />
anfordern, werden <strong>in</strong> <strong>die</strong>ser Queue nicht anlaufen<br />
1 außer Jobs, <strong>die</strong> für <strong>die</strong> test oder helena Queues gedacht s<strong>in</strong>d<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 35
Warteschlangen (Grenzen)<br />
Maximale Anforderungen der all und helena Queues<br />
Anzahl gleichzeitig laufender Jobs pro Benutzer: 64<br />
Kerne pro Benutzer: 768<br />
Maximales Wallclock-Limit: 200 Stunden<br />
(#PBS -l walltime=200:00:00)<br />
Maximale Anforderungen der test Queue<br />
47 GB Hauptspeicher (#PBS -l mem=47gb)<br />
6 Stunden Wallclockzeit (#PBS -l walltime=6:00:00)<br />
1 Knoten, 12 Kerne (#PBS -l nodes=1:ppn=12)<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 36
Verfügbare Hauptspeicherressourcen<br />
Das Betriebssystem benötigt selbst auch Hauptspeicher; <strong>die</strong> maximal<br />
möglichen Anforderungen s<strong>in</strong>d daher etwas ger<strong>in</strong>ger<br />
Verfügbare Ressourcen:<br />
Tane-Knoten: 47 GB<br />
Taurus-Knoten: 47 GB<br />
test-n001 (<strong>die</strong> test-Queue): 47 GB<br />
Paris Standardknoten: 62 GB<br />
Paris »dicker«-Knoten: 125 GB<br />
Lucky: 252 GB<br />
SMP-Knoten: 252 GB<br />
Centaurus: 504 GB<br />
Helena: 630 GB<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 37
Anmerkungen zu den Jobanforderungen<br />
Jobanforderungen bitte anpassen!<br />
Wichtig s<strong>in</strong>d Wallclock-Zeit, Hauptspeicher und CPU/Kern-Anzahl<br />
Vorteile genauer Angaben:<br />
Besserer Gesamtdurchsatz durch genauere Planbarkeit<br />
Jobs laufen schneller an und s<strong>in</strong>d früher fertig<br />
Jobs, <strong>die</strong> erheblich ger<strong>in</strong>gere Ressourcen verbrauchen als angefordert,<br />
erzeugen e<strong>in</strong>e Warnungsmail<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 38
Beispiel-Batchskripte<br />
serielles Programm<br />
paralleles Programm<br />
serielles Matlab<br />
paralleles Matlab<br />
serielles Comsol<br />
paralleles Comsol<br />
serielles ANSYS<br />
shared mem ANSYS<br />
distributed mem ANSYS<br />
SAS<br />
R<br />
serielles GAMS<br />
paralleles GAMS<br />
serielles OpenFOAM<br />
(airFoil2D)<br />
paralleles OpenFOAM<br />
(motorBike)<br />
MSINDO<br />
Abaqus<br />
Gaussian<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 39
Beispiel-Batchskript (serielles Programm)<br />
Beispiel für e<strong>in</strong> »serielles« Programm (verwendet nur e<strong>in</strong>en Prozessor) hello.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N mo<strong>in</strong><br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=3600mb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # change to work dir:<br />
2 cd $PBS_O_WORKDIR<br />
3 # the program to run<br />
4 ./hello<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 40
Beispiel-Batchskript (serielles Matlab-Programm)<br />
Matlab-Programm auf e<strong>in</strong>em Prozessor laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N serialMatlab<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1:matlab<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=3gb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load matlab<br />
3 # change to work dir:<br />
4 cd $PBS_O_WORKDIR<br />
5 # log file name<br />
6 LOGFILE=$(echo $PBS_JOBID | cut -d"." -f1).log<br />
7 # the program to run<br />
8 matlab -nojvm -nosplash < hello.m > $LOGFILE 2>&1<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 41
Beispiel-Batchskript (paralleles Matlab-Programm)<br />
Matlab-Programm auf vier (4) Prozessorkerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N ParallelMatlab<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=4:matlab<br />
7 #PBS -l walltime=00:10:00,mem=4gb<br />
8 # show which computer the job ran on<br />
9 echo "Job ran on:" $(hostname)<br />
0 # load the relevant modules<br />
1 module load matlab<br />
2 # change to work dir<br />
3 cd $PBS_O_WORKDIR<br />
4 # log file name<br />
5 LOGFILE=$(echo $PBS_JOBID | cut -d"." -f1).log<br />
6 # the program to run<br />
7 matlab -nodesktop < l<strong>in</strong>_solve.m > $LOGFILE 2>&1<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 42
Beispiel paralleles Matlab-Programm<br />
1 function l<strong>in</strong>_solve(n)<br />
2 fpr<strong>in</strong>tf(’=============== START =================\n’)<br />
3 if narg<strong>in</strong> ~= 1<br />
4 n = 10000;<br />
5 fpr<strong>in</strong>tf(’Us<strong>in</strong>g default matrix size: n = %d\n’, n)<br />
6 else<br />
7 n = str2num(n); % argument is a str<strong>in</strong>g; convert to num<br />
8 fpr<strong>in</strong>tf(’Us<strong>in</strong>g the matrix size: n = %d\n’, n)<br />
9 end<br />
0<br />
1 tic<br />
2<br />
3 % set up the matrix to solve<br />
4 A = rand(n);<br />
5 y = rand(n,1);<br />
6<br />
7 % solve the matrix<br />
8 x = A\y;<br />
9<br />
0 toc<br />
1 fpr<strong>in</strong>tf(’=============== END =================\n’)<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 43
Beispiel-Batchskript (serielles Comsol-Programm)<br />
Comsol auf e<strong>in</strong>em Prozessor laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N comsol_micromixer<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:30:00<br />
8 #PBS -l mem=10gb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load comsol<br />
3 # change to work dir:<br />
4 cd $PBS_O_WORKDIR<br />
5 # the program to run<br />
6 comsol batch -<strong>in</strong>putfile micromixer.mph<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 44
Beispiel-Batchskript (paralleles Comsol-Programm)<br />
Comsol auf acht (8) CPU-Kerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N comsol_micromixer_parallel<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=8<br />
7 #PBS -l walltime=00:30:00<br />
8 #PBS -l mem=10gb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load comsol<br />
3 # change to work dir:<br />
4 cd $PBS_O_WORKDIR<br />
5 # work out the number of threads<br />
6 export NUM_THREADS=$(wc -l $PBS_NODEFILE | cut -d" " -f1)<br />
7 # the program to run<br />
8 comsol batch -<strong>in</strong>putfile micromixer.mph -np $NUM_THREADS<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 45
Beispiel-Batchskript (serielles ANSYS-Programm)<br />
ANSYS auf e<strong>in</strong>em Prozessor laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N testcase.serial<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:20:00<br />
8 #PBS -l mem=2gb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load ansys<br />
3 # change to work dir<br />
4 cd $PBS_O_WORKDIR<br />
5 # start program for serial run;<br />
6 # (assum<strong>in</strong>g that an <strong>in</strong>put file testcase.dat has been created before):<br />
7 ansys130 -i testcase.dat -o serial.out<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 46
Beispiel-Batchskript (shared ANSYS-Programm)<br />
ANSYS auf e<strong>in</strong>em Knoten mit mehreren Prozessoren und geteiltem Speicher<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N testcase.shared<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=4<br />
7 #PBS -l walltime=00:20:00<br />
8 #PBS -l mem=2gb<br />
9 # load the relevant modules<br />
0 module load ansys<br />
1 # change to work dir<br />
2 cd $PBS_O_WORKDIR<br />
3 # calculate number of threads for shared memory computation<br />
4 nthr=$(cat $PBS_NODEFILE | wc -l)<br />
5 echo "nthreads = "$nthr<br />
6 # start program<br />
7 ansys130 -b -np $nthr -i testcase.dat -o shared.out<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 47
Beispiel-Batchskript (distributed ANSYS-Programm)<br />
ANSYS auf mehreren Knoten laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N testcase.distr<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=2:ppn=4<br />
7 #PBS -l walltime=00:20:00<br />
8 #PBS -l mem=2gb<br />
9 # load the relevant modules<br />
0 module load ansys<br />
1 # change to work dir<br />
2 cd $PBS_O_WORKDIR<br />
3 # set stacksize<br />
4 ulimit -s 300000<br />
5 # create correct HOST str<strong>in</strong>g for ANSYS call<br />
6 create_ansys_mach<strong>in</strong>e_file mach<strong>in</strong>es<br />
7 read HOST < mach<strong>in</strong>es<br />
8 echo $HOST<br />
9 # start program <strong>in</strong> distributed memory mode<br />
0 ansys130 -b -dis -mach<strong>in</strong>es $HOST -mpi hpmpi -i testcase.dat -o distr.out<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 48
Beispiel-Batchskript (SAS-Programm)<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N seriellSAS<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:30:00<br />
8 #PBS -l mem=5gb<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2 # load the relevant modules<br />
3 module load sas<br />
4 # change to work dir:<br />
5 cd $PBS_O_WORKDIR<br />
6 # the program to run<br />
7 sas Simulation.sas<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 49
Beispiel-Batchskript (R-Programm)<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N seriellR<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=3600mb<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2 # load the relevant modules<br />
3 module load R<br />
4 # change to work dir:<br />
5 cd $PBS_O_WORKDIR<br />
6 # the program to run<br />
7 R --slave < fanta22_korrektur.R<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 50
Beispiel-Batchskript (serielles GAMS-Programm)<br />
GAMS-Programm auf e<strong>in</strong>em (1) Prozessorkern laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N GAMS_trnsport<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=4gb<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2 # load the relevant modules<br />
3 module load gams<br />
4 # change to work dir<br />
5 cd $PBS_O_WORKDIR<br />
6 # the program to run<br />
7 gams trnsport.gms lo=2 lf=transport_log.log<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 51
Beispiel-Batchskript (paralleles GAMS-Programm)<br />
GAMS-Programm auf vier (4) Prozessorkerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N CLSP_Optimal<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=4<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=4gb<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2 # load the relevant modules<br />
3 module load gams<br />
4 # change to work dir<br />
5 cd $PBS_O_WORKDIR<br />
6 # correctly specify the number of cores <strong>in</strong> cplex.opt!!<br />
7 # the program to run<br />
8 gams CLSP_Optimal.gms lo=2 lf=CLSP_Optimal.log<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 52
Beispiel-Batchskript (serielles OpenFOAM-Programm)<br />
simpleFoam auf e<strong>in</strong>em (1) Prozessorkern laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N airFoil2D<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=1<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=4gb<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load openfoam/1.7.1<br />
3 # <strong>in</strong>itialise the OpenFOAM environment<br />
4 source $foamDotFile<br />
5 # change to work dir:<br />
6 cd $PBS_O_WORKDIR/airFoil2D<br />
7 # clean up from possible previous runs<br />
8 ./AllClean<br />
9 # the program to run<br />
0 simpleFoam<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 53
Beispiel-Batchskript (serielles OpenFOAM-Programm)<br />
simpleFoam auf e<strong>in</strong>em (1) Prozessorkern laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N motorBike<br />
3 ####PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -M cochrane@rrzn.uni-hannover.de<br />
5 #PBS -m ae<br />
6 #PBS -j oe<br />
7 #PBS -l nodes=1:ppn=1<br />
8 #PBS -l walltime=00:30:00<br />
9 #PBS -l mem=4gb<br />
10 # show which computer the job ran on<br />
11 echo "Job ran on:" $(hostname)<br />
12 # load the relevant modules<br />
13 module load openfoam/1.7.1<br />
14 # <strong>in</strong>itialise the OpenFOAM environment<br />
15 source $foamDotFile<br />
16 # change to work dir:<br />
17 cd $PBS_O_WORKDIR/motorBike<br />
18 # clean up from previous runs<br />
19 ./Allclean<br />
20 # set up the mesh and the simulation<br />
21 cp system/fvSolution.org system/fvSolution<br />
22 cp -r 0.org 0 > /dev/null 2>&1<br />
23 blockMesh<br />
24 snappyHexMesh -overwrite<br />
25 sed -i ’s/\(nNonOrthogonalCorrectors\).*;/\1 10;/g’ system/fvSolution<br />
26 potentialFoam -writep<br />
27 sed -i ’s/\(nNonOrthogonalCorrectors\).*;/\1 0;/g’ system/fvSolution<br />
28 # the program to run<br />
29 simpleFoam<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 54
Beispiel-Batchskript (paralleles Programm)<br />
E<strong>in</strong> MPI-paralleles Programm namens p<strong>in</strong>g_pong_advanced_send, das<br />
über zwei (2) Prozessoren verteilt wird.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N p<strong>in</strong>gpong<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=2,walltime=00:10:00,mem=4gb<br />
7 #PBS -W x=PARTITION:tane<br />
8<br />
9 # show which computer the job ran on<br />
0 echo "Job ran on:" $(hostname)<br />
1 # load the relevant modules<br />
2 module load impi<br />
3 # change to work dir:<br />
4 cd $PBS_O_WORKDIR<br />
5 # the program to run <strong>in</strong> parallel<br />
6 mpirun --rsh=ssh -mach<strong>in</strong>efile $PBS_NODEFILE -np 2 -env I_MPI_DEVICE shm \<br />
7 ./p<strong>in</strong>g_pong_advanced_send_c<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 55
Beispiel-Batchskript (MSINDO)<br />
MSINDO auf 6 Prozessorkerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N MgO_444<br />
3 #PBS -M ich@me<strong>in</strong>e.email.adresse.de<br />
4 #PBS -m ae<br />
5 #PBS -j oe<br />
6 #PBS -l nodes=1:ppn=6<br />
7 #PBS -l walltime=00:10:00<br />
8 #PBS -l mem=16gb<br />
9 #PBS -W x=PARTITION:tane:paris:kuh<br />
10<br />
11 # show which computer the job ran on<br />
12 echo "Job ran on:" $(hostname)<br />
13 # load the relevant modules<br />
14 module load ms<strong>in</strong>do<br />
15<br />
16 export KMP_STACKSIZE=64M<br />
17 export OMP_DYNAMIC=.FALSE.<br />
18 export OMP_NUM_THREADS=$(cat $PBS_NODEFILE | wc -l)<br />
19<br />
20 INPUTFILE="MgO_444.<strong>in</strong>p"<br />
21<br />
22 # change to work dir:<br />
23 TEMPDIR=$BIGWORK/$(basename $INPUTFILE .<strong>in</strong>p).$$<br />
24 cd $TEMDIR<br />
25 LOGFILE=$PBS_O_WORKDIR/$INPUTFILE.out.$$<br />
26 echo "Runn<strong>in</strong>g on $OMP_NUM_THREADS cores" >> $LOGFILE<br />
27<br />
28 # the program to run<br />
29 time ms<strong>in</strong>do < $INPUTFILE >> $LOGFILE 2>&1<br />
30 # clean up output files<br />
31 if [ -s "fort.9" ]; then cp fort.9 $PBS_O_WORKDIR/$INPUTFILE.f9.$$; fi<br />
32 if [ -n "$(ls *.dat)" ]; then cp *.dat $PBS_O_WORKDIR/; fi<br />
33 if [ -n "$(ls *.molden)" ]; then cp *.molden $PBS_O_WORKDIR/; fi<br />
34 if [ -n "$(ls *.xyz)" ]; then cp *.xyz $PBS_O_WORKDIR/; fi<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 56
Beispiel-Batchskript (Abaqus)<br />
Abaqus auf 4 Prozessorkerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N llbeam<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse.de<br />
4 #PBS -j oe<br />
5 #PBS -m ae<br />
6 #PBS -l nodes=1:ppn=4<br />
7 #PBS -l mem=15GB<br />
8 #PBS -l walltime=00:50:00<br />
9<br />
10 # show which computer the job ran on<br />
11 echo "Job ran on:" $(hostname)<br />
12<br />
13 # load the relevant modules<br />
14 module load abaqus<br />
15<br />
16 # change to work<strong>in</strong>g directory<br />
17 cd $PBS_O_WORKDIR<br />
18<br />
19 # set up simulation parameters<br />
20 np=$(cat $PBS_NODEFILE | wc -l)<br />
21 mnp=$(sort -u $PBS_NODEFILE | wc -l)<br />
22 cp $PBS_NODEFILE hostfile<br />
23 echo $np >> hostfile<br />
24 echo $mnp >> hostfile<br />
25 create_abaqus_host_list<br />
26<br />
27 # run the program<br />
28 abaqus job=llbeam cpus=$np doma<strong>in</strong>s=$np parallel=doma<strong>in</strong> mp_mode=mpi double <strong>in</strong>teractive<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 57
Beispiel-Batchskript (Gaussian)<br />
Gaussian auf 4 Processorkerne laufen lassen.<br />
1 #!/b<strong>in</strong>/bash -log<strong>in</strong><br />
2 #PBS -N gaussian<br />
3 #PBS -M ich@me<strong>in</strong>e.mail.adresse.de<br />
4 #PBS -j eo<br />
5 #PBS -m ae<br />
6 #PBS -l nodes=1:ppn=4<br />
7 #PBS -l mem=10gb<br />
8 #PBS -l walltime=00:30:00<br />
9<br />
0 # show which computer the job ran on<br />
1 echo "Job ran on:" $(hostname)<br />
2<br />
3 # load the relevant modules<br />
4 module load gaussian<br />
5<br />
6 # change to work<strong>in</strong>g directory<br />
7 cd $PBS_O_WORKDIR<br />
8<br />
9 # run the program<br />
0 g09 < <strong>in</strong>put.com > g09job.out<br />
⇐Zurück zur Batchskriptliste<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 58
Struktur der Dateisysteme<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 59
Details der Dateisysteme<br />
$HOME<br />
Global verfügbares Heimverzeichnis<br />
Daten werden gesichert; unbegrenzte Lebensdauer<br />
Datenvolumen begrenzt über Unix-Quotasystem<br />
Für Skripte, Programme und kle<strong>in</strong>e endgültige Ergebnisse geeignet<br />
$BIGWORK<br />
Global verfügbares Arbeitsverzeichnis<br />
Für große »Work«-Dateien geeignet<br />
69 TB Speicherplatz für alle zusammen.<br />
$BIGWORK-Variable zeigt auf /bigwork/<br />
Daten werden NICHT gesichert; Daten haben e<strong>in</strong>e Lebensdauer von 28<br />
Tagen (nach der letzten Änderung der Daten)<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 60
Details der Dateisysteme (fort.)<br />
Archivsystem<br />
Langfristige Lagerung von Dateien, auch von großen Datenmengen<br />
Daten s<strong>in</strong>d auf dem Tape-Backup-Archiv der Universität gesichert<br />
Von den Log<strong>in</strong>knoten mit lftp-Kommando erreichbar<br />
Mehr Informationen unter:<br />
http://www.rrzn.uni-hannover.de/archivierung.html<br />
http://www.rrzn.uni-hannover.de/archivierung_policy.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 61
Wenn Fehler auftauchen. . .<br />
1 Batchskript und nötigenfalls das Programm überprüfen<br />
2 Clusterdokumentation lesen:<br />
http://www.rrzn.uni-hannover.de/clustersystem.html<br />
3 Sagt Google etwas dazu?<br />
4 Melden Sie sich über <strong>die</strong> Hilfemail<strong>in</strong>gliste:<br />
cluster-help@rrzn.uni-hannover.de mit den folgenden Infos<br />
Ihr Benutzername<br />
Job ID Nummer<br />
Wann der Job gelaufen ist<br />
Auf welchem Rechenknoten der Job gelaufen ist<br />
Das Batchskript<br />
E<strong>in</strong>e kurze Beschreibung des Problems<br />
Jegliche Fehlermeldung des Programms, falls vorhanden<br />
Das Ausgabeprotokoll des Jobs, z.B.: myjob.o12345 als Anhang<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 62
Informationsl<strong>in</strong>ks<br />
http://www.rrzn.uni-hannover.de/clustersystem.html<br />
http://www.rrzn.uni-hannover.de/cluster-zugang.html<br />
http://www.rrzn.uni-hannover.de/batchsystem.html<br />
http://www.rrzn.uni-hannover.de/rechnerressourcen.html<br />
http://www.rrzn.uni-hannover.de/<strong>in</strong>stallierte_software.html<br />
http://www.rrzn.uni-hannover.de/handbuecher.html<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 63
Kontakt<strong>in</strong>formationen<br />
Fragen, Anregungen und Problemberichte:<br />
cluster-help@rrzn.uni-hannover.de<br />
Fachberatung<br />
Dr. Gerd Brand: brand@rrzn.uni-hannover.de<br />
Dr. Andreas Gerdes: gerdes@rrzn.uni-hannover.de<br />
Oliver Heimbrock: heimbrock@rrzn.uni-hannover.de<br />
Dr. Holger Naundorf: naundorf@rrzn.uni-hannover.de<br />
Adm<strong>in</strong>istration, allgeme<strong>in</strong>e Beratung<br />
Klaus Dobr<strong>in</strong>dt: dobr<strong>in</strong>dt@rrzn.uni-hannover.de<br />
Patrick Njofang: njofang@rrzn.uni-hannover.de<br />
Möchten Sie e<strong>in</strong>e Tour der Rechner am Rechenzentrum? Melden Sie sich!<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 64
Vielen Dank für <strong>die</strong> Aufmerksamkeit!<br />
:-)<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 65
Never work at Home!<br />
Warum es ke<strong>in</strong>e gute Idee ist, <strong>in</strong> /home e<strong>in</strong>en L<strong>in</strong>k auf /bigwork anzulegen:<br />
1 root@avon:/home/nhXXXXXX# ls -l<br />
2 total 4<br />
3 lrwxrwxrwx 1 nhXXXXXX nhXX 17 Oct 17 2010 bigwork -> /bigwork/nhXXXXXX<br />
4 root@avon:/home/nhXXXXXX#<br />
/home nur über NFS angebunden<br />
Job muss über NFS nach /home und wieder über NFS zurück nach<br />
BIGWORK<br />
Langer Weg! Hohe Last für /home Fileserver!<br />
Compute<strong>die</strong>nste am Rechenzentrum Scientific Comput<strong>in</strong>g Gruppe | 7. November 2013 66