Tags:
view all tags
---+ Computations on Palma ---++ Compiling Software ---+++ The module concept Environment variables (like PATH, LD_LIBRARY_PATH) for compilers and libraries can be set by modules: | *Command (Short- and Long-form)* | *Meaning* | | module av[ailable] | Lists all available modules | | module li[st] | Lists all modules in the actual enviroment | | module show modulname | Lists all changes caused by a module | | module add modul1 modul2 ... | Adds module to the actual environment | | module rm modul1 modul2 ... | Deletes module from the actual environment | | module purge | Deletes all modules from actual environment | To get acces to all modules, the following modules have to be added to the standard environment (this can be done by adding them to .bashrc): <verbatim> module add shared module add /Applic.PALMA/modules/path </verbatim> Auf Palma ist MPI von Intel installiert. Um es nutzen zu können, muss ebenfalls ein Modul geladen werden. <verbatim> module add intel/mpi/3.2.2.006 </verbatim> Die wichtigsten Kompileraufrufe lauten dann analog zum seriellen Intelcompiler _mpiicc_, _mpiicpc_, _mpiifort_ usw. Beispiel: Übersetzen eines Programms mit der FFTW2: <verbatim> module add fftw/2.1.5 module add intel/cc/11.1.059 module add intel/mpi/3.2.2.006 mpiicc -I ${FFTW2_INCLUDE_DIR} -o Programm mpifftw2d.c -g -O3 -L${FFTW2_LIB_DIR} -lsrfftw_mpi -lsfftw_mpi -lsrfftw -lsfftw -lm </verbatim> Zur Erklärung: Die Module _shared_ und _path_ müssen natürlich schon geladen sein. Durch das Modul _fftw/2.1.5_ werden laut "module show fftw/2.1.5" die Umgebungsvariablen FFTW2_INCLUDE_DIR und FFTW2_LIB_DIR gesetzt, die dann beim Kompilieren (auch im makefile) verwendet werden können. ---++ Submittieren von Jobs Für die Verteilung von Rechenjobs auf dem Cluster sorgen das Batchsystem TORQUE sowie der Scheduler Maui. Ein manuelles Starten von längeren Programmläufen auf den Rechenknoten oder auf PALMA am Batchsytem vorbei ist nicht erlaubt. Solche "streunenden" Prozesse werden ohne Vorwarnung vom Administrator beendet. Grundsätzlich sollten Batch-Jobs nur vom Dialogserver palma1 aus abgeschickt werden. ---+++ Erstellen des submit-files Beispiel für ein submit-file eines MPI-Jobs: <verbatim>#PBS -o output.dat #PBS -l walltime=01:00:00,nodes=4:westmere:ppn=12 #PBS -A Projektname #PBS -M Nutzername@uni-muenster.de #PBS -m ae #PBS -q default #PBS -N Jobname #PBS -j oe cd $HOME/Jobverzeichnis cp $PBS_NODEFILE $HOME/$PBS_JOBID.nodefile mpdboot --rsh=ssh -n 2 -f ~/$PBS_JOBID.nodefile -v mpirun --rsh=ssh -machinefile $PBS_NODEFILE -np 32 ./Programmname</verbatim> Hier wird ein MPI-Job gestartet, der mit insgesamt 32 Prozessen läuft. Dazu werden 4 westmere-Knoten mit je 12 Prozessorkernen angefordert. Weitere Angaben: * *Projektname*: Muss unbedingt durch das eigene Projekt erstetzt werden, ansonsten startet der Job nicht. * *Nutzername*: Durch eigene Kennung ersetzen, damit Emails korrekt zugestellt werden können * *Jobverzeichnis*: Durch Pfad, in dem das Programm liegt, ersetzen. * *Programmname*: Hier den Namen der auszuführenden Datei eintragen. * *walltime*: Die nötige Zeit, die das Programm läuft, angeben. Nach Ablauf der Zeit wird der Job abgebrochen. Maximal 48 Stunden sind möglich. Benötigt das Programm kein MPI, kann die Datei entsprechend vereinfacht werden. Beispiel für ein submit-file eines openmp Jobs: <verbatim>#PBS -o output.dat #PBS -l walltime=01:00:00,nodes=1:westmere:ppn=12 #PBS -A Projektname #PBS -M Nutzername@uni-muenster.de #PBS -m ae #PBS -q default #PBS -N Jobname #PBS -j oe cd $HOME/Jobverzeichnis ./Programmname</verbatim> ---+++ Abschicken des Jobs/Verwaltung der Warteschlange Ein Job wird gestartet, indem die oben erzeugte submit-Datei mittels <verbatim> qsub submit.cmd </verbatim> abgeschickt wird, wobei submit.cmd der Name der submit-Datei ist. Weitere Befehle: * qstat: Zeigt die derzeitige Warteschlange an * qstat -a: Selbiges, nur mit Anzahl der angeforderten Knoten * qstat -n: Alle Knoten, die den Jobs zugeordnet sind, werden aufgeschlüsselt * qdel Jobnummer: Löscht Jobs aus der Warteschlange * showbf: Zeigt die Anzahl der freien Prozessorkerne ---+++ Die Auswahl der Rechenknoten Mit der Option -l legt man die Ressourcenanforderungen für den Batch-Job fest. Bei der Festlegung der Anzahl und Art der Nodes ist zu beachten, dass die Rechenknoten des Systems zur Unterscheidung mit den Eigenschaften "nehalem" und "westmere" gekennzeichnet sind. Außerdem gibt es pro Node mehrere CPU-Kerne, so dass die Angabe nodes zwei unterschiedliche Bedeutungen haben kann. Die folgende Tabelle soll verdeutlichen, wie sich die Angabe nodes auf die Auswahl der Rechenknoten auswirkt: | *Angabe im Batch-Job* | *Auswahl der Rechenknoten* | | -l nodes=10 | 10 beliebige CPU-Kerne. Nicht zu empfehlen.| | -l nodes=2:ppn=12 | 2 Westmere Knoten | | -l nodes=1:ppn=8 | 8 Prozessorkerne eines Westmere oder Nehalem Knotens | | -l nodes=2:nehalem:ppn=8+3:westmere:ppn=12 | 16 Prozessorkerne von 2 Nehalem Knoten und 36 Prozessorkerne von 3 Westmere Knoten | | -l nodes=8:ppn=1 | Fehlerhafte Zuteilung. Die Anzahl von ppn, wenn angegeben, sollte größer oder gleich 2 sein. Aufgrund eines Bugs in TORQUE erhält man für ppn=1 nicht das erwartete Ergebnis, sondern z.B. in diesem Fall 8 willkürlich über die HPC-Rechnenknoten verteilte Cores. | Generell sollten immer komplette Knoten angefordert werden, d.h. Angaben wie <verbatim>nodes=x:nehalem:ppn=8</verbatim> oder <verbatim>nodes=x:westmere:ppn=12</verbatim> gemacht werden. Bei Bedarf können die einzelnen Chassis, in denen die Knoten stecken, auch direkt angefordert werden. Dazu ist statt der Angabe *#PBS -q default* die Angabe des Chassis nötig. Es kann zwischen folgenden Chassis gewählt werden: chassisd1, chassisd2, chassisd3, chassisd4, chassise1, chassise2, chassise3, chassisf1, chassisf2, chassisf3, chassisg1 wobei die Chassis d1 und d2 nehalem Prozessoren besitzen und das chassis g1 48GB statt 24 GB Hauptspeicher pro Knoten hat. Um auf den SMP-Systemen zu rechnen, ist es derzeit noch notwendig, sich direkt auf diesen einzuloggen und die Jobs interaktiv zu starten. Die Namen der Knoten sind palma060, palma061, palma062 und palma063. ---++ Die scratch Partition Paralles speichern von Daten auf /scratch... in Vorbereitung Unter /scratch befinden sich 180 TB Speicherplatz, der genutzt werden kann, um die in den Programmen generierten Daten zu speichern. Diese sollten aus Platz- und Geschwindigkeitsgründen nicht im Homeverzeichnis gespeichert werden. Als Dateisystem kommt lustre zum Einsatz, das einige Besonderheiten besitzt. Es wird kein Backup dieser Partition durchgeführt! -- Main.HolgerAngenent - 2010-07-12 -- Main.HolgerAngenent - 2010-08-16
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r18
|
r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r1 - 2010-08-16
-
HolgerAngenent
Home
Site map
Anleitungen web
Exchange web
Main web
TWiki web
Anleitungen Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Български
Cesky
Dansk
Deutsch
English
Español
Suomi
_Français_
Italiano
日本語
한글
Nederlands
Polski
Português
Русский
Svenska
Українська
简体中文
簡體中文
Edit
Attach
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding ZIVwiki?
Send feedback
Datenschutzerklärung
Impressum