Condor

Condor ist ein Batch-System, mit dessen Hilfe rechenintensive Prozesse ausgeführt werden, sobald die benötigten Resourcen zur Verfügung stehen. Es ist also ungeeignet für zeitkritische Berechnungen.

Eine genaue Beschreibung findet sich auf der offiziellen Projektseite von Condor: http://research.cs.wisc.edu/condor.

Diesem Artikel basiert auf der Condor Version 7.6.4.

Hinweise zur Installation

  • Die Installation unter Debian ist hier beschrieben.
  • Java Pfad konfigurieren
    • Um in Java geschriebene Jobs ausführen zu können, muss in der Condor Konfiguration der Pfad zu Java eingetragen werden

Nützliche Kommandos

condor_submit <SUBMIT_DESCRIPTOR_FILE> neuen Job in Queue zur Abarbeitung geben
condor_q Aktuelle Queue/Jobs (inkl. Prozess-ID) auflisten
condor_q -analyze <PROCESS_ID> Statusdetails eines Jobs zu einer angegebenen Prozess-ID anzeigen
condor_rm <PROCESS_ID> Job mit angegebener Prozess-ID aus Queue entfernen

Beispiel

Voraussetzung für die Ausführung eines Jobs ist ein Beschreibungsdatei, welche im folgenden anhand eines Java-Jobs beschrieben wird.

##################################################################################
# Beispiel für einen Java-Job                                                    #
#                                                                                #
# 'universe' muss auf 'java' konfiguriert werden                                 #
# 'executable' Pfad zur Java-Klasse                                              #
# 'arguments' enthält als ersten Parameter den Klassennamen,                     #
#   danach ggf. die Parameter                                                    #
##################################################################################

universe       = java
executable     = jobs/Example.class
arguments      = Example
error          = logs/Example.error.$(Process)
input          = logs/Example.input.$(Process)
output         = logs/Example.output.$(Process)
log            = logs/Example.log
queue

Im Filesystem sieht das Ganze wie folgt aus:

.
  /jobs
    Example.class
  /logs
    Example.log
    Example.error.0
    Example.input.0
    Example.output.0