Conceitos de agendamento e dimensionamento automático do CycleCloud

O CycleCloud não é um agendador, mas sim uma plataforma que permite que os usuários implantem seu próprio agendador no Azure para gerenciar e distribuir trabalhos em um 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 esses clusters gerenciados dimensionem ou reduzam de acordo com o comprimento das filas de trabalho e das políticas de governança.

Diagrama de orquestração

Agendadores

Um agendador é um software que aceita uma lista de trabalhos (ou tarefas) e distribui essas tarefas em pools de recursos disponíveis, levando em consideração os requisitos de recursos dos trabalhos, bem como dependências e prioridades entre trabalhos. Essas listas de trabalhos são comumente chamadas de filas.

O CycleCloud vem com suporte interno para vários agendadores comumente usados (PBS Professional OSS, Slurm, IBM LSF, Grid Engine e HT Condor), fornecendo modelos para implantar esses agendadores no Azure. Esses modelos são topologias padrão, representando as práticas recomendadas para a criação de clusters HPC no Azure que aproveitam recursos especializados exclusivos, como rede InfiniBand de baixa latência.

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

Adaptadores do Agendador

Os adaptadores criados para cada tipo de agendador desempenham duas funções primárias: 1) requisitos de recursos agregados de filas de agendador e 2) convertem os requisitos de recurso em solicitações de alocação para conjuntos de tamanhos de VM do Azure. Essas solicitações de alocação são construídas com determinadas restrições em mente, por exemplo, cotas de VM, limites para o tamanho do cluster e limites impostos pela topologia de rede InfiniBand (para tamanhos de VM apropriados). Em determinados aspectos, esses adaptadores se assemelham a um agente que negocia a demanda e a oferta de várias partes.

Monitor

O monitor é um processo executado no servidor de aplicativos do CycleCloud e pesquisa periodicamente os serviços do Azure quanto à disponibilidade de recursos na assinatura do Azure. Esse monitor fornece essas informações aos adaptadores do agendador para a intermediação de demanda.

Alocador de Nó

O alocador de nó é executado no servidor de aplicativos CycleCloud. Ele recebe a solicitação de alocação dos adaptadores do agendador por meio de uma API REST, provisiona os recursos do Azure necessários para atender à solicitação e apresenta os recursos provisionados de volta aos adaptadores do agendador como conjuntos de nós.

Observação

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