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á.
O que é uma carga de trabalho do Deadline Cloud
Com AWS o Deadline Cloud, você pode enviar trabalhos para executar seus aplicativos na nuvem e processar dados para a produção de conteúdo ou insights importantes para sua empresa. O Deadline Cloud usa a Open Job Description
As cargas de trabalho variam de pacotes de tarefas simples que os usuários enviam para uma fila com a CLI ou uma GUI gerada automaticamente até plug-ins de remetente integrados que geram dinamicamente um pacote de tarefas para uma carga de trabalho definida pelo aplicativo.
Como as cargas de trabalho surgem da produção
Para entender as cargas de trabalho em contextos de produção e como apoiá-las com o Deadline Cloud, considere como elas surgiram. A produção pode envolver a criação de efeitos visuais, animações, jogos, imagens de catálogos de produtos, reconstruções 3D para modelagem de informações de construção (BIM) e muito mais. Esse conteúdo geralmente é criado por uma equipe de especialistas artísticos ou técnicos que executam uma variedade de aplicativos de software e scripts personalizados. Os membros da equipe transmitem dados entre si usando um pipeline de produção. Muitas tarefas executadas pelo pipeline envolvem cálculos intensivos que levariam dias se executados na estação de trabalho de um usuário.
Alguns exemplos de tarefas nesses canais de produção incluem:
-
Usando um aplicativo de fotogrametria para processar fotografias tiradas de um set de filmagem para reconstruir uma malha digital texturizada.
-
Executar uma simulação de partículas em uma cena 3D para adicionar camadas de detalhes a um efeito visual de explosão para um programa de televisão.
-
Combinando dados de um nível de jogo no formato necessário para lançamento externo e aplicando configurações de otimização e compressão.
-
Renderização de um conjunto de imagens para um catálogo de produtos, incluindo variações de cor, plano de fundo e iluminação.
-
Executar um roteiro personalizado em um modelo 3D para aplicar uma aparência personalizada e aprovada por um diretor de cinema.
Essas tarefas envolvem muitos parâmetros para ajustar para obter um resultado artístico ou para ajustar a qualidade da saída. Geralmente, há uma GUI para selecionar esses valores de parâmetros com um botão ou menu para executar o processo localmente no aplicativo. Quando um usuário executa o processo, o aplicativo e possivelmente o próprio computador host não podem ser usados para realizar outras operações porque ele usa o estado do aplicativo na memória e pode consumir todos os recursos de CPU e memória do computador host.
Em muitos casos, o processo é rápido. Durante o curso da produção, a velocidade do processo diminui quando os requisitos de qualidade e complexidade aumentam. Um teste de personagem que levou 30 segundos durante o desenvolvimento pode facilmente se transformar em 3 horas quando aplicado ao personagem final da produção. Com essa progressão, uma carga de trabalho que começou dentro de uma interface gráfica pode ficar grande demais para caber. Transportá-lo para o Deadline Cloud pode aumentar a produtividade dos usuários que executam esses processos, pois eles recuperam o controle total de sua estação de trabalho e podem acompanhar mais iterações do monitor do Deadline Cloud.
Há dois níveis de suporte a serem buscados ao desenvolver suporte para uma carga de trabalho no Deadline Cloud:
-
Transferindo a carga de trabalho da estação de trabalho do usuário para um farm do Deadline Cloud sem paralelismo ou aceleração. Essa abordagem pode subutilizar os recursos computacionais disponíveis na fazenda, mas a capacidade de transferir operações longas para um sistema de processamento em lote permite que os usuários façam mais com sua própria estação de trabalho.
-
Otimizando o paralelismo da carga de trabalho para que ela utilize a escala horizontal do Deadline Cloud farm para concluir rapidamente.
Às vezes, é óbvio como fazer com que uma carga de trabalho seja executada em paralelo. Por exemplo, cada quadro de uma renderização de computação gráfica pode ser feito de forma independente. No entanto, é importante não ficar preso a esse paralelismo. Em vez disso, entenda que transferir uma carga de trabalho de longa duração para o Deadline Cloud oferece benefícios significativos, mesmo quando não há uma maneira óbvia de dividir a carga de trabalho.
Os ingredientes de uma carga de trabalho
Para especificar uma carga de trabalho do Deadline Cloud, implemente um pacote de trabalho que os usuários enviam para uma fila com a CLI do Deadline Cloud.
-
O aplicativo a ser executado. O trabalho deve ser capaz de iniciar processos de aplicativo e, portanto, precisa de uma instalação do aplicativo disponível, bem como de qualquer licenciamento usado pelo aplicativo, como acesso a um servidor de licenças flutuante. A instalação e o licenciamento normalmente fazem parte da configuração do farm e não estão incorporados ao pacote de tarefas em si.
-
Definições de parâmetros de trabalho. A experiência do usuário ao enviar o trabalho é muito afetada pelos parâmetros que ela fornece. Os parâmetros de exemplo incluem arquivos de dados, diretórios e configuração de aplicativos.
-
Fluxo de dados do arquivo. Quando um trabalho é executado, ele lê a entrada dos arquivos fornecidos pelo usuário e, em seguida, grava a saída como novos arquivos. Para trabalhar com os anexos do trabalho e os recursos de mapeamento de caminhos, o trabalho deve especificar os caminhos dos diretórios ou arquivos específicos para essas entradas e saídas.
-
O script de etapas. O script de etapas executa o binário do aplicativo com as opções corretas de linha de comando para aplicar os parâmetros de trabalho fornecidos. Ele também manipula detalhes, como mapeamento de caminhos, se os arquivos de dados da carga de trabalho incluírem referências de caminho absolutas em vez de relativas.
Portabilidade da carga de trabalho
Uma carga de trabalho é portátil quando pode ser executada em vários sistemas diferentes sem alterá-la sempre que você envia um trabalho. Por exemplo, ele pode ser executado em diferentes fazendas de renderização com diferentes sistemas de arquivos compartilhados montados ou em sistemas operacionais diferentes, como Linux ouWindows. Quando você implementa um pacote de tarefas portátil, é mais fácil para os usuários executarem a tarefa em sua fazenda específica ou adaptá-la para outros casos de uso.
Aqui estão algumas maneiras de tornar seu pacote de trabalho portátil.
-
Especifique totalmente os arquivos de dados de entrada necessários para uma carga de trabalho, usando parâmetros de
PATHtrabalho e referências de ativos no pacote de tarefas. Essa abordagem torna o trabalho portátil para fazendas com base em sistemas de arquivos compartilhados e para fazendas que fazem cópias dos dados de entrada, como o recurso de anexos de tarefas do Deadline Cloud. -
Torne as referências do caminho do arquivo para os arquivos de entrada da tarefa realocáveis e utilizáveis em diferentes sistemas operacionais. Por exemplo, quando os usuários enviam trabalhos de Windows estações de trabalho para serem executados em uma Linux frota.
-
Use referências relativas ao caminho do arquivo, portanto, se o diretório que as contém for movido para um local diferente, as referências ainda serão resolvidas. Alguns aplicativos, como o Blender
, oferecem suporte à escolha entre caminhos relativos e absolutos. -
Se você não puder usar caminhos relativos, ofereça suporte aos metadados de mapeamento de caminhos do OpenJD
e traduza os caminhos absolutos de acordo com a forma como o Deadline Cloud fornece os arquivos para o trabalho.
-
-
Implemente comandos em um trabalho usando scripts portáteis. Python e bash são dois exemplos de linguagens de script que podem ser usadas dessa forma. Você deve considerar fornecer os dois em todos os hospedeiros de trabalhadores de suas frotas.
-
Use o binário do interpretador de scripts, like
pythonoubash, com o nome do arquivo de script como argumento. Essa abordagem funciona em todos os sistemas operacionaisWindows, inclusive, em comparação com o uso de um arquivo de script com o bit de execução ativadoLinux. -
Escreva scripts bash portáteis aplicando estas práticas:
-
Expanda os parâmetros do caminho do modelo em aspas simples para lidar com caminhos com espaços e separadores de Windows caminho.
-
Quando estiver em execuçãoWindows, observe os problemas relacionados à tradução automática de caminhos do MinGW. Por exemplo, ele transforma um AWS CLI comando like
aws logs tail /aws/deadline/...em um comando semelhanteaws logs tail "C:/Program Files/Git/aws/deadline/..."e não rastreará um log corretamente. DefinaMSYS_NO_PATHCONV=1a variável para desativar esse comportamento. -
Na maioria dos casos, o mesmo código funciona em todos os sistemas operacionais. Quando o código precisar ser diferente, use uma
if/elseconstrução para lidar com os casos.if [[ "$(uname)" == MINGW* || "$(uname -s)" == MSYS_NT* ]]; then : # Code for Windows elif [[ "$(uname)" == Darwin ]]; then : # Code for MacOS else : # Code for Linux and other operating systems fi
-
-
Você pode escrever scripts Python portáteis usando
pathlibpara lidar com as diferenças de caminho do sistema de arquivos e evitar recursos operacionais específicos. A documentação do Python inclui anotações para isso, por exemplo, na documentação da biblioteca de sinais.Linux- o suporte a recursos específicos está marcado como “Disponibilidade: Linux”.
-
-
Use parâmetros de trabalho para especificar os requisitos do aplicativo. Use convenções consistentes que o administrador da fazenda possa aplicar em ambientes de fila.
-
Por exemplo, você pode usar os
CondaPackagesand/orRezPackagesparâmetros em seu trabalho, com um valor de parâmetro padrão que lista os nomes e as versões do pacote de aplicativos que o trabalho exige. Em seguida, você pode usar um dos exemplos de ambientes de fila conda ou Rezpara fornecer um ambiente virtual para o trabalho.
-