Partager via


ajouter un travail

Crée une tâche et l’ajoute au travail spécifié.

Pour obtenir des exemples d’utilisation de cette commande, consultez Exemples.

Syntaxe

job add <jobId> [/depend:<task_name_list>] [/env:<variable_and_value_list>]   
[/exclusive[:{true|false}]] [/name:<task_name>]   
{[/numcores:<min>[-<max>]] | [/numnodes:<min>[-<max>]] |   
[/numprocessors:<min>[-<max>]] | [/numsockets:<min>[-<max>]]}   
[/parametric:<index_specification>] [/requirednodes:<node_list>]   
[/rerunnable[:{true|false}]] [/runtime:{<time>|Infinite}]   
[/scheduler:<name>] [/stderr:[<path>\]<file_name>]   
[/stdin:[<path>\]<file_name>] [/stdout:[<path>\]<file_name>]   
[/taskfile:<path>\<file_name>] [/type:<type_name>]  
[/validexitcodes:{<int>|<intStart>..<intEnd>}[,{<int>|<intStart>..<intEnd>}]*]  
[/workdir:<folder>] <command> [<parameters>]  
  
job add {/? | /help}  
  

Paramètres

Paramètre Description
< > jobID Spécifie l’identificateur du travail auquel vous souhaitez ajouter la tâche.
/depend :<task_name_list> Spécifie une liste d’un ou plusieurs noms de tâches dans le travail spécifié sur lequel dépend la nouvelle tâche. La liste doit avoir un format de <task_name1>[,<task_name2>...]. La nouvelle tâche peut ne pas démarrer tant que toutes les tâches que le paramètre /depend spécifient la fin de l’exécution. Conseil : un seul <task_name> représente une ou plusieurs tâches au sein du travail, dont toutes les <task_name> affectées.
/env :<variable_and_value_list> Spécifie une liste de variables d’environnement à définir dans l’environnement d’exécution de la tâche et les valeurs à affecter à ces variables d’environnement. La liste doit avoir un format de <variable_name1>=<valeur1> [ ;<variable_name2>=<valeur2>...].

Vous pouvez également définir plusieurs variables d’environnement en incluant plusieurs paramètres /env. Chaque argument doit être différent avec un format de <variable_name>=<valeur>.

Pour annuler la définition d’une variable d’environnement, ne spécifiez pas de valeur. Par exemple, <variable_to_unset_name>=.
/exclusive[ :{true|false}] Spécifie si le service du planificateur de travaux HPC doit s’assurer qu’aucune autre tâche ne s’exécute sur le même nœud que cette tâche pendant l’exécution de cette tâche.

La valeur True indique que le service hpC Job Scheduler doit s’assurer qu’aucune autre tâche ne s’exécute sur le même nœud pendant l’exécution de cette tâche.

La valeur False indique que cette tâche peut partager des nœuds de calcul avec d’autres tâches.

Lorsque vous spécifiez le paramètre /exclusive sans valeur, le travail ajouter commande se comporte comme si vous avez spécifié la valeur True. Si vous ne spécifiez pas le paramètre /exclusive, le travail ajouter commande se comporte comme si vous avez spécifié la valeur False.
/name :<task_name> Spécifie un nom à utiliser pour cette tâche dans la sortie de commande et dans l’interface utilisateur. La longueur maximale du nom est de 80 caractères. Ce paramètre n’a aucune valeur par défaut. Conseil : un seul <task_name> représente 1 ou plusieurs tâches au sein du travail, dont toutes les <task_name> affectées. Avertissement : Si cette <task_name> doit être utilisée conjointement avec le paramètre /depend, le <task_name> ne doit pas contenir de virgule ou d’espace.
/numcores :<min>[-<max>] Spécifie le nombre global de cœurs dans le cluster HPC requis par la tâche, au format <>minimale [-<>maximale ]. La tâche s’exécute sur au moins le nombre minimal de cœurs et pas plus que le nombre maximal. Si vous spécifiez une seule valeur, cette commande définit à la fois le nombre maximal et minimal de cœurs sur cette valeur. Si vous spécifiez une valeur minimale qui dépasse le nombre total de cœurs disponibles sur le cluster, une erreur se produit lorsque vous envoyez le travail ou si le travail est déjà envoyé, lorsque vous envoyez la tâche.

Les valeurs minimales et maximales ne peuvent être que des entiers positifs.

/numcores est utilisé uniquement lorsque l’UnitType du travail est de base.

Si vous ne spécifiez pas les/numcores , /numnodes, /numprocessors, ou /numsockets paramètre, le service HPC Job Scheduler alloue un UnitType tel que défini par le travail.
/numnodes :<min>[-<max>] Spécifie le nombre global de nœuds sur le cluster HPC requis par la tâche, au format <>minimale [-<>maximale]. La tâche s’exécute sur au moins le nombre minimal de nœuds et sur pas plus que le nombre maximal. Si vous spécifiez une seule valeur, cette commande définit à la fois le nombre maximal et minimal de nœuds sur cette valeur. Si vous spécifiez une valeur minimale qui dépasse le nombre total de nœuds disponibles sur le cluster, une erreur se produit lorsque vous soumettez la tâche ou le travail qui contient la tâche.

Les valeurs minimales et maximales ne peuvent être que des entiers positifs.

/numnodes est utilisé uniquement lorsque l’UnitType du travail est le nœud.

Si vous ne spécifiez pas les/numcores , /numnodes, /numprocessors, ou /numsockets paramètre, le service HPC Job Scheduler alloue un UnitType tel que défini par le travail.
/numprocessors :<min>[-<max>] Déconseillé. Utilisez plutôt le paramètre /numcores.
/numsockets :<min>[-<max>] Spécifie le nombre global de sockets sur le cluster HPC requis par la tâche, au format <>minimum [-<maximum>]. La tâche s’exécute sur au moins le nombre minimal de sockets et sur pas plus que le nombre maximal. Si vous spécifiez une seule valeur, cette commande définit à la fois le nombre maximal et minimal de sockets sur cette valeur. Si vous spécifiez une valeur minimale qui dépasse le nombre total de sockets disponibles sur le cluster, une erreur se produit lorsque vous envoyez la tâche ou le travail qui contient la tâche.

Les valeurs minimales et maximales ne peuvent être que des entiers positifs.

/numsockets est utilisé uniquement lorsque le UnitType du travail est socket.

Si vous ne spécifiez pas les/numcores , /numnodes, /numprocessors, ou /numsockets paramètre, le service HPC Job Scheduler alloue un UnitType tel que défini par le travail.
/parametric :<index_specification> Indique que la nouvelle tâche est une tâche paramétrique. Une tâche paramétrique exécute la commande spécifiée plusieurs fois, en remplaçant la valeur d’index actuelle pour les astérisques (*) dans la ligne de commande. L’astérisque est également substitué lorsqu’il est spécifié dans le /stdin, /stdoutet /stderr paramètres. La spécification d’index de ce paramètre définit le comportement de la valeur d’index. Le format de la spécification d’index est [<start>-]<end>[ :<incrément>].

La valeur d’index actuelle commence à l’index de départ et augmente par la valeur d’incrément chaque fois que la commande s’exécute. Lorsque l’index actuel dépasse l’index de fin, la tâche cesse d’exécuter la commande.

L’index de départ doit être inférieur à l’index de fin, et la valeur d’incrément doit être un entier positif. Si vous ne spécifiez pas de valeur d’incrément, la valeur par défaut est 1. Si vous ne spécifiez pas de valeur de début, la valeur par défaut est 1. Si vous spécifiez une valeur d’incrémentation, vous devez également spécifier une valeur de début.

À compter de Microsoft HPC Pack 2008 R2, si vous spécifiez le paramètre /type avec une valeur autre que ParametricSweep, vous ne pouvez pas également spécifier le paramètre /parametric.
/requirednodes :<node_list> Spécifie une liste de nœuds sur lesquels la tâche doit s’exécuter, dans un format de <node1_name>[,<node2_name>...]. Le service hpC Job Scheduler alloue exclusivement tous les nœuds de cette liste pour exécuter la tâche.
/rerunnable[ :{true|false}] Spécifie si le service du planificateur de travaux HPC tente de réexécuter la tâche si la tâche s’exécute et échoue.

La valeur True indique que le service hpC Job Scheduler peut tenter de réexécuter la tâche si la tâche est préemptée ou si elle échoue en raison d’un problème de cluster, tel qu’un nœud devient inaccessible. Le planificateur de travaux n’essaie pas de réexécuter les tâches qui s’exécutent à la fin et retournent un code de sortie non réussi.

La valeur False indique que le service hpC Job Scheduler ne doit pas tenter de réexécuter la tâche si la tâche commence, mais n’est pas terminée en raison de problèmes de préemption ou de cluster. Au lieu de cela, il doit déplacer la tâche vers l’état d’échec immédiatement.

L’administrateur de cluster peut configurer le nombre de fois où le service hpC Job Scheduler tente de réexécuter une tâche avant de déplacer la tâche vers l’état d’échec.

Si vous ne spécifiez pas le paramètre /rerunnable, la commande se comporte comme si vous avez spécifié la valeur True.
/runtime :{<heure>|Infini} Spécifie la durée maximale pendant laquelle la tâche doit s’exécuter. Une fois la tâche exécutée pendant ce délai, le service du planificateur de travaux HPC annule la tâche. Vous spécifiez la durée dans un format [[<jours>:]<heures>:]<minutes>. Vous pouvez également spécifier Infinite pour indiquer que la tâche peut s’exécuter pendant une durée illimitée.

Si vous spécifiez une seule partie du format [[<jours>:]<heures>:]<format> minutes, la commande interprète la valeur spécifiée comme le nombre de minutes. Par exemple, 12 indique 12 minutes. Si vous spécifiez deux parties du format, la commande interprète la partie gauche en tant qu’heures et la partie droite sous forme de minutes. Par exemple, 10:30 indique 10 heures et 30 minutes.

Vous pouvez utiliser un ou plusieurs chiffres pour chaque partie du format. La valeur maximale de chaque partie est de 2 147 483 647. Si vous ne spécifiez pas le paramètre /runtime, la valeur par défaut est Infinite.
/scheduler :<nom> Spécifie le nom d’hôte ou l’adresse IP du nœud principal du cluster qui contient le travail auquel vous souhaitez ajouter la tâche. La valeur doit être un nom d’ordinateur ou une adresse IP valide. Si vous ne spécifiez pas le paramètre /scheduler, cette commande utilise le planificateur sur le nœud principal spécifié par la variable d’environnement CCP_SCHEDULER.
/stderr :[ chemin d’accès<>\]<file_name> Spécifie le nom du fichier vers lequel la tâche doit rediriger le flux d’erreur standard, y compris le chemin complet ou le chemin d’accès relatif au répertoire de travail du fichier si la tâche ne doit pas rediriger le flux d’erreur standard vers un fichier du répertoire de travail. Si vous spécifiez un chemin qui n’existe pas, la tâche échoue.

Si vous ne spécifiez pas le paramètre /stderr , la tâche stocke jusqu’à 4 kilo-octets (Ko) de données dans la base de données pour le service hpC Job Scheduler que la propriété Output de la tâche spécifie. Toute sortie supérieure à 4 Ko est perdue.

La longueur maximale de cette valeur pour ce paramètre est de 160 caractères.
/stdin :[ chemin d’accès<>\]<file_name> Spécifie le nom du fichier à partir duquel la tâche doit recevoir une entrée standard, y compris le chemin d’accès complet ou le chemin d’accès relatif au répertoire de travail du fichier si la tâche ne doit pas recevoir d’entrée standard d’un fichier dans le répertoire de travail. Si vous spécifiez un fichier ou un chemin qui n’existe pas, la tâche échoue.

La longueur maximale de cette valeur pour ce paramètre est de 160 caractères.
/stdout :[ chemin d’accès<>\]<file_name> Spécifie le nom du fichier vers lequel la tâche doit rediriger la sortie standard, y compris le chemin complet ou le chemin d’accès relatif au répertoire de travail du fichier si la tâche ne doit pas rediriger la sortie standard vers un fichier dans le répertoire de travail. Si vous spécifiez un chemin qui n’existe pas, la tâche échoue.

Si vous ne spécifiez pas le paramètre /stdout, la tâche stocke jusqu’à 4 kilo-octets (Ko) de données dans la base de données pour le service hpC Job Scheduler spécifié par la propriété output Output pour la tâche. Toute sortie supérieure à 4 Ko est perdue.

La longueur maximale de cette valeur pour ce paramètre est de 160 caractères.
/taskfile : chemin d’accès<>\<file_name> Spécifie le nom d’un fichier XML de tâche à partir duquel lire les paramètres de la tâche, y compris le chemin complet ou relatif du fichier si le fichier n’est pas dans le répertoire actif. Vous devez spécifier un fichier XML de tâche pour le paramètre /taskfile qui inclut une valeur pour l’attribut CommandLine, ou spécifier un nom de commande ou un nom d’application et des paramètres facultatifs.
/type :<type_name> Spécifie un type pour la tâche, qui définit comment exécuter la commande pour la tâche. Voici les types que vous pouvez spécifier :

Basique-
Exécute une instance unique d’une application série ou d’une application MPI (Message Passing Interface). Une application MPI s’exécute généralement simultanément sur plusieurs cœurs et peut s’étendre sur plusieurs nœuds.

NodePrep -
Exécute une commande ou un script sur chaque nœud de calcul tel qu’il est alloué au travail. La tâche de préparation du nœud s’exécute sur un nœud avant toute autre tâche du travail. Si la tâche de préparation du nœud ne parvient pas à s’exécuter sur un nœud, ce nœud n’est pas ajouté au travail.

NodeRelease -
Exécute une commande ou un script sur chaque nœud de calcul tel qu’il est libéré du travail. Les tâches de mise en production de nœud s’exécutent lorsque le travail est annulé par l’utilisateur ou par une préemption appropriée. Les tâches de mise en production de nœud ne s’exécutent pas lorsque le travail est annulé par une préemption immédiate.

ParametricSweep -
annule une commande un nombre spécifié de fois, comme indiqué par les valeurs Start, End et Increment, généralement entre les fichiers d’entrée et de sortie indexés. Les étapes du balayage peuvent ou non s’exécuter en parallèle, en fonction des ressources disponibles sur le cluster HPC lorsque la tâche est en cours d’exécution. Lorsque vous spécifiez le type ParametricSweep, vous devez utiliser le paramètre /parametric pour spécifier les valeurs de début, de fin et d’incrémentation pour l’index. Si vous n’utilisez pas paramètre /parametric, la commande s’exécute une fois avec un index de 0.

Service-
Exécute une commande ou un service sur toutes les ressources affectées au travail. De nouvelles instances de la commande démarrent lorsque les nouvelles ressources sont ajoutées au travail, ou si une instance en cours d’exécution se ferme et si la ressource utilisée précédemment est toujours allouée au travail. Une tâche de service continue de démarrer de nouvelles instances jusqu’à ce que la tâche soit annulée, que la durée d’exécution maximale expire ou que le nombre maximal d’instances soit atteint. Une tâche de service peut créer jusqu’à 1 000 000 tâches subordonnées. Les tâches que vous envoyez via un client d’architecture orientée service (SOA) s’exécutent en tant que tâches de service. Vous ne pouvez pas ajouter une tâche de base ou une tâche de balayage paramétrique à un travail qui contient une tâche de service.

La valeur par défaut de ce paramètre est De base, sauf si vous spécifiez également le paramètre /parametric. Si vous spécifiez le paramètre /parametric, la valeur par défaut du paramètre /type est ParametricSweep.

Si vous spécifiez le paramètre /type avec une valeur autre que ParametricSweep, vous ne pouvez pas également spécifier le paramètre /parametric.

Ce paramètre a été introduit dans HPC Pack 2008 R2 et n’est pas disponible dans les versions précédentes.
/validexitcodes :{<int>|<intStart>..<intEnd>}[,{<int>|<intStart>..<intEnd>}]* Spécifie les codes de sortie de tâche valides à utiliser pour vérifier si une tâche se ferme correctement. /validexitcodes doivent être spécifiés par des entiers discrets et des plages entières séparées par des virgules.

min et max peuvent être utilisés comme début ou fin d’une plage. Par exemple, 0..max représente tous les entiers non négatifs.

S’il n’est pas défini, /validexitcodes hérite de sa valeur du paramètre /validexitcodes du travail. Si aucun des deux n’est défini, la valeur par défaut est 0. Remarque : Ce paramètre a été introduit dans HPC Pack 2012 et n’est pas pris en charge dans les versions précédentes.
/workdir :<dossier> Spécifie le répertoire de travail sous lequel la tâche doit s’exécuter.

La longueur maximale de cette valeur pour ce paramètre est de 160 caractères.
<commande> [ paramètres<>] Spécifie la ligne de commande de la tâche, y compris la commande ou le nom de l’application et tous les paramètres nécessaires.

Sauf si elle est définie dans un fichier /taskfile fichier XML de tâche, une commande doit exister pour que la tâche soit ajoutée. La commande est exécutée par rapport au répertoire de travail, sauf s’il contient un chemin complet.
/? Affiche l’aide à l’invite de commandes.
/Aide Affiche l’aide à l’invite de commandes.

Remarques

  • Vous pouvez ajouter des tâches aux travaux que vous n’avez pas encore envoyés, les travaux que vous avez envoyés et qui sont actuellement en attente dans la file d’attente, les travaux qui sont déjà en cours d’exécution ou les travaux qui ont échoué ou qui ont été annulés.

  • Vous ne pouvez pas ajouter de tâches à un travail terminé.

  • Lorsque vous ajoutez une tâche à un travail en attente dans la file d’attente ou en cours d’exécution, et que les ressources allouées au service planificateur de travaux HPC allouées au travail sont disponibles, la tâche commence à s’exécuter.

  • À compter de Microsoft HPC Pack 2008 R2, vous pouvez spécifier que les astérisques (*) dans la ligne de commande d’une tâche paramétrique ne doivent pas être remplacés par la valeur actuelle de l’index paramétrique en précédant l’astérisque avec trois caractères (^). Par exemple, si vous utilisez le travail ajoutez commande pour créer une tâche paramétrique et que vous spécifiez la ligne de commande comme écho *, la tâche imprime les valeurs de l’index paramétrique. Si vous utilisez plutôt la tâche ajouter commande pour créer une tâche paramétrique et que vous spécifiez la ligne de commande comme écho ^^^*, la tâche imprime un astérisque pour chaque valeur de l’index paramétrique.

Exemples

Pour ajouter une nouvelle tâche nommée My Task au travail avec un identificateur de travail de 39, qui exécute le programme hostname.exe, a un répertoire de travail du partage \\headnode\output et redirige la sortie standard vers un fichier nommé hostname.out dans le répertoire de travail, utilisez la commande suivante :

job add 39 /name:"My Task" /workdir:\\headnode\output share /stdout:"hostname.out" hostname.exe  

Pour ajouter une nouvelle tâche de préparation de nœud au travail avec un identificateur de travail de 47 qui exécute la commande ver, tapez :

job add 47 /type:NodePrep ver  

Pour ajouter une nouvelle tâche paramétrique nommée Tâche de balayage au travail avec un identificateur de travail de 25, qui exécute une série de commandes echo * pour un index qui commence à 10 et augmente de 2 jusqu’à ce que l’index atteigne 100, et qui redirige la sortie standard vers une série de fichiers à l’adresse \\headnode\output share\sweepstep*.out, utilisez la commande suivante :

job add 25 /name:"Sweep Task" /parametric:10-100:2 /stdout:\\headnode\output share\sweepstep*.out echo *  

L’exemple précédent exécute chacune des lignes de commande suivantes indépendamment :

echo 10  
echo 12  
echo 14  
...  
echo 98  
echo 100  

Ce balayage paramétrique crée les fichiers suivants dans le répertoire partagé \\headnode\output :

  • sweepstep10.out

  • sweepstep12.out

  • ...

  • sweepstep100.out

Le balayage paramétrique crée 45 fichiers dans tous, chacun contenant son index
nombre.

Pour créer un travail, ajoutez une tâche au travail, puis envoyez le travail, exécutez un fichier de commandes qui inclut la commande suivante, qui utilise l'pour commande pour obtenir l’identificateur du nouveau travail :

for /f "usebackq tokens=4 delims=. " %%i in (`job new`) do (  
job add %%i echo Hello World  
job submit /id:%%i  
)  

Références supplémentaires