CycleCloud : concepts de base

À la base, un système HPC (High Performance Computing) est un pool de ressources de calcul soutenues par des systèmes de fichiers performants et interconnectées par des réseaux à faible latence. Ces ressources de calcul sont généralement gérées par des planificateurs HPC, des applications logicielles qui planifient des travaux.

La création de systèmes HPC individuels sur Azure à partir d’unités d’infrastructure de base telles que les Machines Virtuelles, les disques et les interfaces réseau peut être fastidieuse, en particulier si ces ressources sont éphémères, n’existant que pour le temps nécessaire pour résoudre la tâche HPC en cours. En outre, les opérateurs souhaitent créer plusieurs environnements HPC distincts qui peuvent être adaptés à différentes unités commerciales, équipes de recherche ou individus. La gestion de ces plusieurs systèmes HPC peut être complexe sur le plan opérationnel.

Qu’est-ce que CycleCloud ?

Azure CycleCloud est un outil qui permet de construire des systèmes HPC sur Azure. Il orchestre ces systèmes afin qu’ils soient dimensionner de manière élastique en fonction des tâches HPC en cours, sans avoir à gérer les blocs de construction Azure de base. CycleCloud est conçu par une équipe de professionnels HPC expérimentés pour les administrateurs et les utilisateurs HPC, en particulier les utilisateurs qui cherchent à créer des systèmes HPC dans Azure qui ressemblent à l’infrastructure HPC interne qu’ils connaissent.

Diagramme d’orchestration

Sur le plan opérationnel, CycleCloud est un serveur d’applications installé dans une machine virtuelle Linux sur Azure, ou sur un serveur local qui a accès aux API et aux ressources Azure. CycleCloud acquiert et approvisionne des machines virtuelles Azure pour construire des clusters CycleCloud qui peuvent intégrer des planificateurs et des applications utilisateur. CycleCloud fournit également des intégrations de mise à l’échelle automatique pour un certain nombre de planificateurs HPC et un agent CycleCloud qui s’exécute sur des machines virtuelles Azure.

Serveur d’applications

Ce serveur d’applications fournit les éléments suivants :

  1. API REST pour la création et la gestion de systèmes HPC sur Azure.
  2. Interface utilisateur graphique qui permet à un utilisateur de gérer et de surveiller les systèmes HPC.
  3. Cli qui facilite l’intégration de CycleCloud dans des workflows existants.
  4. Un magasin de données NoSQL interne qui met en cache l’état du cluster et du nœud.
  5. Un système d’allocation et d’orchestration qui acquiert et gère des machines virtuelles Azure
  6. Système de surveillance des nœuds pour les machines virtuelles existantes qui alertent des modifications status.

Intégrations

CycleCloud fournit également un certain nombre d’intégrations dans les planificateurs courants et les machines virtuelles Azure. Indiquez :

  1. Système de préparation et de configuration de nœud pour convertir une machine virtuelle provisionnée en nœud HPC.
  2. Mise à l’échelle automatique pour les planificateurs HPC qui traduisent les exigences des tâches du planificateur HPC en ressources Azure.

Que peut faire CycleCloud

CycleCloud s’adresse aux opérateurs HPC (administrateurs et utilisateurs) qui déploient des systèmes HPC sur Azure et qui souhaitent répliquer l’infrastructure qu’ils ont exécutée en interne, du planificateur HPC aux points de montage du système de fichiers pour les installations d’applications et l’accès aux données. Ces utilisateurs examinent particulièrement les applications, les moteurs de flux de travail et les pipelines de calcul de prise en charge sans avoir à rééquiper leurs processus internes.

CycleCloud fournit une syntaxe de création de modèles riche et déclarative qui permet aux utilisateurs de décrire leur système HPC, de la topologie de cluster (le nombre et les types de nœuds de cluster), jusqu’aux points de montage et aux applications qui seront déployés sur chaque nœud. CycleCloud est conçu pour fonctionner avec des planificateurs HPC tels que PBSPro, Slurm, IBM LSF, Grid Engine et HT Condor, ce qui permet aux utilisateurs de créer différentes files d’attente dans chaque planificateur et de les mapper aux nœuds de calcul de différentes tailles de machine virtuelle sur Azure. En outre, les plug-ins de mise à l’échelle automatique sont intégrés aux nœuds principaux du planificateur qui écoutent les files d’attente de travaux dans chaque système et dimensionner le cluster de calcul en conséquence en interagissant avec l’API REST de mise à l’échelle automatique s’exécutant sur le serveur d’applications.

En plus de l’approvisionnement et de la création de nœuds HPC, CycleCloud fournit également une infrastructure pour la préparation et la configuration d’une machine virtuelle, fournissant essentiellement un système permettant de convertir une machine virtuelle nue en composant fonctionnel d’un système HPC. Grâce à cette infrastructure, les utilisateurs peuvent effectuer une configuration du dernier kilomètre sur une machine virtuelle.

En outre, CycleCloud fournit les fonctionnalités suivantes :

  • Accès utilisateur

    CycleCloud intègre la prise en charge de la création de comptes d’utilisateur locaux sur chaque nœud d’un système HPC. Avec ce système, l’accès utilisateur peut être contrôlé via un seul plan de gestion sans déployer de service d’annuaire.

  • Surveillance

    Les métriques au niveau du nœud sont collectées et affichées dans l’interface utilisateur CycleCloud. Ils sont utiles pour surveiller la charge sur le système et peuvent être connectés aux services de création de rapports et d’alerte.

  • Logging

    CycleCloud fournit un système pour la journalisation des activités et des événements au niveau du nœud et du serveur d’applications.

  • Portabilité

    Le système ne demande pas l’utilisation d’une image de machine virtuelle ou d’un système d’exploitation spécifique. CycleCloud prend en charge les principaux systèmes d’exploitation Windows et Linux sur les nœuds HPC. En outre, les utilisateurs peuvent créer leur propre image de machine virtuelle et l’utiliser dans leur système HPC.

  • Infrastructure as code

    Étant donné que tout ce qui est créé dans CycleCloud est défini dans les modèles et les scripts de configuration, les systèmes HPC déployés via CycleCloud sont reproductibles et portables. Cela assure la cohérence des opérateurs dans le déploiement de systèmes HPC dans différents environnements : bac à sable, développement, test et production. Les opérateurs peuvent également déployer des systèmes HPC identiques pour différents groupes d’entreprises ou équipes pour des problèmes comptables distincts.

  • Charges de travail faiblement couplées ou étroitement couplées

    Les clusters HPC créés par CycleCloud sont conçus non seulement pour prendre en charge des travaux faiblement couplés ou parallèles embarrassants où la mise à l’échelle (la taille du cluster) est la principale préoccupation. Les clusters CycleCloud sont également conçus en tenant compte de l’ossature Infiniband d’Azure, prenant en charge les charges de travail étroitement couplées ou basées sur MPI, où la proximité des nœuds et la latence réseau sont essentielles. Ces concepts de scale-out et étroitement couplés sont ancrés dans les intégrations du planificateur que CycleCloud prend en charge.