CycleCloud: conceitos principais

No seu mais básico, um sistema HPC (Computação de Alto Desempenho) é um pool de recursos computacionais apoiados por sistemas de arquivos com desempenho e interconectados por redes de baixa latência. Esses recursos computacionais geralmente são gerenciados por Agendadores de HPC, aplicativos de software que agendam trabalhos.

A criação de sistemas HPC individuais no Azure a partir de unidades básicas de infraestrutura, como Máquinas Virtuais, Discos e Interfaces de Rede, pode ser complicada, especialmente se esses recursos forem efêmeros , existentes apenas para o tempo necessário para resolver a tarefa HPC em questão. Além disso, os operadores desejam criar vários ambientes HPC separados que podem ser adaptados a várias unidades de negócios, equipes de pesquisa ou indivíduos. O gerenciamento desses vários sistemas de HPC pode ser complexidade operacional.

O que é o CycleCloud?

O Azure CycleCloud é uma ferramenta que ajuda a construir sistemas HPC no Azure. Ele orquestra esses sistemas para que eles sejam dimensionados elasticamente de acordo com as tarefas de HPC em questão, sem o incômodo de gerenciar blocos de construção básicos do Azure. O CycleCloud foi projetado por uma equipe de profissionais de HPC experientes para administradores e usuários de HPC, especialmente usuários que estão procurando criar sistemas HPC no Azure que se assemelham à infraestrutura HPC interna com a qual estão familiarizados.

Diagrama de orquestração

Operacionalmente, o CycleCloud é um servidor de aplicativos instalado em uma VM do Linux no Azure ou em um servidor local que tem acesso a APIs e recursos do Azure. O CycleCloud adquire e provisiona VMs do Azure para construir clusters do CycleCloud que podem integrar agendadores e aplicativos de usuário. O CycleCloud também fornece integrações de dimensionamento automático para vários agendadores de HPC e um agente do CycleCloud que é executado em VMs do Azure.

Servidor de Aplicativos

Este servidor de aplicativos fornece:

  1. Uma API REST para criar e gerenciar sistemas HPC no Azure.
  2. Uma interface gráfica do usuário que permite que um usuário gerencie e monitore sistemas HPC.
  3. Uma CLI que facilita a integração do CycleCloud aos fluxos de trabalho existentes.
  4. Um armazenamento de dados noSQL interno que armazena em cache o estado do cluster e do nó.
  5. Um sistema de alocação e orquestração que adquire e gerencia VMs do Azure
  6. Um sistema de monitoramento de nós para VMs existentes que alerta de alterações de status.

Integrações

O CycleCloud também fornece várias integrações aos agendadores comuns e às VMs do Azure. Thee forneça:

  1. Um sistema de preparação e configuração de nó para converter uma VM provisionada em um nó HPC.
  2. Dimensionamento automático para agendadores de HPC que convertem os requisitos de tarefa do agendador de HPC em recursos do Azure.

O que o CycleCloud pode fazer

O CycleCloud é direcionado a operadores HPC (administradores e usuários) que estão implantando sistemas HPC no Azure e que desejam replicar a infraestrutura que estão sendo executadas internamente, do agendador HPC aos pontos de montagem do sistema de arquivos para instalações de aplicativos e acesso a dados. Esses usuários estão particularmente olhando para aplicativos de suporte, mecanismos de fluxo de trabalho e pipelines computacionais sem precisar refazer seus processos internos.

O CycleCloud fornece uma sintaxe de modelagem avançada e declarativa que permite que os usuários descrevam seu sistema HPC, desde a topologia de cluster (o número e os tipos de nós de cluster), até os pontos de montagem e os aplicativos que serão implantados em cada nó. O CycleCloud foi projetado para trabalhar com agendadores HPC como PBSPro, Slurm, IBM LSF, Grid Engine e HT Condor, permitindo que os usuários criem filas diferentes em cada agendador e mapeiem-nas para calcular nós de diferentes tamanhos de VM no Azure. Além disso, os plug-ins de dimensionamento automático são integrados aos nós de cabeçalho do agendador que escutam filas de trabalho em cada sistema e dimensionam o cluster de computação adequadamente interagindo com a API REST de dimensionamento automático em execução no servidor de aplicativos.

Além de provisionar e criar nós HPC, o CycleCloud também fornece uma estrutura para preparar e configurar uma máquina virtual, em essência, fornecendo um sistema para converter uma VM bare em um componente funcional de um sistema HPC. Por meio dessa estrutura, os usuários podem fazer a configuração de última milha em uma VM.

Além disso, o CycleCloud fornece os seguintes recursos:

  • Acesso do usuário

    O CycleCloud vem com suporte interno para criar contas de usuário local em cada nó de um sistema HPC. Com esse sistema, o acesso do usuário pode ser controlado por meio de um único plano de gerenciamento sem implantar um serviço de diretório.

  • Monitoring

    As métricas no nível do nó são coletadas e exibidas na interface do usuário do CycleCloud. Elas são úteis para monitorar a carga no sistema e podem ser conectadas aos serviços de relatórios e alertas.

  • Logging

    O CycleCloud fornece um sistema para registrar atividades e eventos em log no nível do nó e do servidor de aplicativos.

  • Portabilidade

    O sistema não exige que uma imagem de VM ou sistema operacional específico seja usado. O CycleCloud dá suporte aos principais sistemas operacionais Windows e Linux em nós HPC. Além disso, os usuários podem criar sua própria imagem de VM e usá-la em seu sistema HPC.

  • Infraestrutura como código

    Como tudo o que foi criado no CycleCloud é definido em modelos e scripts de configuração, os sistemas HPC implantados por meio do CycleCloud são repetíveis e portáteis. Isso fornece consistência aos operadores na implantação de sistemas HPC em ambientes diferentes: Área Restrita, Desenvolvimento, Teste e Produção. Os operadores também podem implantar sistemas HPC idênticos para diferentes grupos de negócios ou equipes para separar as preocupações contábeis.

  • Cargas de trabalho acopladas ou firmemente acopladas

    Os clusters HPC criados pelo CycleCloud foram projetados não apenas para dar suporte a trabalhos vagamente acoplados ou embaraçosamente paralelos em que a escala (o tamanho do cluster) é a principal preocupação. Os clusters cyclecloud também são projetados com o backbone infiniband do Azure em mente, dando suporte a cargas de trabalho firmemente acopladas ou baseadas em MPI em que a proximidade do nó e a latência de rede são críticas. Esses conceitos de expansão e fortemente acoplados estão arraigados nas integrações de agendador compatíveis com o CycleCloud.