adicionar trabalho
Cria uma nova tarefa e a adiciona ao trabalho especificado.
Para obter exemplos de como usar esse comando, consulte Exemplos.
Sintaxe
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}
Parâmetros
Parâmetro | Descrição |
---|---|
< > jobID | Especifica o identificador de trabalho do trabalho ao qual você deseja adicionar a tarefa. |
/depend:<task_name_list> | Especifica uma lista de um ou mais nomes de tarefa no trabalho especificado do qual a nova tarefa depende. A lista deve ter um formato de <task_name1>[,<task_name2>...]. A nova tarefa pode não ser iniciada até que todas as tarefas que o parâmetro /depend especifica terminem de ser executadas. Dica: Um único <task_name> representa uma ou mais tarefas dentro do trabalho, todas as quais têm esse <task_name> atribuído. |
/env:<variable_and_value_list> | Especifica uma lista de variáveis de ambiente a serem definidas no ambiente de tempo de execução da tarefa e os valores a serem atribuídos a essas variáveis de ambiente. A lista deve ter um formato de <variable_name1>=<value1> [;<variable_name2>=<value2>...]. Como alternativa, você pode definir várias variáveis de ambiente incluindo vários parâmetros de /env. Cada um deve ser um argumento diferente com um formato de <variable_name>=<valor>. Para desaconsinar uma variável de ambiente, não especifique um valor. Por exemplo, <variable_to_unset_name>=. |
/exclusive[:{true|false}] | Especifica se o Serviço de Agendador de Trabalho do HPC deve garantir que nenhuma outra tarefa seja executada no mesmo nó dessa tarefa enquanto essa tarefa é executada. Um valor true indica que o Serviço de Agendador de Trabalho do HPC deve garantir que nenhuma outra tarefa seja executada no mesmo nó enquanto essa tarefa é executada. Um valor de False indica que essa tarefa pode compartilhar nós de computação com outras tarefas. Quando você especifica o parâmetro /exclusive sem um valor, o comando adicionar se comporta como se você tivesse especificado um valor true. Se você não especificar o parâmetro /exclusive, o comando adicionar se comportará como se tivesse especificado um valor de False. |
/name:<task_name> | Especifica um nome a ser usado para essa tarefa na saída do comando e na interface do usuário. O comprimento máximo para o nome é de 80 caracteres. Esse parâmetro não tem valor padrão. Dica: Um único <task_name> representa 1 ou mais tarefas dentro do trabalho, todas as quais têm esse <task_name> atribuído. Aviso: Se esse <task_name> for usado em conjunto com o parâmetro /depend, o <task_name> não deverá conter uma vírgula ou espaço. |
/numcores:<min>[-<max>] | Especifica o número geral de núcleos no cluster HPC exigido pela tarefa, no formato <>mínimo [-<máximo>]. A tarefa é executada em pelo menos o número mínimo de núcleos e no máximo. Se você especificar apenas um valor, esse comando definirá o número máximo e mínimo de núcleos para esse valor. Se você especificar um valor mínimo que exceda o número total de núcleos disponíveis no cluster, ocorrerá um erro ao enviar o trabalho ou se o trabalho já estiver enviado, quando você enviar a tarefa. Os valores mínimo e máximo só podem ser inteiros positivos. /numcores é usado somente quando o UnitType do trabalho é núcleo. Se você não especificar o /numcores, /numnodes, /numprocessorsou /numsockets parâmetro, o Serviço de Agendador de Trabalho do HPC alocará um UnitType conforme definido pelo trabalho. |
/numnodes:<min>[-<max>] | Especifica o número geral de nós no cluster HPC exigido pela tarefa, no formato <>mínimo [-<máximo de>]. A tarefa é executada em pelo menos o número mínimo de nós e no máximo. Se você especificar apenas um valor, esse comando definirá o número máximo e mínimo de nós para esse valor. Se você especificar um valor mínimo que exceda o número total de nós disponíveis no cluster, ocorrerá um erro ao enviar a tarefa ou o trabalho que contém a tarefa. Os valores mínimo e máximo só podem ser inteiros positivos. /numnodes é usado somente quando o UnitType do trabalho é um nó. Se você não especificar o /numcores, /numnodes, /numprocessorsou /numsockets parâmetro, o Serviço de Agendador de Trabalho do HPC alocará um UnitType conforme definido pelo trabalho. |
/numprocessors:<min>[-<max>] | Preterido. Em vez disso, use o parâmetro |
/numsockets:<min>[-<max>] | Especifica o número geral de soquetes no cluster HPC exigido pela tarefa, no formato <>mínimo [-<máximo de>]. A tarefa é executada em pelo menos o número mínimo de soquetes e no máximo. Se você especificar apenas um valor, esse comando definirá o número máximo e mínimo de soquetes para esse valor. Se você especificar um valor mínimo que exceda o número total de soquetes disponíveis no cluster, ocorrerá um erro ao enviar a tarefa ou o trabalho que contém a tarefa. Os valores mínimo e máximo só podem ser inteiros positivos. /numsockets é usado somente quando o UnitType do trabalho é soquete. Se você não especificar o /numcores, /numnodes, /numprocessorsou /numsockets parâmetro, o Serviço de Agendador de Trabalho do HPC alocará um UnitType conforme definido pelo trabalho. |
/parametric:<index_specification> | Indica que a nova tarefa é uma tarefa paramétrica. Uma tarefa paramétrica executa o comando especificado várias vezes, substituindo o valor de índice atual por asteriscos (*) na linha de comando. O asterisco também é substituído quando especificado nos parâmetros /stdin, /stdoute /stderr. A especificação de índice para esse parâmetro define o comportamento do valor do índice. O formato da especificação de índice é [<iniciar>-]<>final [:<incremento>]. O valor do índice atual começa no índice inicial e aumenta pelo valor de incremento a cada tempo subsequente em que o comando é executado. Quando o índice atual excede o índice final, a tarefa para de executar o comando. O índice inicial deve ser menor que o índice final e o valor de incremento deve ser um inteiro positivo. Se você não especificar um valor de incremento, o padrão será 1. Se você não especificar um valor inicial, o padrão será 1. Se você especificar um valor de incremento, também deverá especificar um valor inicial. A partir do Microsoft HPC Pack 2008 R2, se você especificar o parâmetro /type com um valor diferente do ParametricSweep, também não será possível especificar o parâmetro /parametric. |
/requirednodes:<node_list> | Especifica uma lista de nós nos quais a tarefa deve ser executada, em um formato de <node1_name>[,<node2_name>...]. O Serviço de Agendador de Trabalho do HPC aloca exclusivamente todos os nós nesta lista para executar a tarefa. |
/rerunnable[:{true|false}] | Especifica se o Serviço de Agendador de Trabalho do HPC tenta executar novamente a tarefa se a tarefa for executada e falhar. Um valor de True indica que o Serviço de Agendador de Trabalho do HPC pode tentar executar novamente a tarefa se a tarefa for preemptada ou se ela falhar devido a um problema de cluster, como um nó se tornando inacessível. O agendador de trabalho não tenta executar novamente tarefas que são executadas até a conclusão e retornam uma com um código de saída malsucedido. Um valor de False indica que o Serviço de Agendador de Trabalho do HPC não deve tentar executar novamente a tarefa se a tarefa começar, mas não for concluída devido a problemas de preempção ou cluster. Em vez disso, ele deve mover a tarefa para o estado com falha imediatamente. O administrador do cluster pode configurar o número de vezes que o Serviço de Agendador de Trabalho do HPC tenta executar novamente uma tarefa antes de mover a tarefa para o estado com falha. Se você não especificar o parâmetro /rerunnable, o comando se comportará como se você tivesse especificado um valor true. |
/runtime:{<tempo>|Infinite} | Especifica a quantidade máxima de tempo que a tarefa deve ser executada. Depois que a tarefa for executada por esse período de tempo, o Serviço de Agendador de Trabalho do HPC cancelará a tarefa. Especifique a quantidade de tempo em um formato [[<dias>:]<horas>:]<minutos>. Você também pode especificar Infinito para indicar que a tarefa pode ser executada por um período ilimitado de tempo. Se você especificar apenas uma parte do formato [[<dias>:]<horas>:]<minutos> formato, o comando interpretará o valor especificado como o número de minutos. Por exemplo, 12 indica 12 minutos. Se você especificar duas partes do formato, o comando interpretará a parte esquerda como horas e a parte direita como minutos. Por exemplo, 10:30 indica 10 horas e 30 minutos. Você pode usar um ou mais dígitos para cada parte do formato. O valor máximo para cada parte é 2.147.483.647. Se você não especificar o parâmetro /runtime, o valor padrão será Infinito. |
/scheduler:<nome> | Especifica o nome do host ou o endereço IP do nó principal para o cluster que contém o trabalho ao qual você deseja adicionar a tarefa. O valor deve ser um nome de computador ou endereço IP válido. Se você não especificar o parâmetro /scheduler, esse comando usará o agendador no nó principal especificado pela variável de ambiente CCP_SCHEDULER. |
/stderr:[<>de caminho \]<file_name> | Especifica o nome do arquivo para o qual a tarefa deve redirecionar o fluxo de erros padrão, incluindo o caminho completo ou o caminho relativo ao diretório de trabalho do arquivo se a tarefa não deve redirecionar o fluxo de erros padrão para um arquivo no diretório de trabalho. Se você especificar um caminho que não existe, a tarefa falhará. Se você não especificar o parâmetro /stderr, a tarefa armazenará até 4 quilobytes (KB) de dados no banco de dados para o Serviço de Agendador de Trabalho do HPC que a propriedade Output para a tarefa especifica. Qualquer saída que exceda 4 KB será perdida. O comprimento máximo do valor para esse parâmetro é de 160 caracteres. |
/stdin:[<caminho>\]<file_name> | Especifica o nome do arquivo do qual a tarefa deve receber entrada padrão, incluindo o caminho completo ou o caminho relativo ao diretório de trabalho do arquivo se a tarefa não deve receber entrada padrão de um arquivo no diretório de trabalho. Se você especificar um arquivo ou caminho que não existe, a tarefa falhará. O comprimento máximo do valor para esse parâmetro é de 160 caracteres. |
/stdout:[<path>\]<file_name> | Especifica o nome do arquivo para o qual a tarefa deve redirecionar a saída padrão, incluindo o caminho completo ou o caminho relativo ao diretório de trabalho do arquivo se a tarefa não deve redirecionar a saída padrão para um arquivo no diretório de trabalho. Se você especificar um caminho que não existe, a tarefa falhará. Se você não especificar o parâmetro /stdout, a tarefa armazenará até 4 quilobytes (KB) de dados no banco de dados para o Serviço de Agendador de Trabalho HPC que a propriedade Saída para a tarefa especifica. Qualquer saída que exceda 4 KB será perdida. O comprimento máximo do valor para esse parâmetro é de 160 caracteres. |
/taskfile:<caminho>\<file_name> | Especifica o nome de um arquivo XML de tarefa do qual ler as configurações da tarefa, incluindo o caminho completo ou relativo para o arquivo se o arquivo não estiver no diretório atual. Você deve especificar um arquivo XML de tarefa para o parâmetro |
/type:<type_name> | Especifica um tipo para a tarefa, que define como executar o comando para a tarefa. A seguir estão os tipos que você pode especificar: Básico- Executa uma única instância de um aplicativo serial ou um aplicativo MPI (Interface de Passagem de Mensagem). Um aplicativo MPI normalmente é executado simultaneamente em vários núcleos e pode abranger vários nós. NodePrep – Executa um comando ou script em cada nó de computação conforme ele é alocado para o trabalho. A tarefa Preparação do Nó é executada em um nó antes de qualquer outra tarefa no trabalho. Se a tarefa Preparação do Nó não for executada em um nó, esse nó não será adicionado ao trabalho. NodeRelease - Executa um comando ou script em cada nó de computação conforme ele é liberado do trabalho. As tarefas de Versão do Nó são executadas quando o trabalho é cancelado pelo usuário ou por preempção normal. As tarefas de versão do nó não são executadas quando o trabalho é cancelado por preempção imediata. ParametricSweep - desmarque um comando um número especificado de vezes, conforme indicado pelos valores Iniciar, Terminar e Incrementar, geralmente em arquivos de entrada e saída indexados. As etapas da varredura podem ou não ser executadas em paralelo, dependendo dos recursos disponíveis no cluster HPC quando a tarefa estiver em execução. Ao especificar o tipo ParametricSweep, você deve usar o parâmetro /parametric para especificar os valores de início, término e incremento para o índice. Se você não usar parâmetro /paramétrico, o comando será executado uma vez com um índice de 0. Serviço- Executa um comando ou serviço em todos os recursos atribuídos ao trabalho. Novas instâncias do comando começam quando os novos recursos são adicionados ao trabalho ou se uma instância em execução anteriormente é encerrada e o recurso usado pela instância em execução anteriormente ainda é alocado para o trabalho. Uma tarefa de serviço continua iniciando novas instâncias até que a tarefa seja cancelada, o tempo máximo de execução expire ou o número máximo de instâncias seja atingido. Uma tarefa de serviço pode criar até 1.000.000 subtarefas. Tarefas enviadas por meio de um cliente SOA (arquitetura orientada a serviço) são executadas como tarefas de serviço. Você não pode adicionar uma tarefa básica ou uma tarefa de varredura paramétrica a um trabalho que contenha uma tarefa de serviço. O valor padrão para esse parâmetro é Basic, a menos que você também especifique o parâmetro /parametric. Se você especificar o parâmetro /parametric, o valor padrão do parâmetro /type será ParametricSweep. Se você especificar o parâmetro /type com um valor diferente de ParametricSweep, também não será possível especificar o parâmetro /parametric. Esse parâmetro foi introduzido no HPC Pack 2008 R2 e não está disponível em versões anteriores. |
/validexitcodes:{<int>|<intStart>..<intEnd>}[,{<int>|<intStart>..<intEnd>}]* | Especifica os códigos de saída de tarefa válidos a serem usados para verificar se uma tarefa é encerrada com êxito.
/validexitcodes devem ser especificados por inteiros discretos e intervalos inteiros separados por vírgulas. mínimo e máximo de podem ser usados como o início ou o fim de um intervalo. Por exemplo, 0..max representa todos os inteiros não negativos.Se não for definido, /validexitcodes herdará seu valor do parâmetro /validexitcodes do trabalho. Se nenhum dos dois for definido, o valor padrão será 0. Observação: Esse parâmetro foi introduzido no HPC Pack 2012 e não tem suporte em versões anteriores. |
/workdir:<pasta> | Especifica o diretório de trabalho no qual a tarefa deve ser executada. O comprimento máximo do valor para esse parâmetro é de 160 caracteres. |
> de comando <[ parâmetros de<>] | Especifica a linha de comando da tarefa, incluindo o nome do comando ou do aplicativo e todos os parâmetros necessários. A menos que seja definido em um arquivo /taskfile da tarefa XML, um comando deve existir para que a tarefa seja adicionada. O comando será executado em relação ao diretório de trabalho, a menos que contenha um caminho totalmente qualificado. |
/? | Exibe a Ajuda no prompt de comando. |
/Ajuda | Exibe a Ajuda no prompt de comando. |
Comentários
Você pode adicionar tarefas a trabalhos que ainda não enviou, trabalhos que você enviou e que estão atualmente aguardando na fila, trabalhos que já estão em execução ou trabalhos que falharam ou foram cancelados.
Não é possível adicionar tarefas a um trabalho concluído.
Quando você adiciona uma tarefa a um trabalho que está aguardando na fila ou em execução, e os recursos que o Serviço de Agendador de Trabalho HPC alocado para o trabalho estão disponíveis, a tarefa começa a ser executada.
A partir do Microsoft HPC Pack 2008 R2, você pode especificar que os asteriscos (*) na linha de comando de uma tarefa paramétrica não devem ser substituídos pelo valor atual do índice paramétrico antes do asterisco com três caracteres de cuidado (^). Por exemplo, se você usar o comando trabalho adicionar para criar uma tarefa paramétrica e especificar a linha de comando como eco *, a tarefa imprimirá os valores do índice paramétrico. Se você usar o comando trabalho adicionar para criar uma tarefa paramétrica e especificar a linha de comando como eco ^^^*, a tarefa imprimirá um asterisco para cada valor do índice paramétrico.
Exemplos
Para adicionar uma nova tarefa chamada Minha Tarefa ao trabalho com um identificador de trabalho de 39, que executa o programa hostname.exe, tem um diretório de trabalho de \\headnode\output share e redireciona a saída padrão para um arquivo chamado hostname.out no diretório de trabalho, use o seguinte comando:
job add 39 /name:"My Task" /workdir:\\headnode\output share /stdout:"hostname.out" hostname.exe
Para adicionar uma nova tarefa de preparação de nó ao trabalho com um identificador de trabalho de 47 que executa o comando ver, digite:
job add 47 /type:NodePrep ver
Para adicionar uma nova tarefa paramétrica chamada Tarefa de Varredura ao trabalho com um identificador de trabalho de 25, que executa uma série de comandos de eco * para um índice que começa em 10 e aumenta em 2 até que o índice atinja 100, e que redireciona a saída padrão para uma série de arquivos em \\headnode\output share\sweepstep*.out, use o seguinte comando:
job add 25 /name:"Sweep Task" /parametric:10-100:2 /stdout:\\headnode\output share\sweepstep*.out echo *
O exemplo anterior executa cada uma das seguintes linhas de comando de forma independente:
echo 10
echo 12
echo 14
...
echo 98
echo 100
Essa varredura paramétrica cria os seguintes arquivos no diretório compartilhado \\headnode\output:
sweepstep10.out
sweepstep12.out
...
sweepstep100.out
A varredura paramétrica cria 45 arquivos ao todo, cada um deles contém seu índice
número.
Para criar um novo trabalho, adicione uma tarefa ao trabalho e, em seguida, envie o trabalho, execute um arquivo em lote que inclua o seguinte comando, que usa o para comando para obter o identificador do novo trabalho:
for /f "usebackq tokens=4 delims=. " %%i in (`job new`) do (
job add %%i echo Hello World
job submit /id:%%i
)
Referências adicionais
chave de sintaxe Command-Line