2017-09-06 6 views
0

Je veux exécuter différents lots de travaux sur notre piscine HTCondor. Disons 10 emplois de Type1, 20 emplois de Type2 et ainsi de suite. Chacun de ces types de travail devrait obtenir de nouveaux emplois lorsque les travaux en cours sont terminés.Tags de soumission de travail HTCondor

Avec un seul type j'utilise une simple requête si tous les travaux sont terminés ou si la limite de temps pour l'ensemble du lot de travail est passée. Si l'une de ces conditions est remplie, l'itération suivante des travaux x est soumise au cluster.

Cela se fait par une petite fonction (écrit en Lua, ce qui est vraiment important pour la question):

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 

Est-il possible de séparer les emplois de Type1, Type2 et Type3 et vérification eux indépendamment? Actuellement, il vérifie tous les travaux en tant que mon utilisateur actuel. L'ajout d'une étiquette ou d'un élément aux travaux serait idéal, car je pouvais simplement modifier l'appel de vérification. Dans la documentation, je n'ai pas pu trouver quoi que ce soit qui soit facile à ajouter, je pourrais me souvenir des JobID-s, mais ensuite je devrais stocker ceux ajoutant de la complexité.

Répondre

0

Linked Answer

solution pourrait être trouvée dans une autre réponse, je ne trouve pas où il est décrit dans la documentation bien.

Dans le fichier add job.sub:

+YourCustomVarName = 1 
+YourCustomStringName = "String" 

Pour vérifier contre utiliser:

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

ou

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

(traitement des citations peut varier)