View a markdown version of this page

Divisão de tarefas para modelos de trabalho - Deadline Cloud

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Divisão de tarefas para modelos de trabalho

Os trabalhos de renderização e simulação geralmente gastam mais tempo carregando o aplicativo e o arquivo de cena do que processando cada quadro. Quando um trabalho executa um quadro por tarefa, esse tempo de carregamento se repete para cada quadro. A fragmentação de tarefas agrupa várias tarefas em uma única unidade de trabalho chamada bloco, de modo que o aplicativo carrega uma vez para cada bloco, em vez de uma vez para cada quadro. A fragmentação ajuda mais quando o tempo de carregamento é longo em relação ao tempo de processamento de cada quadro, como uma cena que carrega por minutos e depois renderiza cada quadro em segundos.

Se você estiver migrando do Prazo 10, a fragmentação de tarefas substituirá os quadros por configuração de tarefa, também chamada de tamanho do bloco, nos remetentes do Prazo 10.

A fragmentação de tarefas é uma extensão do Open Job Description (OpenJD) chamada. TASK_CHUNKING Em um modelo de trabalho que usa a extensão, você define um parâmetro de tarefa com o tipoCHUNK[INT]. Quando o trabalho é executado, o Deadline Cloud envia um intervalo de valores para cada tarefa em vez de um único valor, e a {{Task.Param.Frame}} variável em seu script se expande para uma expressão de intervalo, como. 1-10 Seu script passa esse intervalo para o aplicativo. Para obter a especificação completa, consulte RFC 0001: fragmentação de tarefas ativada. GitHub

Para usar a fragmentação de tarefas, você toma duas decisões:

  • Restrição de intervalo — Escolha CONTIGUOUS quando seu aplicativo aceita argumentos de quadro inicial e final. Cada pedaço é então um intervalo consecutivo, como1-10. Escolha NONCONTIGUOUS quando seu aplicativo aceita listas de quadros arbitrárias. Os blocos podem então cobrir conjuntos de quadros esparsos1-3,5,7-20:2, como, por exemplo, o que é útil ao renderizar quadros de seleção.

  • Tamanho do bloco — O defaultTaskCount campo define um número fixo de quadros para cada bloco. Se os blocos forem muito pequenos, o tempo de carregamento predominará e o trabalho será executado de forma ineficiente. Se os pedaços forem muito grandes, o trabalho não conseguirá equilibrar o trabalho em uma frota maior. Para evitar ajustar o valor manualmente, defina o targetRuntimeSeconds campo opcional. O Deadline Cloud então ajusta os tamanhos dos blocos de acordo com o tempo de execução desejado com base nos tempos de execução observados dos blocos concluídos.

O tamanho do pedaço também limita o paralelismo. Uma etapa produz uma tarefa para cada bloco, que é aproximadamente a contagem de quadros dividida pelo tamanho do bloco, e cada tarefa é executada em um trabalhador. A tabela a seguir mostra como o tamanho do bloco limita o número de trabalhadores que podem processar uma tarefa de 100 quadros em paralelo.

Quadros em funcionamento Tamanho do bloco Tarefas (máximo de trabalhadores paralelos)
100 1 100
100 10 10
100 50 2

Se o tamanho do bloco for maior do que a contagem de quadros dividida pelo número de trabalhadores disponíveis, alguns trabalhadores permanecerão ociosos. Quando você definetargetRuntimeSeconds, o Deadline Cloud equilibra essa compensação para você ajustando os tamanhos dos blocos em relação ao tempo de execução desejado.

Os trabalhos fragmentados diferem dos trabalhos de um quadro por tarefa de duas maneiras. No monitor Deadline Cloud, a lista de tarefas da etapa mostra uma tarefa para cada bloco, identificada por seu intervalo de quadros. Quando você baixa a saída de uma única tarefa em um trabalho fragmentado, o Deadline Cloud baixa a saída de todo o bloco. Por exemplo, se o Deadline Cloud processou os quadros de 1 a 10 juntos como um bloco, o download da saída para o quadro 3 baixa todos os quadros de 1 a 10. O download da saída fragmentada requer a deadline-cloud versão 0.53.3 ou posterior.

Para obter mais informações sobre fragmentação de tarefas, consulte os tópicos a seguir: