2017-09-06 5 views
0

Ich möchte verschiedene Chargen von Jobs auf unserem HTCondor Pool ausführen. Sagen wir 10 Jobs vom Type1, 20 Jobs vom Type2 und so weiter. Jeder dieser Jobtypen sollte neue Jobs erhalten, wenn die aktuellen Jobs beendet sind.HTCondor Job Submission Tags

Mit nur einem Typ verwende ich eine einfache Abfrage, wenn alle Jobs beendet sind oder wenn das Zeitlimit für den gesamten Job-Batch überschritten wurde. Wenn eine dieser Anforderungen erfüllt ist, wird die nächste Iteration von x-Jobs an den Cluster gesendet.

Dies wird durch eine kleine Funktion (geschrieben in Lua, die für die Frage nicht wirklich wichtig ist) getan:

function WaitForSims(CheckupDelay) 
    while io.popen([[condor_q -format "%d\n" clusterid]]):read('*all'):len()~=0 do 
     os.execute("echo Checkup timestamp: "..os.date("%x %X")) 
     os.execute(string.format("timeout %d 1>nul",CheckupDelay)) 
    end 
end 

Gibt es eine Möglichkeit, die Arbeitsplätze von Typ1, Typ2 und Typ3 und Kontrolle zu trennen sie unabhängig? Derzeit prüft es für alle Jobs als mein aktueller Benutzer.

Das Hinzufügen eines Tags oder etwas zu den Aufträgen wäre ideal, da ich einfach den Prüfaufruf ändern könnte. In der Dokumentation konnte ich nichts finden, was einfach hinzuzufügen ist, ich konnte mich an die JobID-s erinnern, aber dann muss ich diejenigen speichern, die mehr Komplexität hinzufügen.

Antwort

0

Linked Answer

Lösung in einer anderen Antwort gefunden werden kann, fand ich nicht, wo es aber in der Dokumentation beschrieben ist.

In der job.sub Datei hinzufügen:

+YourCustomVarName = 1 
+YourCustomStringName = "String" 

Für dagegen Überprüfung verwenden:

condor_q -constraint 'YourCustomVarName == 1' -f "%s" JobStatus 

oder

condor_q -constraint "YourCustomStringName == \"String\"" -f "%s" JobStatus 

(Umgang mit Zitaten variieren)

Verwandte Themen