Conceitos de Agendamento e Dimensionamento Automático do CycleCloud

O CycleCloud não é um agendador, mas sim uma plataforma que permite que os utilizadores implementem o seu próprio agendador no Azure, para gerir e distribuir tarefas num cluster de nós. Além disso, o CycleCloud fornece uma API REST e uma biblioteca Python para desenvolver adaptadores de dimensionamento automático para agendadores, permitindo que estes clusters geridos aumentem ou reduzam o tamanho de acordo com a duração das filas de trabalhos e das políticas de governação.

Diagrama de Orquestração

Agendadores

Um agendador é um software que aceita uma lista de tarefas (ou tarefas) e distribui estas tarefas por conjuntos de recursos disponíveis, tendo em consideração os requisitos de recursos das tarefas, bem como as dependências e prioridades entre tarefas. Estas listas de tarefas são normalmente referidas como filas.

O CycleCloud inclui suporte incorporado para vários agendadores frequentemente utilizados (OSS Profissional da PBS, Slurm, IBM LSF, Grid Engine e HT Condor), fornecendo modelos para implementar estes agendadores no Azure. Estes modelos são topologias predefinidas, representando as melhores práticas para a criação de clusters HPC no Azure que tiram partido de funcionalidades especializadas exclusivas, como redes InfiniBand de baixa latência.

Além disso, os Projetos são criados para cada agendador e utilizados para instalar e inicializar daemons do agendador em nós principais e nós de computação.

Adaptadores do Scheduler

Os adaptadores criados para cada tipo de agendador desempenham duas funções primárias: 1) requisitos de recursos agregados de filas de scheduler e 2) traduzem os requisitos de recursos em pedidos de alocação para conjuntos de tamanhos de VMs do Azure. Estes pedidos de alocação são construídos com determinadas restrições em mente, por exemplo quotas de VM, limites ao tamanho do cluster e limites impostos pela topologia de rede InfiniBand (para tamanhos de VM adequados). Em certos aspectos, estes adaptadores assemelham-se a um mediador que negoceia a procura e a oferta de várias partes.

Monitor

O monitor é um processo que é executado no servidor de aplicações CycleCloud e consulta periodicamente os serviços do Azure quanto à disponibilidade de recursos na subscrição do Azure. Este monitor fornece estas informações aos adaptadores do agendador para mediação da procura.

Alocador de Nós

O alocador de nós é executado no servidor de aplicações CycleCloud. Recebe o pedido de alocação dos adaptadores do agendador através de uma API REST, aprovisiona os recursos do Azure necessários para cumprir o pedido e apresenta os recursos aprovisionados de volta aos adaptadores do agendador como conjuntos de nós.

Nota

Embora os conceitos subjacentes acima sejam comuns entre os agendadores, os detalhes de implementação diferem entre agendadores. Veja as páginas individuais do agendador para obter informações mais aprofundadas sobre cada implementação.