Noções básicas sobre ativação e filtros de envio
Este tópico fornece uma visão geral dos tipos de filtros de trabalho personalizados que um administrador pode adicionar ao cluster e como o Serviço de Agendador de Trabalho do HPC processa trabalhos com base nos valores retornados desses filtros.
Os filtros de envio de trabalho e ativação de trabalho são aplicativos personalizados que fornecem verificações e controles adicionais para trabalhos em seu cluster. Por exemplo, os filtros de envio podem verificar as propriedades do trabalho em relação às informações de sua escolha ou podem alterar os valores da propriedade do trabalho. Os filtros de ativação podem verificar fatores como a disponibilidade da licença antes que os recursos sejam alocados para um trabalho. Dependendo do valor retornado do filtro, o Serviço de Agendador de Trabalho do HPC toma a ação apropriada no trabalho. Para ajudar a determinar se as políticas de agendamento que você deseja impor exigem filtros personalizados, consulte Quando usar filtros de envio de trabalho ou ativação de trabalho no Windows HPC Server.
Este tópico descreve os filtros de ativação e envio e como os valores retornados dos filtros são interpretados pelo Serviço de Agendador de Trabalho do HPC. Para obter informações sobre como instalar e configurar os filtros, consulte Instalar Filtros de Envio e Ativação no Microsoft HPC Pack.
Neste tópico:
Quando os filtros personalizados são executados
O Serviço de Agendador de Trabalho do HPC pode executar filtros personalizados quando os trabalhos são enviados para o cluster (filtros de envio) ou quando os trabalhos estão prestes a obter recursos de cluster (filtros de ativação).
Os filtros de envio são executados assim que um trabalho é enviado, antes que o trabalho seja verificado em relação ao modelo de trabalho (os filtros de envio podem alterar as propriedades do trabalho, incluindo o modelo de trabalho atribuído). Se o trabalho passar no filtro de envio, as credenciais do usuário serão verificadas e, em seguida, os padrões do modelo de trabalho e as restrições de valor serão aplicadas. Para obter mais informações, consulte Noções básicas sobre ativação e filtros de envio [link da ajuda?].
Os filtros de ativação são executados quando os recursos candidatos são alocados para um trabalho em fila ou em execução (os recursos candidatos para um trabalho são baseados nas propriedades de trabalho e tarefa e nas políticas de agendamento). O filtro de ativação pode determinar se o trabalho deve ou não ser iniciado nesses recursos ou se os recursos devem ser mantidos para o trabalho ou liberados. Como os filtros de ativação são executados sempre que os recursos são alocados para um trabalho, o filtro de ativação pode ser executado várias vezes para o mesmo trabalho. Por exemplo, o filtro de ativação pode ser executado quando o trabalho está prestes a ser iniciado e, em seguida, executado novamente à medida que novos recursos estão prestes a ser adicionados ao trabalho (crescimento dinâmico).
Filtros específicos do modelo de trabalho e de todo o cluster
Os filtros personalizados podem ser definidos no nível de todo o cluster e serão executados em cada trabalho. Os filtros em todo o cluster são implementados como aplicativos executáveis ou como scripts. A partir do Service Pack 2 do HPC Pack 2008 R2, os filtros personalizados também podem ser definidos no nível do modelo de trabalho. Esses filtros só serão executados em trabalhos enviados com o modelo de trabalho associado. Os filtros de nível de modelo permitem executar filtros específicos em tipos específicos de trabalhos e também permitem executar uma série de filtros, se desejado.
Nota
Os filtros de nível de modelo de trabalho devem ser definidos como DLLs e implementar o IActivationFilter
ou a interface ISubmissionFilter
.
Você pode adicionar filtros de nível de modelo de trabalho e de cluster ao cluster. Quando um trabalho é enviado ou pronto para ativação, todos os filtros de modelo de trabalho serão executados antes do filtro em todo o cluster.
Filtros de envio de trabalho e seus valores retornados
O Serviço de Agendador de Trabalho do HPC pode executar um filtro de envio de trabalho sempre que um trabalho é enviado. O filtro pode verificar as propriedades do trabalho para determinar se o trabalho deve ser adicionado à fila.
O filtro de envio analisa o XML de descrição do trabalho (que especifica os termos do trabalho) para verificar se há opções que você deseja não permitir ou limitar, ou para não incluir uma opção necessária. Um filtro de envio também pode fazer alterações nos valores da propriedade do trabalho modificando o arquivo XML do trabalho. Os valores da propriedade da tarefa não podem ser alterados.
Com base no valor retornado do filtro de envio de trabalho, o Serviço de Agendador de Trabalho do HPC processará o trabalho, conforme descrito na tabela a seguir.
Sair do código | Ação do agendador de trabalho |
---|---|
0 | O trabalho é adicionado à fila as-is. |
1 | O filtro modificou uma ou mais propriedades de trabalho e o trabalho é adicionado à fila. |
qualquer outro código de saída | O trabalho é marcado como falha com uma mensagem de erro informando que o filtro de envio falhou no trabalho. |
de tempo limite do Filtro |
O trabalho é marcado como falha com uma mensagem de erro que o filtro de envio atingiu o tempo limite. O tempo limite padrão é de 15 segundos. A configuração pode ser modificada na caixa de diálogo Configuração do Agendador de Trabalho. |
Filtro não encontrado | O trabalho é marcado como falha com uma mensagem de erro de que o filtro não pôde ser encontrado. |
Nota
Se você especificou uma cadeia de filtros de envio, um trabalho será executado por cada filtro na ordem listada até que ele tenha passado por todos os filtros com êxito. Com um código de saída 0, o trabalho é passado para o próximo filtro. Com um código de saída de 1, o trabalho modificado é passado para o próximo filtro. Se o trabalho falhar em qualquer ponto da cadeia, todos os filtros de envio que já foram executados no trabalho serão chamados novamente na ordem inversa para permitir que os filtros revertam as ações, se necessário.
Filtros de ativação de trabalho e seus valores retornados
O Serviço de Agendador de Trabalho do HPC pode executar um filtro de ativação quando os recursos candidatos estão prestes a ser alocados para um trabalho em fila ou em execução. O filtro de ativação do trabalho pode verificar o trabalho em busca de fatores que façam com que o trabalho falhe se ativado, como indisponibilidade de licenças ou tempo de uso excedido para o usuário que está enviando.
O filtro de ativação analisa o XML de descrição do trabalho (que especifica os termos do trabalho) e pode verificar as propriedades do trabalho e outras fontes de dados para determinar se o trabalho poderá usar os recursos. Parâmetros adicionais são passados para o filtro para fornecer informações como o número de recursos candidatos disponíveis durante a passagem de agendamento atual, a posição do trabalho na fila e se o backfilling está habilitado ou não no cluster. Verifique IActivationFilter
public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)
de interface para esses parâmetros. O desenvolvedor que cria o filtro pode usar esses parâmetros para ajudar a ajustar o comportamento do filtro.
Com base no valor de retorno do filtro do filtro de ativação, o Serviço de Agendador de Trabalho do HPC iniciará o trabalho, bloqueará a fila até que o trabalho possa ser iniciado, reservará recursos para o trabalho sem bloquear a fila ou colocará o trabalho em espera. A quantidade de tempo para manter um trabalho específico pode ser definida com a propriedade de trabalho Hold Until. Se um trabalho for colocado em espera e nenhum manter até que valor seja especificado para esse trabalho, o trabalho será mantido pela quantidade de segundos especificada pela configuração de cluster Duração de Retenção Padrão. Os valores válidos para duração de retenção padrão são 60-604800 (entre um minuto e uma semana). O padrão é 900 segundos (15 minutos).
Importante
Depois que um trabalho for executado, a propriedade Manter Até será desmarcada.
Nota
Filtros de ativação e backfilling: um trabalho só pode ser executado em uma janela de backfill com um valor de retorno de filtro de ativação igual a 0.
Com base no valor retornado (código de saída) do filtro de ativação do trabalho, o Serviço de Agendador de Trabalho do HPC processará o trabalho, conforme descrito na tabela a seguir.
Sair do código | Trabalhos enfileirados | Executando trabalhos |
---|---|---|
0 | Iniciar o trabalho. O trabalho é iniciado nos recursos candidatos. |
Crescer trabalho. Os recursos candidatos são adicionados ao trabalho em execução. |
1 | Não inicie o trabalho, bloqueie a fila. O trabalho não foi iniciado e permanece na fila. Nenhum outro trabalho ou prioridade igual ou inferior é iniciado até que o trabalho seja aprovado ou cancelado. O filtro reavalia o trabalho periodicamente até que o trabalho seja aprovado ou até que o trabalho seja cancelado. |
Não aumente o emprego. Os recursos candidatos não são adicionados ao trabalho em execução. A fila não está bloqueada e os recursos podem ser usados para outros trabalhos. |
2 | Não inicie o trabalho, mantenha os recursos e continue agendando outros trabalhos. O trabalho não foi iniciado, mas os recursos candidatos são reservados para ele dependendo do Modo de Agendamento: na Fila, até os recursos máximos do trabalho são reservados; em Balanceamento, os recursos mínimos são reservados. Outros trabalhos podem ser iniciados em outros recursos. O filtro reavalia o trabalho periodicamente até que o trabalho seja aprovado. |
Indefinido. O filtro não deve retornar esse código de saída para trabalhos em execução. |
3 | Mantenha o trabalho, libere recursos e continue agendando outros trabalhos. O trabalho é colocado em espera até a data e a hora especificadas pelo Manter Até propriedade do trabalho. Após o período de retenção, o trabalho é reavaliado pelo programa de filtro. Se o filtro retornar com o código de saída 3 e nenhum manter até que valor seja especificado para esse trabalho, o trabalho será mantido pelo tempo especificado pela configuração de cluster Duração de Retenção Padrão. |
Indefinido. O filtro não deve retornar esse código de saída para trabalhos em execução. |
4 | Falha no trabalho. O trabalho é marcado como falha com uma mensagem de erro informando que o trabalho falhou com o filtro de ativação. |
Indefinido. O filtro não deve retornar esse código de saída para trabalhos em execução. |
qualquer outro código de saída | Indefinido. Mas tratado como um valor de 2. | Indefinido. O filtro não deve retornar esse código de saída para trabalhos em execução. |
de tempo limite do Filtro |
Igual ao código de saída 2. O tempo limite padrão é de 15 segundos. A configuração pode ser modificada na caixa de diálogo Configuração do Agendador de Trabalho. |
Indefinido. |
Filtro não encontrado | Igual ao código de saída 2. | Indefinido. |
Nota
Se você tiver especificado uma cadeia de filtros de ativação, um trabalho será avaliado por cada filtro na ordem listada, desde que passe com um código de saída 0. Se um filtro retornar um código de saída diferente de zero, esse valor será passado para o Agendador de Trabalho do HPC e todos os filtros de ativação que já foram executados no trabalho serão chamados novamente na ordem inversa para permitir que os filtros revertam as ações, se necessário. Por exemplo, um filtro de ativação que verifica se há licenças disponíveis pode incluir código para liberar as licenças se a função reverter for chamada.