Dr. rer. nat. Claus-Peter Rückemann
Westfälische Wilhelms-Universität Münster (WWU)
2. Juli 2006
ZIVGrid - Kurzanleitung für Eilige:
1. Da der Betrieb des ZIVGrids momentan nur unter Linux stattfindet,
sollten Sie zumindest grundlegende Kenntnisse der Kommandozeile
besitzen (d.h. die Befehle ls, mkdir, cp, rm, rmdir, cd sollten
Ihnen geläufig sein).
2. Zunächst einmal müssen Sie sich mit Ihrer zentralen Nutzerkennung
und Ihrem zentralen Standardpasswort [INLINE] auf dem Rechner
ZIVcluster anmelden.
3. Sie können sich mit Secure Shell ("ssh" unter Linux) auf dem
ZIVcluster einloggen und mit Secure Copy ("scp") oder Secure FTP
("sftp") Dateien auf den ZIVcluster übertragen. Dies wird in der
Regel der Quelltext Ihrer Programme sein. Um sich besser auf dem
ZIVcluster zurecht zu finden, können Sie auch auf die [INLINE]
Dokumentation des Clusters zurückgreifen. Für das Einloggen auf
dem ZIVcluster bieten sich natürlich die ZIVpool-Rechner unter
Linux an (zur Zeit Pool 2 und Pool 3).
4. Mit dem Kommando "condor_compile" können Sie Ihren Programmcode
kompilieren. Die Syntax lautet:
condor_compile <command> [options/files .... ], wobei <command>
für einen der folgenden Compiler/Linker steht: gcc, g++, g77, ld.
Bei Verwendung der aktuellen Portland-Compiler Version 6.1 muss
beim Kompilieren die Option "-g77libs" angegeben werden, da sonst
wegen Mehrfachdefinitionen kein Executable erzeugt wird.
5. Schreiben Sie ein Submit Description File mit beispielsweise
folgendem Inhalt:
executable = chess
output = chess.out
error = chess.err
log = chess.log
notify_user = username@uni-muenster.de
queue
Als Editoren stehen Ihnen joe, vi, emacs, pico, gedit und nedit
zur Verfügung.
6. Schicken Sie diese Datei mit dem Kommando "condor_submit
dateiname" ab.
7. Sie erhalten eine E-Mail, sobald Ihr Programm beendet ist. Die
Ergebnisse liegen dann in dem Verzeichnis, von dem aus Sie den
Rechenjob abgeschickt haben.
8. Bei Problemen können Sie sich an [INLINE] Martin Leweling wenden.
%%SRC: kurzanleitung.html
Cluster Front 160x200
ZIVcluster
Der Linux-HPC-Cluster des Zentrums für Informationsverarbeitung
Mit dem ZIVcluster steht allen Angehörigen der Universität und Nutzern
des Ressourcenverbundes NRW ein hochperformantes System zur
Entwicklung paralleler Anwendungen zur Verfügung.
_________________________________________________________________
Leistungsdaten
Der Cluster besteht aus 2 [INLINE] Kopfstationen (head nodes), 118
[INLINE] Rechenknoten (compute nodes) sowie 3 Fileservern und einem
Installationsserver. Die Rechner sind entsprechend ihrer Position in
den jeweiligen Serverschränken durchnummeriert. 110 der 118
Rechenknoten sind über Myrinet miteinander verbunden; zusätzlich
besteht zwischen allen Rechnern eine Verbindung über Gigabit-Ethernet.
Die schnelle Myrinet-Verbindung dient ausschließlich der Kommunikation
paralleler Programme (z.B. über MPI); der Betrieb eines
knotenübergreifenden Dateisystems (GPFS) nutzt das Gigabit-Ethernet.
Zugang
Eine Nutzerkennung für das Parallelrechnersystem kann jeder Angehörige
der Universität Münster und jeder Nutzer des [INLINE]
Rechnerverbundes NRW bekommen. Die erstmalige Einrichtung der
Nutzerkennung auf dem Parallelrechner erfolgt durch ein [INLINE]
Web-Formular.
Dokumentation
Welche Möglichkeiten Sie auf unserem Cluster haben, welche ersten
Schritte zur Nutzung notwendig sind, welche Software sie verwenden
können und wie Sie in die parallele Programmierung einsteigen können,
all dies entnehmen Sie bitte unserer [INLINE] Dokumentationsseite.
Dort finden Sie auch eine Linksammlung zum Thema parallele
Programmierung, eine Liste häufig gestellter Fragen (FAQ) und Hinweise
auf aktuelle Lehrveranstaltungen, die für Sie hilfreich sein könnten.
Ansprechpartner
Bei Fragen zum System und zur Nutzung wenden Sie sich bitte an
[INLINE] Martin Leweling. Bei Fragen zur Installation von
Standardanwendungen kann Ihnen auch [INLINE] Benno Süselbeck
weiterhelfen.
Aktuelle Hinweise
Ausfallzeiten:
Mi. 15.3. bis Fr. 17.3.: Neuinstallation des gesamten Clusters mit
aktuellen Versionen von Betriebssystem, Batchsystem, GPFS, Compilern,
MPI usw. Nach der Neuinstallation sollten sämtliche Programme neu
kompiliert werden.
Fr. 21.4. 16:00 Uhr: Der neue Portland-Compiler in der Version 6.1 ist
unter /usr/pgi installiert. Entsprechende MPICH-GM Versionen sind
unter /gpfs/a/mpich_pgi_gm32 und /gpfs/a/mpich_pgi_gm64 zu finden.
Wichtig: alle SSH-Keys haben sich geändert; evtl. muss man diese aus
eigenen known_hosts-Dateien entfernen.
Gegenwärtiger Auslastungszustand
Die aktuelle Auslastung geht aus der Abbildung unten hervor.
Auslastung in Prozent
Es gibt auch [INLINE] Detailinformationen zum gegenwärtigen Zustand,
zur [INLINE] Temperaturverteilung und zur [INLINE] Verteilung der
Rechenjobs auf einzelne Knoten. Eine regelmäßig aktualisierte [INLINE]
Nutzungsstatistik nach Arbeitsgruppen kann ebenfalls eingesehen
werden.
------------
ZIVGrid - Grid Computing mit Condor
Das Zentrum für Informationsverarbeitung bietet allen Angehörigen der
Universität die Möglichkeit, Poolrechner nachts und am Wochenende für
rechenintensive Aufgaben zu nutzen. Zum Einsatz kommt dabei die
Grid-Software [INLINE] Condor, welche auch dem [INLINE]
"Morfeus"-Projekt der IVV Naturwissenschaften zu Grunde liegt.
Zur Zeit sind die 16 Rechner im [INLINE] ZIV-Pool 2 unter dem
Betriebssystem Linux auf diese Weise nutzbar. Dort beginnt die
nutzbare Rechenzeit täglich um ca. 17.30 Uhr und endet mit dem
nächsten Neustart der Systeme nach Öffnung des ZIV-Pools 2 für die
Allgemeinheit, also frühestens gegen 8.00 Uhr morgens. Darüber hinaus
nehmen weitere 36 Rechner des [INLINE] ZIV-Pools 3 am ZIVGrid teil,
während sie gerade unter Linux laufen. Da man in der Regel länger
rechnen möchte, unterstützt die Condor-Installation im ZIVGrid
sogenanntes "Checkpointing", d.h. Einfrieren eines Prozesses auf dem
einen Rechner und Migration dieses Prozesses auf einen anderen
Rechner. Auf diese Weise überstehen Ihre ZIVGrid-Jobs sogar Neustarts
von Rechnern und können praktisch unbegrenzte Rechenzeiten erreichen.
Als Remote-Zugang zum Condor-Pool dient der Rechner [INLINE]
ZIVcluster. Von dort aus können seit Anfang September Rechenjobs
abgeschickt werden. Darüber hinaus ist geplant, das ZIV-Grid mit dem
Morfeus-Pool der IVV Naturwissenschaften zu verbinden. Eine
überregionale Anbindung an das [INLINE] NRW-Grid wurde bereits
realisiert: Jobs, die im ZIVGrid keine freien Ressourcen vorfinden,
können demnach - für den Benutzer völlig transparent - auch auf
Linux-Rechnern der RWTH Aachen ausgeführt werden.
Weitere Informationen zum Thema Grid Computing mit Condor/Morfeus gibt
es unter anderem in der [INLINE] Jubiläumsausgabe 2004 des inforum.
----------
Übersicht über die wichtigsten Befehle
Diese Seite entstand in Anlehnung an eine entsprechende [INLINE]
Befehlsübersicht für den Morfeus-Pool der IVV Naturwissenschaften.
Dennoch gilt es, Unterschiede zu beachten, da beide Pools
unterschiedliche sogenannte [INLINE] Universen unterstützen.
Insbesondere ist es im ZIVGrid notwendig, eigene Programme mit
speziellen Condor-Bibliotheken zu linken und somit das Kommando
"condor_compile" zum Übersetzen zu verwenden.
Befehl
Kommentar
[INLINE] condor_status Listet die aktuell im Condor-Pool
teilnehmenden Rechner auf.
[INLINE] condor_q Sicht auf die (lokale) Queue des momentan benutzen
Rechners. Mit anderen Worten: Man sieht alle auf ZIVcluster in Auftrag
gegebenen Jobs. Bei Problemen mit einem Job hilft oft die Option
-analyze weiter.
[INLINE] condor_submit job.sub
Mit diesem Kommando kann man Jobs der Condor-Queue zuweisen. "job.sub"
bezeichnet dabei ein sogenanntes Submit Description File, das
Anweisungen enthält, auf welche Art und Weise und mit welchen Optionen
ein Job ausgeführt werden soll.
[INLINE] condor_rm Job-ID
Kommando zum Löschen eigener Jobs aus der Queue. Die "Job-ID" haben
Sie vorher mit "condor_q" abgefragt. Falls Sie alle Ihre Jobs aus der
Queue löschen wollen, schreiben Sie "condor_rm -all".
[INLINE] condor_userprio -all -allusers
Kommando zur Abfrage der Prioritäten aller bei Condor registrierten
Benutzer. Die Priorität soll als Anhaltspunkt für den Benutzer dienen,
einschätzen zu können, wann ein eigener Job zur Ausführung gelangt.
Die beste (minimal) erreichbare Priorität ist 0.50; mit Zunahme des
Zahlenwertes verschlechtert sich die Priorität eines Benutzers.
[INLINE] condor_compile ...
Hilfsprogramm zum Kompilieren eigener Programme. Die genaue Syntax
lautet:
condor_compile <command> [options] files ...
Bei uns stehen für <command> folgende Compiler und Linker zur
Verfügung:
gcc, g++, g77, ld. Die aktuellen Intel- und Portland-Compiler
funktionieren mit Condor leider nicht.
Für die Optionen der einzelnen Compiler sehen Sie bitte in der
Dokumentation zum jeweiligen Compiler nach, also z.B. mit "man g77".
[INLINE] condor_hold Job-ID
Hält Jobs in der Queue von der Abarbeitung zurück.
[INLINE] condor_release Job-ID
Hebt die mit condor_hold ausgeführte Sperrung wieder auf.
Submit Description File
In diese Datei werden alle für Condor wichtigen Informationen
geschrieben.
Eintrag
Kommentar
universe = standard
Diese Zeile kann weggelassen werden, dann ist universe=standard die
Default-Einstellung. Von der Verwendung anderer Universen wird
abgeraten, da nicht sichergestellt werden kann, dass jedes beliebige
Programm auf den Poolrechnern die passende Umgebung vorfindet.
executable = file
Das auszuführende Programm.
should_transfer_files = YES
Wenn Ein- oder Ausgabedateien auf das ausführende System kopiert
werden müssen. Da ZIVcluster und Poolrechner kein gemeinsames
Dateisystem besitzen, ist dies in der Regel der Fall.
transfer_input_files = file1,file2 ...
Eingabefiles, die auf das Zielsystem kopiert werden müssen, damit der
Job rechnen kann.
output = job.output
Umleitung der Standardausgabe in eine Datei.
error = job.error
Umleitung der Starndardfehlerausgabe in eine Datei.
log = job.log
Datei für diverse Statusmeldungen des Jobs.
notify_user = email@address
E-Mail-Adresse für die Benachrichtigung des Benutzers.
requirements = <expression>
An dieser Stelle können die benötigten Ressourcen des Jobs festgelegt
werden. Verzichtet man hier auf eine explizite Angabe, dann werden die
Eigenschaften (Betriebssystem, RAM usw.) des submittenden Computers
als Default-Einstellung genommen.
Beispiel:
Der Job benötigt mindestens 500MB RAM.
Im Submit Description File lautet dann die entsprechende Zeile:
requirements = (Memory >= 500)
queue
Dieser Befehl, der immer ganz am Ende des Submit Description Files
stehen muss, sorgt letztlich für das Abschicken des Jobs in die Queue.
Jeder Eintrag in der Datei nach "queue" wird ignoriert.
%%SRC: befehlsuebersicht.html
\section{MORfEUS}
IVV Naturwissenschaften - MORfEUS
Eine erste Übersicht
Morfeus wird ermöglicht durch die Freeware Condor©, die an der
University of Wisconsin-Madison entwickelt wurde. Sie ist für viele
Betriebssysteme erhältlich, u.a. auch für Linux und Windows.
Auf jedem Computer, der Teil des Pools werden soll, muss diese
Software installiert sein. Jeder dieser Computer (im folgenden auch
Client genannt) erfüllt nun zwei Funktionen:
* Von ihm können Jobs gestartet werden.
* Falls er gerade nicht benutzt wird, können Jobs auf ihm ausgeführt
werden.
Zusätzlich gibt es noch einen Central-Manager, der mit allen Clients
ständig in Verbindung steht und die Jobs verwaltet.
Haben Sie ein Programm, das Sie auf dem Pool rechnen lassen möchten,
so müssen Sie sich an einen Rechner mit einer Condor-Installation
einloggen. Eine Möglichkeit ist zum Beispiel der
Windows-Terminalserver NWZHome oder der Linux-Terminalserver NWZLinux
der IVV-Naturwissenschaften.
Haben Sie sich eingeloggt müssen Sie zunächst einen Submit Description
File schreiben. In diese Datei schreiben Sie alle wichtigen
Informationen über den Job (auszuführende Datei, benötigtes OS,
Arbeitsspeicher, ...) .
Zum Schluß geben Sie den Job nur noch frei (submitten ihn) und Condor
kümmert sich um alles weitere.
Condor sucht nun automatisch einen Computer auf dem der Job gerechnet
werden kann. Ist ein Computer frei (unclaimed) so wird der Job
umgehend gestartet. Alle für den Job wichtigen Dateien werden auf den
Computer herüber kopiert und das Programm (Executable) gestartet.
Loggt sich ein Benutzer auf dem Computer, auf dem gerade ein Job läuft
ein, wird der Job sofort zurückgestellt (suspended) um dem User vor
Ort die volle Performance zu gewährleisten. Verlässt der Benutzer
diesen Computer, startet Condor den zurückgestellten Job wieder, und
zwar an der Stelle, an der dieser unterbrochen wurde.
Ist der Job schließlich beendet kopiert Condor alle Dateien, die von
der Executable produziert wurden, in das Verzeichnis zurück, von dem
aus der Job abgeschickt (submittet) wurde.
%%IML: ivvnwz@nwz.uni-muenster.de
%%SRC: uebersicht.html
Links zu Condor
http://www.cs.wisc.edu/condor/ - Offizielle Homepage von Condor
http://lists.cs.wisc.edu/archive/condor-users/ - Beiträge der
mailing-list
http://www.cs.wisc.edu/condor/manual/ - Offizielles Manual zu Condor
Vortraege
2004
Projekt Morfeus: Erschließung ungenutzter Ressourcen zum
Number-Crunching
2005
Arbeitsplätze als Rechenfarm (IT Symposium 2005, Neuss)
Arbeitsplätze als Rechenfarm (BFG Workshop, Freiburg)
Kontakt
Bei Fragen wenden Sie sich bitte per email an: Thomas Bauer
(tombauer@nwz.uni-muenster.de)
%%SRC: links.html
Willkommen auf der Morfeus-Projekt-Homepage der IVV-Naturwissenschaften
* Haben Sie ein Programm, das eine Berechnung durchführt, die
möglicherweise einige Stunden dauert?
* Eventuell wollen sie dieses Programm auch noch mehrmals mit
verschiedenen Parametern ausführen?
* Damit ist stundenlange Wartezeit vorprogrammiert!
* Gleichzeitig stehen fast überall Computer, die nicht dauerhaft
benutzt werden. Besonders nachts geht somit wertvolle Rechenzeit
verloren.
Es ist das Ziel von Morfeus diese ungenutzte Rechenpower der
IVV-Naturwissenschaften für deren Mitglieder nutzbar zu machen.
Besonders Benutzer von Linux, MacOS, Tru64 UNIX (ALPHA OSF/1) und
Windows sind angesprochen.
Den aktuellen Status des Morfeus-Pools finden Sie hier.
%%SRC: index.html
F.A.Q.
_________________________________________________________________
Warum startet mein job nicht?
Zuerst sollte man condor_q -analyze ausführen. Oft steht dort schon,
warum der job nicht startet.
Ich habe einen Windows-Job. Dieser startet nicht, obwohl genügend
Rechner zum Rechnen frei sind.
Condor unterscheidet zwischen allen Windows-Versionen. Wenn Sie zum
Beispiel auf einem WinXP-Computer einen job starten, wird dieser nicht
ohne weiteres auf einem Win2000-Computer starten. Fügen Sie
beispielsweise diese Zeile in die Job Subscription File hinzu:
Requirements = (OpSys == "WINNT50")||(OpSys == "WINNT51")
Der Job kann nun auf einem XP- oder 2000-Rechner gestartet werden.
Wie bekomme ich heraus, auf welchem Computer mein Job gerade gerechnet
wird?
Durch den Befehl condor_q -run
Ich konnte Morfeus bisher immer ohne Probleme benutzen. Doch seit
kurzem starten die Jobs nicht mehr. Sie verbleiben im Status idle und
die log-Datei schreibt lediglich etwas wie "000 (072.000.000) 05/04
10:25:11 Job submitted from host: "
Haben Sie kürzlich Ihr Passwort geändert? Falls ja, so müssen sie auf
dem Computer, von dem Sie submitten einmal "condor_store_cred delete"
und danach wieder "condor_store_cred add" ausführen um Condor Ihr
neues Passwort mitzuteilen.
Mein Programm benutzt Routinen aus der IMSL-Bibliothek und läuft lokal
einwandfrei. Wenn ich dieses Programm aber auf dem Morfeus-Pool laufen
lasse, kommt es zu Fehlermeldungen.
Programme, die die IMSL-Bibliothek nutzen, benötigen zur Laufzeit den
Zugriff auf eine gültige Lizenz-Datei.
Kopieren Sie dazu die Datei
N:\Software\Programming\Intel\IMSL50\Fortran\IA32\LICENSE\LICENSE.DAT
in Ihr Arbeitsverzeichnis.
Fügen Sie dann die Zeilen
transfer_input_files=LICENSE.DAT
environment=LM_LICENSE_FILE=LICENSE.DAT
in Ihre Job Submission File ein.
Zusätzlich muss ihr Programm statisch mit der IMSL gelinkt sein, damit
es auf dem Morfeus-Pool läuft. Benutzer des Intel Fortran Compilers
müssen daher mit den folgenden Switches Compilieren und Linken:
ifort %f90FLAGS% myIMSLprog.f90 %LINK_F90_STATIC%
Jetzt können Sie den Job ganz normal submitten.
Wie lösche ich einen eigenen Job aus der Queue?
Man muss zwischen zwei Fällen unterscheiden:
* Falls der Job von dem Computer aus gelöscht werden soll, von dem
der Job auch gestartet wurde, führen Sie aus:
condor_rm ID
* Falls der Job hingegen von einem anderen Computer aus gelöscht
werden soll, führen Sie aus:
condor_rm -name COMPUTERNAME ID
Dabei steht ID für die Job-ID, also die Zahl, die dem Job zugeordnet
wurde. Diese Zahl bekommen Sie durch condor_q heraus.
COMPUTERNAME steht für den Namen des Computers. Den Namen des
Computers, von dem aus Sie den Job abgeschickt haben, können Sie durch
condor_q -global erfahren. Nachdem Sie das Kommando ausgeführt haben,
ist der Name des Computers in der Zeile -- SCHEDD: aufgeführt.
Bei weiteren Fragen wenden Sie sich bitte per email an: Thomas Bauer
(tombauer@nwz.uni-muenster.de)
%%SRC: faq.html
lx/ziv.sub lx/Makefile
Linux
True64 UNIX
MacOS
Win*
...
TODO Artikel s.o. Condor usw. + einige Rue zitieren (D-Grid + Stack + Grid-Wissensch+ HPC)