Computedienste amRechenzentrum
Scientific Computing Gruppe
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 1
Inhalt1 Zugang
2 Arbeitsablauf
3 Verfügbare Rechenleistung
4 Anwendungen und Software
5 Die Modules-Umgebung
6 Benutzung des Batchsystems
7 Beispiel-Batchskripte
8 Dateisysteme
9 Wenn Fehler auftauchen. . .
10 Informationslinks
11 Kontaktinformationen
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 2
Skizze des Clustersystems
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 3
Zugang–Accounts beantragen
Ein »Projekt« ist vorhanden:Der Projektleiter beantragt einen neuen Account über die BIAS Webseite:https://bias.rrzn.uni-hannover.de
Kein vorhandenes »Projekt«:ORG.BEN4 ausfüllendanach Account über BIAS erstellen
Tipps:Beantragter Benutzername soll den Namen des Nutzers abbildenMailadresse des Nutzers angeben
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 4
Zugang–zum System
ssh login-node.rrzn.uni-hannover.de(Zugangsknoten: Orac und Avon)Hier kann man:
Rechenjobs vorbereitenBatchskripte vorbereitenRechenjobs in die Queue (Jobwarteschlange) schickenKleine Tests laufen lassenDen Queuestatus abfragenRechenergebnisse sichtenDateien in das Archivsystem kopierenDateien zum Arbeitsplatzrechner kopieren
NICHT für Produktionsläufe: Maximale Laufzeit 30 Minuten, danachwerden Prozesse abgebrochen
Alle Anwendungen, Compiler und Tools sind verfügbar
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 5
Zugang–zum System (Windows; grafische Oberfläche)
NXKostenlos (frei verfügbar)Sehr schnell, kann über langsame Leitungen benutzt werdenhttp://www.rrzn.uni-hannover.de/cluster-zugang.html#c15446
X-Win32Kosten: 10 ehttp://www.rrzn.uni-hannover.de/cluster-zugang.html#c12246
XMingKostenlos (Open-Source-Software)Benutzt PuTTY für eine verschlüsselte Verbindung zu den Loginknotenhttp://www.rrzn.uni-hannover.de/cluster-zugang.html#c12252
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 6
Zugang–zum System (Windows; weitere Software)
PuTTY: Nutzung mit der Kommandozeile auf den LoginknotenKostenlos (Open-Source-Software)Benutzt eine SSH (Secure-Shell) verschlüsselte Verbindunghttp://www.rrzn.uni-hannover.de/cluster-zugang.html#c14762
FileZilla: Dateien transferierenKostenlos (Open-Source-Software)Bedienung über grafische Oberflächehttp://filezilla-project.org/
Dokumentation:http://www.rrzn.uni-hannover.de/cluster-zugang.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 7
Arbeitsablauf
Dateien vom Arbeitsplatzrechner auf einen der Loginknoten kopieren
Sicher stellen, dass das Programm funktioniert
Batchskript schreiben
Batchskript submittieren; Job in die Warteschlange absetzen⇒ qsub <batchscript>Jobstatus überprüfen⇒ qstat -ahttp://www.rrzn.uni-hannover.de/betriebsstatus.htmlÜberflüssige Daten löschen
Optional: Ergebnisse zum Arbeitsplatzrechner zurückkopieren
Optional: Ergebnisse ins Archivsystem kopieren⇒ Account zum Archiv muss über BIAS freigegeben werden
http://www.rrzn.uni-hannover.de/batchsystem.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 8
Verfügbare Rechenleistung3 Cluster (für Jobs, die viele CPUs brauchen)
Tane: 96 Knoten; je 12 Kerne á 2.9 GHz; 48 GBParis: 11 Knoten; je 8 Kerne á 3 GHz; 64 GBTaurus: 54 Knoten; je 12 Kerne á 2.66 GHz; 48 GB
14 SMP Rechner (für Jobs, die viel Hauptspeicher brauchen)Estragon: 16 Kerne á 2.4 GHz; 96 GBVladimir, Lucky: je 24 Kerne á 2.6 GHz; 256 GBSMP: 9 Knoten; je 24 Kerne á 2.0 GHz; 256 GBCentaurus: 32 Kerne á 2.7 GHz; 512 GBHelena: 160 Kerne á 2.0 GHz; 640 GB
http://www.rrzn.uni-hannover.de/clustersystem.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 9
Verfügbare Rechenleistung (fort.)
1 GPU Workstation (für Jobs die GPGPUs benutzen können)Tesla: 8 CPU Kerne á 2.53 GHz; 24 GB4 »Tesla« NVIDIA GPU Karten; jeweils:
Gesamter Hauptspeicher: 4 GBAnzahl der Multiprozessoren/GPU Kerne: 30/240
Sehr große Projekte können auf dem HLRN rechnenGesondertes Antragsverfahren»Schnupperaccounts« sind möglichhttp://www.hlrn.de
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 10
Steigende Rechenleistung
0
100
200
300
400
Rech
enle
istu
ng/W
att
(MFl
ops/
W)
Rechenleistung/Watt
01.2
008
07.2
008
02.2
009
08.2
009
03.2
010
09.2
010
04.2
011
11.2
011
05.2
0120
1
2
3
·104
Datum
Rech
enle
istu
ng(G
Flop
s)
Rechenleistung des Clustersystems
Rechenleistung
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 11
Anwendungen und Software
Es gibt eine Vielfalt von Anwendungen und Software auf demClustersystem
ChemieBiologieIngenieurwissenschaftenNumerikMathematikPhysikStatistikWirtschaftswissenschaftenParallelisierungswerkzeugeSoftwareentwicklungVisualisierung
Die »Modules«-Umgebung erleichtert die BenutzungDas module-Kommando initialisiert die richtige Umgebung für diejeweilige Anwendung
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 12
Anwendungen–Physik
Anwendung Gebiet Modulname
Comsol Multiphysik comsolMatlab Matrizen und allgemeine Numerik matlabOctave Matrizen und allgemeine Numerik octaveQuTiP Quanteninformation qutip
Bild: Trajektorien für ein neues 3D-Elektronenmikroskop (COMSOL) | Renke Scheuer, Institut für Mess- und Regelungstechnik, LUH
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 13
Anwendungen–Mathematik
Anwendung Gebiet Modulname
GAMS Mathematische Optimierung gamsMaple Symbolische Mathematik mapleMathematica Symbolische Mathematik mathematica
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 14
Anwendungen–Wirtschaftswissenschaft und Statistik
Anwendung Gebiet Modulname
Ox Ökonometrie oxR Statistik und Grafik RSAS Statistische Analyse, Data-Mining sas
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 15
Anwendungen–Chemie
Anwendung Gebiet Modulname
CPMD Molekulardynamik cpmdCrystal Elektronische Struktur-Berechnung crystalGaussian Elektronische Struktur-Berechnung gaussianGAMESS-US Allgemeine ab initio Quantenchemie gamess_usGromacs Molekulardynamik gromacsMSINDO Molekulardynamik msindo
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 16
Anwendungen–Biologie
Anwendung Gebiet Modulname
Biopython Werkzeuge für biologisches Rechnen biopythonBlat Schnelle Sequenzsuche blatBowtie Genesequenzen Anordner bowtieBWA Burrows-Wheeler Anordner bwaOases Transcriptome Assemblierung für kurzes
Lesenoases
TGI Cluster Tool EST/mRNA Datensätzen in Clustern sortie-ren
tgicl
Velvet Gen-Sequenz Anordung velvet
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 17
Anwendungen–Ingenieurwissenschaft
Anwendung Gebiet Modulname
Abaqus Finite Element Simulationen abaqusANSYS Multiphysik ansysCFX Fluiddynamik cfxFluent Fluiddynamik fluentGambit Präprocessing (Geometrie/Meshes) gambitHFSS Elektromagnetisches Feld Simulationen hfssMarc Finite Element Simulationen marcMaxwell Elektromagnetische Feld-Simulationen maxwell
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 18
Anwendungen–Ingenieurwissenschaft (fort.)
Anwendung Gebiet Modulname
Nastran Finite Element Simulationen nastranOpenFOAM Fluiddynamik openfoamPatran Prä- und Postprozessor für CAE Simulationen patranCreo CAD/CAE Entwurfs- und Entwicklungswerk-
zeugcreo/proe
SELFE 3D Ozeansimulation selfeStarCCM+ Fluiddynamik starccmStarCD Fluiddynamik starcd
Bild: Wasserspiegelauslenkung und Salinität im Weserästuar | Anna Zorndt, Franzius Institut, LUH
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 19
Anwendungen–Simulationspakete
Anwendung Beschreibung Modulname
Harminv Waveform harmonic inversion harminvMeep FDTD simulations meep
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 20
Anwendungen–Visualisierung
Anwendung Gebiet Modulname
Blender 3D Grafik blenderGnuplot Allgemeine Datenvisualisierung gnuplotParaview Allgemeine und 3D Datenvisualisierung paraviewPovray »Persistence of Vision« Raytracer povrayQtiPlot Schnelle Datenvisualisierung qtiplotVTK Visualisierungs Tookit vtk
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 21
Compiler
Anwendung Sprachen Modulnamen
GNU C/C++, Java, Fortran gcc, g++, gcj, gfortranIntel C/C++, Fortran icc, ifort,
intel.compilerPGI C/C++, Fortran pgiSun Java Java sun-javaSolaris Studio C/C++, Fortran solstudioNvidia CUDA C cudatoolkit
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 22
Numerische Bibliotheken
Bibliothek Gebiet Modulnamen
Geospatial Data Datenverarbeitung gdalAbstraction Library (GDAL)
Gnu Scientific Library (GSL) Allgemeine Numerik gslFFTW Fourier-
Transformationfftw
Intel Math Kernel Library (MKL) Allgemeine Numerik imklLAPACK/BLAS Lineare Algebra lapack, blasMulti-precision complex arithm. Complex Arith. mpcMulti-precision floating point Floating Point Arith. mpfrQhull Computationale
Geom.qhull
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 23
Allgemeine Bibliotheken und Anwendungen
Bibliothek Gebiet Modulnamen
LATEX Textbearbeitung latexlibctl Controlefile-Bibliothek libctlPROJ Cartografische Projektionen projXerces XML-Bearbeitung xerces-c
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 24
MPI-Implementierungen
MPI – das Message Passing Interface – ist eine Bibliothek für dieKommunikation zwischen Prozessoren, um Programme in fast beliebigenKonfigurationen parallel laufen zu lassen
Implementierung Beschreibung Modulname
MPICH2 Standard MPICH Installation mpich2MVAPICH MPICH für Infiniband optimiert mvapich2Intel MPI Intels Implementierung des MPI impiOpenMPI OpenMPI openmpiPGI-MPICH MPICH mit PGI Compiler übersetzt pgi-mpichPGI-MVAPICH MVAPICH mit PGI Compiler übersetzt pgi-mvapich
MPI funktioniert nicht automatisch; muss programmiert sein
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 25
Debugger und Profiler
Anwendung Beschreibung Modulname
Valgrind Call Graph und Speicheranalyse valgrindkCachegrind Grafische Oberfläche zu Valgrind kcachegrindValkyrie Grafische Oberfläche zu Valgrind valkyrieTotalview Paralleler Debugger totalviewIntel Trace Analyser Profiler itacVTune Profiler vtuneMPE MPI-Programm-Profiler mpe2-impiScalasca Parallelprogramm-Profiler scalascaIntel Debugger idbGNU Debugger gdb
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 26
Verwenden der Modules-Umgebung
Zuerst muss die Modules-Umgebung initialisiert werdenInitialisierung passiert normalerweise beim Login automatischInitialisierung innerhalb eines Batchjobs:#!/bin/bash -login
in die erste Zeile eines Batchskripts.Falls das module-Kommando nicht bekannt ist, muss man die Umgebungexplizit mit einem der folgenden Kommandos intialisierenIm Allgemeinen:
source $MODULESHOME/init/`basename $SHELL`Mit ksh, bash und csh funktioniert auch:
. $MODULESHOME/init/ksh
. $MODULESHOME/init/bash
. $MODULESHOME/init/cshDer Punkt und das Leerzeichen vorne sind wichtig!!!
http://www.rrzn.uni-hannover.de/modules.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 27
Kommandos der Modules-Umgebung
Alle Module anzeigen lassen$ module avail
Ein Modul (oder mehrere) laden$ module load <modulname> <...>
Ein Modul entladen$ module unload <modulname>
Bereits geladene Module zeigen$ module list
Informationen über ein Modul zeigen$ module show <modulname>
Hilfe und detaillierte Informationen über ein Modul zeigen$ module help <modulname>
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 28
Batchsystem
Ein Batchsystem ist ein automatisches System, um Rechenjobs fairen Zugangzu den Ressourcen eines Clusters zu währen. Jobs werden von einem zentralenOrt zum Batchsystem geschickt (»submittiert«) und in eine Warteschlange(auch »Queue« genannt) gestellt. Ein Scheduler verteilt die Jobs nach einemvorgegebenen Priorisierungsalgorithmus auf die vorhandenen Ressourcen, ummöglichst viel Durchsatz zu erzielen.
Simulationen (Rechenjobs) werden mit einem »Batchskript« in die Queueabgeschickt. Ein Batchskript ist eine Textdatei, die die Ressourcen (wieRechenzeit, Hauptspeicher und CPU-Anzahl) beschreibt, die der Rechenjob fürseinen Lauf benötigt. Das Batchskript enthält auch die Kommandos, die manauf der Konsole absetzen würde, um den Job laufen zu lassen. DieseKommandos werden auf dem entsprechenden Rechenknoten automatischdurchgeführt.
http://www.rrzn.uni-hannover.de/batchsystem.htmlComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 29
Anatomie eines Batchskripts#!/bin/bash beschreibt, welche Shell für die Ausführung des Skriptesverwendet werden sollOptionen ans Batchsystem übergeben
Zeilen fangen mit #PBS anBeschreiben u.a. die Anforderungen des Jobs, welche Warteschlangeverwendet werden soll, usw.
Kommandos, die die Simulation/den Rechenjob vorbereiten unddurchführen, z.B.:
Nötigenfalls die Modules-Umgebung initialisierenmit #!/bin/bash -login unnötig
Module ladenUmgebungsvariablen setzenIn das Verzeichnis wechseln, in dem gerechnet werden sollDas Programm aufrufen
Grundsätzlich wird alles nach einem ‘#’ (Kommentarzeichen) ignoriertAusnahmen:
#! in der ersten ZeilePBS-Optionen
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 30
Ein simples Batch-Skript
1 #!/bin/bash -login2 #PBS -N job_name3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:10:008 #PBS -l mem=3gb9
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)1213 # change to work dir:14 cd $BIGWORK1516 # run the program17 ./hello
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 31
PBS-Optionen
#PBS -N <Name> Name des Jobs#PBS -M <Mailadresse> Mailadresse des Nutzers#PBS -m ae Mail an Nutzer senden; beim Jobende (’e’) oder -abbruch (’a’)#PBS -j oe Zusammenführen (»join«) von Standardausgabe (’o’) und
Fehlerprotokoll (’e’); (STDOUT und STDERR)#PBS -l nodes=<x>:ppn=<y> <x> Knoten, <y> Prozessorkerne je Knoten anfordern#PBS -l walltime=<Zeit> Maximale Laufzeit des Jobs (HH:MM:SS)#PBS -l mem=<Hauptspeicher> Gesamthauptspeicher des Jobs anfordern
z.B. 3600mb, 10gb#PBS -q <Queuename> Name der Warteschlange (Queue)
z.B. all, test, helena#PBS -W x="PARTITION:<Partitionsname>" Name der Clusterpartition (optional)
z.B. paris, smp, tane, taurus#PBS -v <Variabelenliste> Liste der Umgebungsvariablen, die zum Job exportiert
werden sollen#PBS -V Alle Umgebungsvariablen der aktuellen Shell dem Job exportieren
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 32
Batchsystemkommandos
Jobs in die Warteschlange absetzen$ qsub <Optionen> <Name des Jobscripts>
Interaktive Batchjobs$ qsub -I -X (öffnet eine Shell auf einem Knoten)
Alle Jobs anzeigen lassen$ qstat -a
Alle Jobs mit Knoten-Ansicht anzeigen lassen$ qstat -n
Volle Ausgabe für einen bestimmten Job zeigen$ qstat -f <jobid>
Job von der Queue löschen$ qdel <jobid>
Job von einer Queue in eine andere schieben$ qmove <queuename> <jobid>
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 33
Erweiterte Batchsystemkommandos
Alle Jobs anzeigen lassen mit geteilter Ansicht: »show queue«(RUNNING, IDLE, BLOCKED)
$ showq
Alle bereits existierende Reservierungen zeigen: »show reservations«$ showres
Sofort verfügbare Prozessoren und Laufzeiten: »show backfill«$ showbf
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 34
Warteschlangen (Queues)
all – für Jobs aller Art1 (#PBS -q all; Default-Einstellung)test – für kurze Testjobs (#PBS -q test)
nur ein Knoten kann benutzt werden; Jobs, die mehr als einen Knotenanfordern, werden in dieser Queue nicht anlaufen
helena – für große-SMP-Jobs (#PBS -q helena)nur ein Knoten kann benutzt werden; Jobs, die mehr als einen Knotenanfordern, werden in dieser Queue nicht anlaufen
1außer Jobs, die für die test oder helena Queues gedacht sindComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 35
Warteschlangen (Grenzen)
Maximale Anforderungen der all und helena QueuesAnzahl gleichzeitig laufender Jobs pro Benutzer: 64Kerne pro Benutzer: 768Maximales Wallclock-Limit: 200 Stunden(#PBS -l walltime=200:00:00)
Maximale Anforderungen der test Queue47 GB Hauptspeicher (#PBS -l mem=47gb)6 Stunden Wallclockzeit (#PBS -l walltime=6:00:00)1 Knoten, 12 Kerne (#PBS -l nodes=1:ppn=12)
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 36
Verfügbare Hauptspeicherressourcen
Das Betriebssystem benötigt selbst auch Hauptspeicher; die maximalmöglichen Anforderungen sind daher etwas geringerVerfügbare Ressourcen:
Tesla: 23 GBTane-Knoten: 47 GBTaurus-Knoten: 47 GBtest-n001 (die test-Queue): 47 GBParis Standardknoten: 62 GBEstragon: 94 GBParis »dicker«-Knoten: 125 GBVladimir und Lucky: 252 GBSMP-Knoten: 252 GBCentaurus: 504 GBHelena: 630 GB
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 37
Anmerkungen zu den Jobanforderungen
Jobanforderungen bitte anpassen!
Wichtig sind Wallclock-Zeit, Hauptspeicher und CPU/Kern-AnzahlVorteile genauer Angaben:
Besserer Gesamtdurchsatz durch genauere PlanbarkeitJobs laufen schneller an und sind früher fertig
Jobs, die erheblich geringere Ressourcen verbrauchen als angefordert,erzeugen eine Warnungsmail
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 38
Beispiel-Batchskripte
serielles Programm
paralleles Programm
serielles Matlab
paralleles Matlab
serielles Comsol
paralleles Comsol
serielles ANSYS
shared mem ANSYS
distributed mem ANSYS
SAS
R
serielles GAMS
paralleles GAMS
serielles OpenFOAM(airFoil2D)
paralleles OpenFOAM(motorBike)
MSINDO
Abaqus
Gaussian
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 39
Beispiel-Batchskript (serielles Programm)
Beispiel für ein »serielles« Programm (verwendet nur einen Prozessor) hello.
1 #!/bin/bash -login2 #PBS -N moin3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:10:008 #PBS -l mem=3600mb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # change to work dir:12 cd $PBS_O_WORKDIR13 # the program to run14 ./hello
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 40
Beispiel-Batchskript (serielles Matlab-Programm)Matlab-Programm auf einem Prozessor laufen lassen.
1 #!/bin/bash -login2 #PBS -N serialMatlab3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=1:matlab7 #PBS -l walltime=00:10:008 #PBS -l mem=3gb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load matlab13 # change to work dir:14 cd $PBS_O_WORKDIR15 # log file name16 LOGFILE=$(echo $PBS_JOBID | cut -d"." -f1).log17 # the program to run18 matlab -nojvm -nosplash < hello.m > $LOGFILE 2>&1
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 41
Beispiel-Batchskript (paralleles Matlab-Programm)Matlab-Programm auf vier (4) Prozessorkerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N ParallelMatlab3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=4:matlab7 #PBS -l walltime=00:10:00,mem=4gb8 # show which computer the job ran on9 echo "Job ran on:" $(hostname)
10 # load the relevant modules11 module load matlab12 # change to work dir13 cd $PBS_O_WORKDIR14 # log file name15 LOGFILE=$(echo $PBS_JOBID | cut -d"." -f1).log16 # the program to run17 matlab -nodesktop < lin_solve.m > $LOGFILE 2>&1
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 42
Beispiel paralleles Matlab-Programm1 function lin_solve(n)2 fprintf(’=============== START =================\n’)3 if nargin ~= 14 n = 10000;5 fprintf(’Using default matrix size: n = %d\n’, n)6 else7 n = str2num(n); % argument is a string; convert to num8 fprintf(’Using the matrix size: n = %d\n’, n)9 end
1011 tic1213 % set up the matrix to solve14 A = rand(n);15 y = rand(n,1);1617 % solve the matrix18 x = A\y;1920 toc21 fprintf(’=============== END =================\n’)
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 43
Beispiel-Batchskript (serielles Comsol-Programm)Comsol auf einem Prozessor laufen lassen.
1 #!/bin/bash -login2 #PBS -N comsol_micromixer3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:30:008 #PBS -l mem=10gb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load comsol13 # change to work dir:14 cd $PBS_O_WORKDIR15 # the program to run16 comsol batch -inputfile micromixer.mph
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 44
Beispiel-Batchskript (paralleles Comsol-Programm)Comsol auf acht (8) CPU-Kerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N comsol_micromixer_parallel3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=87 #PBS -l walltime=00:30:008 #PBS -l mem=10gb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load comsol13 # change to work dir:14 cd $PBS_O_WORKDIR15 # work out the number of threads16 export NUM_THREADS=$(wc -l $PBS_NODEFILE | cut -d" " -f1)17 # the program to run18 comsol batch -inputfile micromixer.mph -np $NUM_THREADS
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 45
Beispiel-Batchskript (serielles ANSYS-Programm)ANSYS auf einem Prozessor laufen lassen.
1 #!/bin/bash -login2 #PBS -N testcase.serial3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:20:008 #PBS -l mem=2gb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load ansys13 # change to work dir14 cd $PBS_O_WORKDIR15 # start program for serial run;16 # (assuming that an input file testcase.dat has been created before):17 ansys130 -i testcase.dat -o serial.out
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 46
Beispiel-Batchskript (shared ANSYS-Programm)ANSYS auf einem Knoten mit mehreren Prozessoren und geteiltem Speicher
1 #!/bin/bash -login2 #PBS -N testcase.shared3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=47 #PBS -l walltime=00:20:008 #PBS -l mem=2gb9 # load the relevant modules
10 module load ansys11 # change to work dir12 cd $PBS_O_WORKDIR13 # calculate number of threads for shared memory computation14 nthr=$(cat $PBS_NODEFILE | wc -l)15 echo "nthreads = "$nthr16 # start program17 ansys130 -b -np $nthr -i testcase.dat -o shared.out
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 47
Beispiel-Batchskript (distributed ANSYS-Programm)ANSYS auf mehreren Knoten laufen lassen.
1 #!/bin/bash -login2 #PBS -N testcase.distr3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=2:ppn=47 #PBS -l walltime=00:20:008 #PBS -l mem=2gb9 # load the relevant modules
10 module load ansys11 # change to work dir12 cd $PBS_O_WORKDIR13 # set stacksize14 ulimit -s 30000015 # create correct HOST string for ANSYS call16 create_ansys_machine_file machines17 read HOST < machines18 echo $HOST19 # start program in distributed memory mode20 ansys130 -b -dis -machines $HOST -mpi hpmpi -i testcase.dat -o distr.out
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 48
Beispiel-Batchskript (SAS-Programm)
1 #!/bin/bash -login2 #PBS -N seriellSAS3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:30:008 #PBS -l mem=5gb9
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)12 # load the relevant modules13 module load sas14 # change to work dir:15 cd $PBS_O_WORKDIR16 # the program to run17 sas Simulation.sas
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 49
Beispiel-Batchskript (R-Programm)
1 #!/bin/bash -login2 #PBS -N seriellR3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:10:008 #PBS -l mem=3600mb9
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)12 # load the relevant modules13 module load R14 # change to work dir:15 cd $PBS_O_WORKDIR16 # the program to run17 R --slave < fanta22_korrektur.R
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 50
Beispiel-Batchskript (serielles GAMS-Programm)GAMS-Programm auf einem (1) Prozessorkern laufen lassen.
1 #!/bin/bash -login2 #PBS -N GAMS_trnsport3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:10:008 #PBS -l mem=4gb9
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)12 # load the relevant modules13 module load gams14 # change to work dir15 cd $PBS_O_WORKDIR16 # the program to run17 gams trnsport.gms lo=2 lf=transport_log.log
⇐Zurück zur Batchskriptliste
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 51
Beispiel-Batchskript (paralleles GAMS-Programm)GAMS-Programm auf vier (4) Prozessorkerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N CLSP_Optimal3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=47 #PBS -l walltime=00:10:008 #PBS -l mem=4gb9
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)12 # load the relevant modules13 module load gams14 # change to work dir15 cd $PBS_O_WORKDIR16 # correctly specify the number of cores in cplex.opt!!17 # the program to run18 gams CLSP_Optimal.gms lo=2 lf=CLSP_Optimal.log
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 52
Beispiel-Batchskript (serielles OpenFOAM-Programm)simpleFoam auf einem (1) Prozessorkern laufen lassen.
1 #!/bin/bash -login2 #PBS -N airFoil2D3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=17 #PBS -l walltime=00:10:008 #PBS -l mem=4gb9 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load openfoam/1.7.113 # initialise the OpenFOAM environment14 source $foamDotFile15 # change to work dir:16 cd $PBS_O_WORKDIR/airFoil2D17 # clean up from possible previous runs18 ./AllClean19 # the program to run20 simpleFoam
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 53
Beispiel-Batchskript (serielles OpenFOAM-Programm)simpleFoam auf einem (1) Prozessorkern laufen lassen.
1 #!/bin/bash -login2 #PBS -N motorBike3 ####PBS -M [email protected] #PBS -M [email protected] #PBS -m ae6 #PBS -j oe7 #PBS -l nodes=1:ppn=18 #PBS -l walltime=00:30:009 #PBS -l mem=4gb
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)12 # load the relevant modules13 module load openfoam/1.7.114 # initialise the OpenFOAM environment15 source $foamDotFile16 # change to work dir:17 cd $PBS_O_WORKDIR/motorBike18 # clean up from previous runs19 ./Allclean20 # set up the mesh and the simulation21 cp system/fvSolution.org system/fvSolution22 cp -r 0.org 0 > /dev/null 2>&123 blockMesh24 snappyHexMesh -overwrite25 sed -i ’s/\(nNonOrthogonalCorrectors\).*;/\1 10;/g’ system/fvSolution26 potentialFoam -writep27 sed -i ’s/\(nNonOrthogonalCorrectors\).*;/\1 0;/g’ system/fvSolution28 # the program to run29 simpleFoam
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 54
Beispiel-Batchskript (paralleles Programm)Ein MPI-paralleles Programm namens ping_pong_advanced_send, dasüber zwei (2) Prozessoren verteilt wird.
1 #!/bin/bash -login2 #PBS -N pingpong3 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=2,walltime=00:10:00,mem=4gb7 #PBS -W x=PARTITION:tane89 # show which computer the job ran on
10 echo "Job ran on:" $(hostname)11 # load the relevant modules12 module load impi13 # change to work dir:14 cd $PBS_O_WORKDIR15 # the program to run in parallel16 mpirun --rsh=ssh -machinefile $PBS_NODEFILE -np 2 -env I_MPI_DEVICE shm \17 ./ping_pong_advanced_send_c
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 55
Beispiel-Batchskript (MSINDO)MSINDO auf 6 Prozessorkerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N MgO_4443 #PBS -M [email protected] #PBS -m ae5 #PBS -j oe6 #PBS -l nodes=1:ppn=67 #PBS -l walltime=00:10:008 #PBS -l mem=16gb9 #PBS -W x=PARTITION:tane:paris:kuh
1011 # show which computer the job ran on12 echo "Job ran on:" $(hostname)13 # load the relevant modules14 module load msindo1516 export KMP_STACKSIZE=64M17 export OMP_DYNAMIC=.FALSE.18 export OMP_NUM_THREADS=$(cat $PBS_NODEFILE | wc -l)1920 INPUTFILE="MgO_444.inp"2122 # change to work dir:23 TEMPDIR=$BIGWORK/$(basename $INPUTFILE .inp).$$24 cd $TEMDIR25 LOGFILE=$PBS_O_WORKDIR/$INPUTFILE.out.$$26 echo "Running on $OMP_NUM_THREADS cores" >> $LOGFILE2728 # the program to run29 time msindo < $INPUTFILE >> $LOGFILE 2>&130 # clean up output files31 if [ -s "fort.9" ]; then cp fort.9 $PBS_O_WORKDIR/$INPUTFILE.f9.$$; fi32 if [ -n "$(ls *.dat)" ]; then cp *.dat $PBS_O_WORKDIR/; fi33 if [ -n "$(ls *.molden)" ]; then cp *.molden $PBS_O_WORKDIR/; fi34 if [ -n "$(ls *.xyz)" ]; then cp *.xyz $PBS_O_WORKDIR/; fi
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 56
Beispiel-Batchskript (Abaqus)Abaqus auf 4 Prozessorkerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N llbeam3 #PBS -M [email protected] #PBS -j oe5 #PBS -m ae6 #PBS -l nodes=1:ppn=47 #PBS -l mem=15GB8 #PBS -l walltime=00:50:009
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)1213 # load the relevant modules14 module load abaqus1516 # change to working directory17 cd $PBS_O_WORKDIR1819 # set up simulation parameters20 np=$(cat $PBS_NODEFILE | wc -l)21 mnp=$(sort -u $PBS_NODEFILE | wc -l)22 cp $PBS_NODEFILE hostfile23 echo $np >> hostfile24 echo $mnp >> hostfile25 create_abaqus_host_list2627 # run the program28 abaqus job=llbeam cpus=$np domains=$np parallel=domain mp_mode=mpi double interactive
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 57
Beispiel-Batchskript (Gaussian)Gaussian auf 4 Processorkerne laufen lassen.
1 #!/bin/bash -login2 #PBS -N gaussian3 #PBS -M [email protected] #PBS -j eo5 #PBS -m ae6 #PBS -l nodes=1:ppn=47 #PBS -l mem=10gb8 #PBS -l walltime=00:30:009
10 # show which computer the job ran on11 echo "Job ran on:" $(hostname)1213 # load the relevant modules14 module load gaussian1516 # change to working directory17 cd $PBS_O_WORKDIR1819 # run the program20 g09 < input.com > g09job.out
⇐Zurück zur BatchskriptlisteComputedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 58
Struktur der Dateisysteme
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 59
Details der Dateisysteme
$HOMEGlobal verfügbares HeimverzeichnisDaten werden gesichert; unbegrenzte LebensdauerDatenvolumen begrenzt über Unix-QuotasystemFür Skripte, Programme und kleine endgültige Ergebnisse geeignet
$BIGWORKGlobal verfügbares ArbeitsverzeichnisFür große »Work«-Dateien geeignet69 TB Speicherplatz für alle zusammen.$BIGWORK-Variable zeigt auf /bigwork/<benutzername>Daten werden NICHT gesichert; Daten haben eine Lebensdauer von 28Tagen (nach der letzten Änderung der Daten)
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 60
Details der Dateisysteme (fort.)
ArchivsystemLangfristige Lagerung von Dateien, auch von großen DatenmengenDaten sind auf dem Tape-Backup-Archiv der Universität gesichertVon den Loginknoten mit lftp-Kommando erreichbar3,3 PB SpeicherplatzMehr Informationen unter:
http://www.rrzn.uni-hannover.de/datensicherung.htmlhttp://www.rrzn.uni-hannover.de/archiva1.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 61
Wenn Fehler auftauchen. . .
1 Batchskript und nötigenfalls das Programm überprüfen
2 Clusterdokumentation lesen:http://www.rrzn.uni-hannover.de/clustersystem.html
3 Sagt Google etwas dazu?4 Melden Sie sich über die Hilfemailingliste:
[email protected] mit den folgenden InfosIhr BenutzernameJob ID NummerWann der Job gelaufen istAuf welchem Rechenknoten der Job gelaufen istDas BatchskriptEine kurze Beschreibung des ProblemsJegliche Fehlermeldung des Programms, falls vorhandenDas Ausgabeprotokoll des Jobs, z.B.: myjob.o12345 als Anhang
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 62
Informationslinkshttp://www.rrzn.uni-hannover.de/clustersystem.html
http://www.rrzn.uni-hannover.de/cluster-zugang.html
http://www.rrzn.uni-hannover.de/batchsystem.html
http://www.rrzn.uni-hannover.de/rechnerressourcen.html
http://www.rrzn.uni-hannover.de/installierte_software.html
http://www.rrzn.uni-hannover.de/handbuecher.html
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 63
Kontaktinformationen
Fragen, Anregungen und Problemberichte:[email protected]
FachberatungDr. Gerd Brand: [email protected]. Andreas Gerdes: [email protected] Heimbrock: [email protected]. Holger Naundorf: [email protected]
Administration, allgemeine Beratung
Dr. Paul Cochrane: [email protected] Dobrindt: [email protected] Njofang: [email protected]
Möchten Sie eine Tour der Rechner am Rechenzentrum? Melden Sie sich!
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 64
Vielen Dank für die Aufmerksamkeit!
:-)
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 65
Never work at Home!
Warum es keine gute Idee ist, in /home einen Link auf /bigwork anzulegen:
1 root@avon:/home/nhXXXXXX# ls -l2 total 43 lrwxrwxrwx 1 nhXXXXXX nhXX 17 Oct 17 2010 bigwork -> /bigwork/nhXXXXXX4 root@avon:/home/nhXXXXXX#
/home nur über NFS angebunden
Job muss über NFS nach /home und wieder über NFS zurück nachBIGWORK
Langer Weg! Hohe Last für /home Fileserver!
Computedienste am Rechenzentrum Scientific Computing Gruppe | 7. Juli 2013 66