Ein erstes Beispiel

Anhand dieses Beispiels sollten eigentlich schon alle wichtigen Schritte zum Starten eines Jobs auf dem Condor-Pool geklärt werden. Bei weiteren Fragen beachten Sie bitte die Kurzanleitung, das offizielle Handbuch und die FAQ.

Der Job

Als Beispielprogramm verwenden wir hier ein ganz simples Gruß-Programm, geschrieben in Fortran. Natürlich sollte man in Wirklichkeit nur solche Programme in das Morfeus-Grid schicken, die viel Rechenzeit benötigen (und auch etwas Sinnvolles tun...).

gruss.f90:

program gruss
   Implicit None
   Character(Len=80) :: name
   Write (*,*) "Bitte geben Sie Ihren Namen ein:"
   Read (*,*) name
   Write (*,*) "Hallo, ", trim(name)
end

Das Programm wurde unter Windows ganz normal mit dem 32-Bit-Compiler kompiliert und liegt jetzt unter I:\Documents\gruss\gruss.exe . Von dort aus könnten wir es jetzt wie üblich lokal ausführen. Stattdessen wollen wir aber das Morfeus-Grid zum Einsatz bringen.

Schritt 1 - Einen geeigneten Rechner zum Abschicken wählen

Zum Abschicken des Jobs kann man jeden Rechner verwenden, der Teil des Morfeus-Grids ist, also auch seinen eigenen Arbeitsplatzrechner. Wichtig ist aber, dass der Rechner so lange läuft, bis die Jobs abgeschlossen sind. Schaltet man den Rechner ab, werden auch die von dort abgeschickten Jobs abgebrochen, auch wenn sie auf einem ganz anderen Rechner laufen. Gegebenenfalls sollte man sich also einen geeigneteren Rechner suchen.

Schritt 2 - Eine Eingabedatei schreiben

Falls der Job üblicherweise Eingaben von der Tastatur erwartet, so wie unser Programm oben, schreibt man diese stattdessen in eine Textdatei und legt sie in dasselbe Verzeichnis wie die Programmdatei. Wir legen also eine Datei I:\Documents\gruss\eingabe.txt mit dem Inhalt

Fritzchen

an. Liest das Programm seine Eingaben ohnehin aus einer Datei oder benötigt gar keine Eingaben, fällt dieser Schritt natürlich weg. Es ist nicht notwendig, eine leere Datei anzulegen.

Ab hier gibt es zwei Möglichkeiten: Die Nutzung einer graphischen Oberfläche oder die Steuerung von Morfeus über die Kommandozeile.

Möglichkeit 1 (Nutzung von Morfeus über eine graphische Oberfläche):

Schritt 3 - MorfeusConsole starten

Die Jobs im Morfeus-Grid lassen sich mit dem Programm "MorfeusConsole" verwalten. Wir starten das Programm aus dem Start-Menü (Unterpunkt "Programmierung"):

Bildschirmfoto 2015-04-30 Um 21.35.png

Schritt 4 - Jobbeschreibung anlegen

Wir legen eine neue Jobbeschreibung an und wählen als Arbeitsverzeichnis das Verzeichnis, in dem unser Programm liegt (I:\Documents\gruss):

Bildschirmfoto 2015-04-30 Um 21.49.png

Schritt 5 - Einstellungen vornehmen

Wir müssen jetzt noch einige Einstellungen vornehmen. Der Name der auszuführenden Datei stimmt bereits, aber die Eingabedatei, die wir in Schritt 2 erstellt haben, muss noch angegeben werden. Dazu doppelklicken wir auf die Zeile "Standardeingabe" und geben dann den Dateinamen "eingabe.txt" ein bzw. wählen ihn über den Knopf "Auswählen" aus.
Die Ausgabe des Programms soll nicht unter "gruss.out", sondern unter "ausgabe.txt" gespeichert werden, also ändern wir auch diesen Eintrag per Doppelklick.
Da wir ein 32-Bit-Programm erstellt haben, das sowohl auf 32-, als auch auf 64-Bit-Maschinen lauffähig ist, können wir zum Schluss noch die Einstellung zur Architektur entsprechend ändern.
Unser simples Programm hat keine weiteren Anforderungen an Arbeits- oder Plattenspeicher.

Bildschirmfoto 2015-04-30 Um 21.39.png

Schritt 6 - Job abschicken

Jetzt muss der Job nur noch per Klick auf den "Job starten"-Knopf ins Grid übertragen werden:

Bildschirmfoto 2015-04-30 Um 21.51.png

Wenn Sie zum ersten Mal von diesem Rechner aus einen Job abschicken oder kürzlich Ihr Kennwort geändert haben, wird die MorfeusConsole Sie noch nach Ihrem Kennwort fragen, da dieses benötigt wird, um die Jobs ins Grid zu übertragen.

Schritt 7 - Status des Jobs überprüfen

Per Klick auf "Jetzt aktualisieren" können wir jetzt den Status des Jobs überprüfen. Je nachdem, wie sehr das Grid ausgelastet ist, wird der Job sich zuerst im Zustand "I (wartet)" befinden. Sobald eine passende Maschine für den Job gefunden wurde, wechselt der Status zu "R (läuft)". Sobald der Job absgeschlossen ist, verschwindet er aus der Liste. Sofern Sie dies nicht in Schritt 5 abgeschaltet haben, erhalten Sie zu diesem Zeitpunkt auch eine E-Mail.

Bildschirmfoto 2015-04-30 Um 21.54.png

Schritt 8 - Ausgabedatei anschauen

Wenn wir jetzt zurück in unser Arbeitsverzeichnis gehen, finden wir dort die Ausgabedatei "ausgabe.txt" mit dem Inhalt:

Bitte geben Sie Ihren Namen ein:
Hallo, Fritzchen

Das war schon alles!

Möglichkeit 2 (Nutzung von Morfeus über die Kommandozeile):

Schritt 1 und 2 s.o.

Schritt 3 - Konsole öffnen

Wir starten zuerst eine Eingabeaufforderung:

Bildschirmfoto 2015-04-30 Um 21.08.png

Schritt 4 - Jobbeschreibung anlegen

Wir wechseln in das Verzeichnis, in dem unser Programm liegt (I:\Documents\gruss) und erstellen dort eine Datei gruss.sub:

cd I:\Documents\gruss
notepad gruss.sub

Schritt 5 - Einstellungen vornehmen

In diese Datei schreiben wir Folgendes:

universe = vanilla
executable = gruss.exe
input = eingabe.txt
output = ausgabe.txt
log = gruss.log
notification = Complete
request_disk = 102400
request_memory = 100
requirements = ( ((ARCH=="X86_64")||(ARCH=="INTEL")) )

queue 1

Die erste Zeile muss in jeder Jobbeschreibung enthalten sein. Andere "Universen" werden im Morfeus-Grid nicht unterstützt. Die zweite Zeile gibt den Namen unseres Programms an. Die dritte Zeile spezifiziert, dass unsere Eingabedatei "eingabe.txt" heißt. Die Ausgaben des Programms sollen in eine Datei "ausgabe.txt" gespeichert werden. Es soll außerdem eine Log-Datei namens "gruss.log" angelegt werden, in der man später Informationen darüber finden kann, wann und wo der Job gerechnet wurde. Die Zeile darunter aktiviert den Versand von E-Mails, in denen man informiert wird, wenn der Job beendet wurde oder aufgrund eines Fehlers abgebrochen werden musste. Die beiden "request"-Zeilen verlangen für unseren Job mindestens 100MB Plattenspeicher (angegeben in KB) und Arbeitsspeicher (in MB). Da wir ein 32-Bit-Programm erstellt haben, das sowohl auf 32-, als auch auf 64-Bit-Maschinen lauffähig ist, geben wir das in der nächsten Zeile an. Wir möchten nur einen Job rechnen, daher schließen wir die Beschreibungsdatei mit "queue 1" ab.

Schritt 6 - Job abschicken

Jetzt muss der Job nur noch ins Grid übertragen werden. Das funktioniert mit dem Befehl

condor_submit gruss.sub

Wenn Sie zum ersten Mal von diesem Rechner aus einen Job abschicken oder kürzlich Ihr Kennwort geändert haben, wird es eine Fehlermeldung geben, weil Condor Ihr Kennwort noch nicht kennt. Führen Sie dann zuerst den Befehl

condor_store_cred add

aus, geben Sie Ihr Kennwort ein, und schicken Sie den Job dann erneut ab.

Schritt 7 - Status des Jobs überprüfen

Rufen Sie jetzt den Befehl

 condor_q 

auf, um zu sehen, ob der Job schon läuft:

ID OWNER SUBMITTED RUN_TIME ST PRI SIZE CMD
4.0 account 4/30 6:10 00:00:00 I 0 10.0 gruss.exe

Je nachdem, wie sehr das Grid ausgelastet ist, wird der Job sich zuerst im Zustand (Spalte ST) "I" (wartet) befinden. Sobald eine passende Maschine für den Job gefunden wurde, wechselt der Status zu "R" (läuft). Sobald der Job absgeschlossen ist, verschwindet er aus der Liste. Sofern Sie dies nicht in Schritt 5 abgeschaltet haben, erhalten Sie zu diesem Zeitpunkt auch eine E-Mail.

Schritt 8 - Ausgabedatei anschauen

Wenn wir jetzt zurück in unser Arbeitsverzeichnis gehen, finden wir dort die Ausgabedatei "ausgabe.txt" mit dem Inhalt:

Bitte geben Sie Ihren Namen ein:
Hallo, Fritzchen

Das war schon alles!

Übrigens gibt es in der graphischen Oberfläche "MorfeusConsole" auch einen Knopf, mit dem Sie sich eine .sub-Datei für die Kommandozeile generieren lassen können:

Bildschirmfoto 2015-04-30 Um 21.14.png

Auf diese Weise können Sie jederzeit schauen, wie die jeweiligen Einstellungen "per Hand" vorgenommen würden.