SGE Sun Grid Engine

Dieser Dienst ist eingestellt

Was ist die Sun Grid Engine und wer darf sie benutzen

Die Sun Grid Engine ist ein sogennantes Batchsystem, d.h. Die es können Aufgaben (Jobs) an die Gridengine geschickt werden und dieses sorgt dann dafür die Aufgabe bestmöglich und nach vordefinierten Regeln auf einem oder mehreren Rechnern im Netz auszuführen.

Grundsätzlich ist die SGE für alle Studenten und Mitarbeiter des Informatikinstituts da. Es ist auch keine weitere Anmeldung erforderlich, wichtig ist nur dass man sich dem Projekt “Stud” zuordnet.

Grundsätzlich gibt es keine Beschränkungen wann man Jobs submiten kann und auf welchen Rechnern man diese laufen lassen möchte. Allerdings führt die SGE keine neuen Jobs auf Rechnern aus auf denen ein User angemeldet ist. Jobs die schon laufen werden während ein User anwesend ist angehalten. Dieses Verhalten weisen die Rechner in der Amalienstr. (Luna) immer auf. Alle anderen Rechner verhalten sich so nur zwischen 8:00 und 22:00. Das bedeutet dass man in der Nacht während das Gebäude in der Oettingenstr. geschlossen ist SGE Jobs auf Rechnern laufen lassen kann auch falls dort noch ein User angemeldet ist.

Wie funktioniert die Sun Grid Engine

Die Sun Grid Engine gliedert sich in fünf Betriebseinheiten:

Erstere sind die Rechenknoten, auf denen die Jobs tatsächlich ausgeführt werden (das sind im allgemeinen nur die leistungsstärkeren Rechner eines Netzes).

Die Submit-Hosts dagegen sind die Rechner, von denen aus es möglich ist Anfragen an das System zu stellen, also Rechenjobs abzugeben (zu submitten).

Die Admin-Hosts stehen den Administratoren und entsprechend privilegierten Benutzern zur Verfügung um Änderungen an der Sun Grid Engine vorzunehmen, also ihre Konfiguration zu verwalten.

Der Master-Host schließlich verwaltet die Rechenressourcen der Engine (bei uns: himalia). Ihm melden die angeschlossenen Execution-Hosts im 40 Sekundentakt ihren aktuellen Auslastungszustand. Anhand dieser Informationen verteilt der Master-Host dann eingehende Rechenjobs auf die freien Rechenknoten.

Zuletzt der Shadow-Master-Host, dieser fungiert als backup sollte der Master-Host mal ausfallen. Er springt innerhalb von 10 Minuten ein wenn der Master-Host nicht mehr reagieren sollte.

Gibt es eine grafische Benutzerschnittstelle

Ja, mit dem Befehl qmon startet man die grafische Benutzerschnittstelle, die eine Übersicht über die konfigurierten Rechenressourcen (Queues), die laufenden Jobs, die angeschlossenen Rechner, die Clusterkonfiguration sowie alle anderen für die Grid Engine wichtigen Daten und Konfigurationen gibt. Ausserdem liefert qmon den grafischen Zugang zum Starten und Manipulieren der eigenen Jobs.

Welche Rechner sind angeschlossen

Alle Rechner in den studentischen Arbeitsplatzräumen der Informatik, mit Ausnahme der Clients in Debeb, sind an die Grid Engine angeschlossen.

Wie schickt man Jobs ab

Es gibt prinzipiell zwei Wege einen Job an die Grid Engine zu senden. Zum einen kann man den Job über das Kommandozeilenprogramm qsub abgeben, zum anderen kann man dies auch mit der graphischen Benutzerschnittstelle qmon erledigen.

In beiden Fällen gilt, dass man ein Shell-Skript bereitstellen sollte, das benötigte Parameter setzt,

Hier muss man nun zunächst das Jobskript, das man auszuführen wünscht, auswählen und kann danach noch einige Parameter für die Ausführung festlegen. Die meisten Einstellungen sind hier selbsterklärend, es sei jedoch darauf hingewiesen, das die Checkbox Start Job Immediately nicht bedeutet, dass der Job sofort gestartet werden soll (das wird die Grid Engine ohnehin versuchen, sofern nicht ein Eintrag unter Start At gemacht wurde), sondern vielmehr, das er genau jetzt gestartet werden soll. Ist das z.Zt. nicht möglich, so wird ein Job, für den diese Option gesetzt wurde, gar nicht gestartet. Die Notify Job Option sollte man nur dann verwenden, wenn man einen eigenen Signalhandler implementiert hat, der die Benachrichtigung von einem bevorstehenden Queuesuspend (SIGUSR1) bzw. einem Queueshutdown (SIGUSR2) bearbeitet und ggf. entsprechende Maßnahmen ergreift. Wichtig ist auch sich ein Project auszusuchen um den Job erfolgreich losschicken zu können. Hat man sich dazu nicht extra bei der RBG ein Projekt anlegen lassen, wäre das richtige Projekt, das Projekt “Stud”.

Die Option Current Working Directory setzt das Arbeitsverzeichnis der Grid Engine für den Job auf das Verzeichnis, in dem qmon gestartet wurde. Alle Dateien, die nicht mit vollständigem Pfad angegeben wurden, werden in diesem Verzeichnis gesucht bzw. abgelegt. Dies gilt insbesondere auch für die Dateien, in denen die Grid Engine die Standardausgabe (stdout) sowie Fehlermeldungen (stderr) des Jobs ablegt. Sind diese nicht explizit angegeben, so werden Namen der Form $JOBNAME.o$JOBID für die Ausgabe bzw. $JOBNAME.e$JOBID für die Fehlermeldungen verwendet. Ist Current Working Directory nicht gewählt, werden diese Dateien im Home-Verzeichnis des aufrufenden Benutzers abgelegt. Die ausführende Shell kann auch in Unixschreibweise im Jobskript gesetzt werden, wie im Beispiel oben gesehen. Dann sollte zur Sicherheit eine entsprechende Zeile #$ -S /bin/bash eingefügt werden. Damit wird die Grid Engine auch in ihrer internen Syntax zur Verwendung der Bash-Shell angehalten.

Die wichtigen Punkte auf der Seite Advanced, ist die Queueauswahl sowie die Mailbenachrichtigung. Über die Mailbenachrichtigung kann man einfach konfigurieren, über welche Statuswechsel des Jobs man unter welcher Email-Adresse benachrichtigt werden möchte. Wer die Vergleichbarkeit der Laufzeiten seiner Jobs gewährleisten möchte, der kann hier außerdem die Auswahl der Queues einschränken, in denen der Job gerechnet werden darf. Dazu wählt man sich eine Anzahl äquivalenter Rechner (z.B. die Sun Blades aus MZH 2490). Diese findet man beispielsweise mit: hostcap -s name: “room==MZH 2490” mhz==500 ) aus und und trägt hier die entsprechenden Queues ein. Alle diese Einstellungen lassen sich auch mit dem Kommandozeilenbefehl qsub setzen. Wie der Befehl verwendet wird, liest man in man qsub nach.

Zusätzlich ist es auch möglich mittels der DRMAA Befehle für verschiedenen Programmiersprachen, Jobs direkt aus den eigenen Programmen heraus an die SGE zu schicken. Näheres unter: http://gridengine.sunsource.net/howto/howto.html#DRMAA

Achtung: vor Abschicken des SGE-Jobs wenn man sich nicht vorher bei der RBG ein eigenes Projekt reserviert hat, muss man sich dem Projekt Stud zuweisen.!!!!”

Wie kann ich abgeschickte Jobs bearbeiten

Mit qdel kann ein job wieder gelöscht werden. Näheres: man -M /opt/sge/man qalter/qdel

Was mache ich bei Fehlern

Welche Art von Aufgaben sind fuer die SGE geeignet

Wie schicke ich Blender-Jobs ab

Blender Jobs können bei uns über ein spezielles Script abgeschickt werden, das den Umgang mit der Sun Grid Engine erleichtern soll und auch die Verwendung von DRMAA mit Python demonstriert.

Um mit Hilfe dieses Scripts eine Animation über die SGE rendern zu lassen benutzt man folgenden Befehl im Verzeichnis in der sich das blend-File befindet:

blender -b -P /home/proj/sun_grid_engine/blend_with_sungrid.py

Kommandozeilenbefehle-Uebersicht

Mit der Kommandozeile ist man in der Lage folgende Tasks auszuführen:

Übersicht an Kommandozeilenprogrammen:

~