à l'exclusion des nœuds de commande qsub en vertu de la sge
J'ai plus de 200 emplois dont j'ai besoin pour soumettre et sge cluster. Je vais les présenter en deux ques. L'une des ques ont une machine que je ne veux pas soumettre des travaux à l'. Comment puis-je exclure cette machine? La seule chose que j'ai trouvé qui pourrait être utile est (en supposant que les trois valide les nœuds disponibles à t1 et à tous les nœuds disponibles pour les t2 sont valables):
qsub -q q1.q@n1 q1.q@n2 q1.q@n3 q2.q
OriginalL'auteur Yotam | 2012-12-13
Vous devez vous connecter pour publier un commentaire.
En supposant que vous ne voulez pas exécuter, il est appelé n4 puis
en ajoutant ce qui suit à votre script devrait fonctionner.
Merci. Comment pouvez-vous faire cela pour deux noms d'hôtes?
#$ -l h=!n4 h!=n5
ou#$ -l h!=n4,n5
ne fonctionnent pash=!h4&!h5 ou h=!(h4|h5) devrait le faire.
-l h='!n4'
pour moi.OriginalL'auteur William Hay
Le meilleur moyen que j'ai trouvé pour ce est de mettre en place une ressource personnalisée sur les nœuds que vous souhaitez afin de permettre l'exécution sur, puis exiger que des ressources lorsque vous soumettez le travail.
Dans qmon, passez à le "complexe" de la configuration et ajouter un nouvel attribut. Définir le nom à quelque chose comme "my_allowed" et le raccourci vers quelque chose comme "m_a", le type BOOL, le rapport à l' ==, requestable Oui, consommable ou Pas, et "Ajouter". Enregistrer vos modifications dans les configurations complexes.
La prochaine étape est probablement plus facile à faire à partir de la ligne de commande, mais vous pouvez le faire en qmon. Vous devez ajouter vos consommables pour chaque hôte que vous allez permettre à votre travail à exécuter sur. Dans qmon, vous pouvez aller à la configuration de l'hôte, sélectionnez l'exécution de l'hôte, et d'ouvrir chaque hôte, à son tour, en cliquant sur les consommables/fixe onglet attributs et en ajoutant le nouveau complexe que vous venez de configurer ci-dessus avec un "Vrai" comme valeur. À partir de la ligne de commande, vous pouvez obtenir une liste de vos exécution hôtes avec "qconf -sel". Cette liste est adaptée pour passer à une boucle et grepping l'hôte(s) que vous ne voulez pas inclus. Faire quelque chose comme ceci:
Cela vous permet de modifier par programmation de l'hôte (normalement interdit par qconf comme il veut démarrer votre éditeur pour vous). Il le fait par la mise à l'éditeur de "ed" (vous devrez assurez-vous d'avoir l'éditeur installé... essayer de l'exécuter à la main... tapez "q" pour sortir). ed prend la liste des commandes d'édition sur stdin, de sorte que nous lui donnons trois commandes. Le premier modifie la ligne avec le complex_values sur elle pour inclure le my_test valeur. Le deuxième écrit le fichier temporaire et le troisième se ferme ed.
Une fois que vous avez fait cela, présenter vos travaux dans la limite d'une option qui nécessite votre nouveau complexe:
L'option-l définit une limite et la my_test=True indique que la tâche ne peut s'exécuter sur des machines qui ont le complexe my_test avec une valeur de Vrai. Étant donné que l'immeuble n'est pas consommable, il peut toujours courir autant d'emplois sur chaque hôte comme il veut (jusqu'à l'emplacement de la limite pour les hôtes), mais elle permettra d'éviter tous les hôtes qui n'ont pas le my_test complexe définie sur True.
OriginalL'auteur jlp
Il y a une belle contournement de à ce.
Générer un simple fichier bash:
soumettre cet emploi du nœud que vous souhaitez exclure jusqu'à ce qu'ils occupent.
Wuala, votre noeud est exclure.
OriginalL'auteur Yotam