HTCondor

Aus Physik
Zur Navigation springen Zur Suche springen

Was ist Condor?

Condor ist ein verteiltes Batchsystem, das uns ermöglicht, die am Institut vorhandenen Computer-Resource soweit möglich zu nutzen. Condor unterstützt das High Throughput Computing (HTC), das im Gegensatz zum High Performance Computing (HPC) nicht auf möglichst kurze Antwortzeiten für Einzelaufgaben zielt, sondern die verfügbare Leistung fair und effizient auf alle Benutzer aufteilt.

Weitere Informationen finden Sie in einem älteren Artikel.

Wir haben die nötigen Libraries fürs High Performance Computing zwar installiert, aber unser Computernetz ist für diese Art von Rechnungen nicht optimiert. Besser Sie entwickeln und testen ihre Programme am Institut und verwenden für die produktiven Läufe die dedizierten Cluster des Zentralen Informatikdienstes.

Lizenz

Bei der Benützung von Condor ist die CONDOR PUBLIC LICENSE zu beachten, für uns ist aus Benutzersicht im wesentlichen Punkt 3 von Interesse:

Any academic report, publication, or other academic disclosure of results obtained with this Software will acknowledge this Software's use by an appropriate citation.

Benutzung

Die wichtigsten Befehle sind:

  • condor_status - Status der Rechner im Condor-Pool
  • condor_submit - Starten von Batchjobs
  • condor_q -global - Anzeige der laufenden bzw. wartenden Programme

Leider haben nicht alle Programme der Condor-Suite Manual Pages; aber alle reagieren auf die Option -h mit kurzer Hilfestellung. Sie finden die komplette Dokumentation im Internet - dort gibt es auch das empfehlenswerte Tutorial Using Condor Effectively.

Bitte beachten Sie unbedingt, daß das System nur für Aufgaben ab einer bestimmten Mindestlaufzeit von etwa 10 Minuten effizient arbeitet, weil ein nicht unbeträchtlicher Verwaltungsaufwand zum Starten der einzelnen Jobs anfällt und der File-Server bei kurzen Programmlaufzeiten wesentlich belastet wird.

Effiziente Programme

Neben den allgemeinen Ursachen für ineffizient laufende Programme kommen mit der Verwendung von Batchsystemen einige zusätzliche Punkte:

unpassende Algorithmen 
sind leider manchmal nicht zu vermeiden. Häufig kann auf externe Libraries zurückgegriffen werden, die wesentlich besser optimiert wurden als Selbstgeschriebenes.
Swappen 
Exzessives Auslagern von Daten aus dem Hauptspeicher auf die Festplatte ist eine der schlimmsten Bremsen für die Ablaufgeschwindugkeit ünberhaupt. Geben sie in der Submit-Datei den Speicherbedarf ihres Programms in der Variable ImageSize an, damit Condor einen Rechner mit dem nötigen Resource finden kann. Die verwendete Einheit ist 1MByte. Sie erhalten die notwendige Größe aus top; verwenden sie die Werte aus der Spalte RSS.
Überlastung der File-Server
Durch den Start vieler Instanzen des selben Programms kann es sehr leicht zu einem Engpass auf den Dateiservern kommen. Ein Beispiel aus der Praxis:
Es werden 300 Jobs gestartet, die eine durchschnittliche Laufzeit von 3 Minuten haben und jeweils 2.5 MByte Daten lesen. Ungefähr 75 Prozessoren werden gleichzeitig dieser Aufgabe zugeordnet. Die gesamte Aufgabe ist daher in etwa 12 Minuten vollständig gelöst, dazu mußte der Fileserver ingesamt 750 MByte Daten liefern. Diese Aufgabe benötigt daher allein bereits eine durchschnittliche Datenrate von ungefähr 1 MByte pro Sekunde.
Tatsächlich konzentrieren sich die Zugriffe aber auf den Start des Programms und lasten dabei den Server vollständig aus - 75 Prozesse versuchen gleichzeitig je 2,5 Mbyte aus dem Server zu laden. Unter günstigsten Voraussetzungen liefert der Server 11 MByte pro Sekunde, und es dauert daher mindestens 70 Sekunden bis alle Daten gelesen werden.
Bitte beobachten sie Ihre Programme, damit es nicht notwendig wird, Limits bei der Anzahl gleichzeitig verwendbarer Rechner einzuführen.

Obskure Fehlermeldung: Shadow exception!

Manchmal tritt die Fehlermeldung

   Shadow exception!
   Can no longer talk to condor_starter on execute machine (129.27.xx.xx) 

auf. Weil diese Fehlermeldung häufig mit einem Programmabsturz einhergeht wird verschiedentlich ein falscher Zusammenhang hergestellt -- diese Fehlermeldung ist nicht die Ursache, sondern Folge eines Programmabsturzes: Wenn Jobs sehr kurze Laufzeiten haben, können nicht alle auf einem Rechner laufenden Condor-Prozesse die notwendigen Initialisierungen abschließen, bevor dieser Prozess schon beendet ist.

Ich kann mit einer Serie von Testprogrammen unterschiedlicher Länge dieses Fehlermeldung bei sehr kurzen Prozessen provozieren, trotzdem sind alle Ergebnisse der Testroutinen korrekt. Weitere Hinweise auf ähnliches Verhalten finden sie auch in der Email Liste condor users.


Fehlersuche

Wenn Programme unter Condor abstürzen und keine korrekten oder vollständigen Ergebnisse produzieren, ist praktisch immer ihr Programm daran schuld. Bitte starten Sie ihre Programme dann auch direkt unter Verwendung exakt der selben Parameter und Eingabedaten; dazu kann es notwendig sein, auch den Seed der Zufallszahlengeneratoren einstellbar zu machen.

Alternativen

Einer der unerfreulichen Aspekte der Condor-Lizenz war die Unmöglichkeit, eigene Pakete aus den Sourcen zu erzeugen. Das führt zu Problemen mit installierten Bibliotheken und mangelhaft unterstützten Architekturen (z.B. amd64). Ab der Version 7.1.0 wurden die Sourcen unter der Apache-Lizenz frei verfügbar gemacht, allerdings ist es noch kompliziert und fehleranfällig Condor selbst zu kompilieren, weil das Build-System außergewöhnlich kompliziert und überfrachtet ist. Viele Teile sind außerdem mit modernen Compilern und Bibliotheken nur eingeschränkt kompatibel. Die Ergebnisse einses Versuchs, native Pakete für Debian Linux zu bauen, sind am Webserver des Instituts unter http://itp.tugraz.at/Comp/debian/dists/etch/main/binary-i386/ bzw. http://itp.tugraz.at/Comp/debian/dists/etch/main/source/ zu finden.

Einige mögliche Konkurrenzprodukte zu Condor sind: