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)