Concepts de planification et de mise à l’échelle automatique de CycleCloud

CycleCloud n’est pas un planificateur, mais plutôt une plateforme qui permet aux utilisateurs de déployer leur propre planificateur sur Azure, pour gérer et distribuer des travaux dans un cluster de nœuds. En outre, CycleCloud fournit une API REST et une bibliothèque Python pour le développement d’adaptateurs de mise à l’échelle automatique pour les planificateurs, ce qui permet à ces clusters managés d’effectuer une taille supérieure ou inférieure en fonction de la longueur des files d’attente de travaux et des stratégies de gouvernance.

Diagramme d’orchestration

Planificateurs

Un planificateur est un logiciel qui accepte une liste de travaux (ou de tâches) et les distribue dans des pools de ressources disponibles, en tenant compte des besoins en ressources des travaux, ainsi que des dépendances et priorités entre travaux. Ces listes de travaux sont couramment appelées files d’attente.

CycleCloud est fourni avec la prise en charge intégrée d’un certain nombre de planificateurs couramment utilisés (PBS Professional OSS, Slurm, IBM LSF, Grid Engine et HT Condor), fournissant des modèles pour le déploiement de ces planificateurs sur Azure. Ces modèles sont des topologies par défaut, qui représentent les meilleures pratiques pour la création de clusters HPC sur Azure qui tirent parti de fonctionnalités spécialisées uniques, telles que la mise en réseau InfiniBand à faible latence.

En outre, les projets sont créés pour chaque planificateur et utilisés pour installer et initialiser des démons de planificateur sur des nœuds principaux et des nœuds de calcul.

Adaptateurs du planificateur

Les adaptateurs créés pour chaque type de planificateur jouent deux rôles principaux : 1) agréger les besoins en ressources à partir des files d’attente du planificateur et 2) traduire les besoins en ressources en demandes d’allocation pour des ensembles de tailles de machines virtuelles Azure. Ces demandes d’allocation sont construites avec certaines contraintes à l’esprit, par exemple les quotas de machines virtuelles, les limites de taille du cluster et les limites imposées par la topologie réseau InfiniBand (pour les tailles de machine virtuelle appropriées). Dans certains aspects, ces adaptateurs ressemblent à un courtier qui négocie la demande et l’offre de plusieurs parties.

Monitor

Le moniteur est un processus qui s’exécute dans le serveur d’applications CycleCloud et interroge régulièrement les services Azure pour la disponibilité des ressources dans l’abonnement Azure. Ce moniteur fournit ces informations aux adaptateurs du planificateur pour le répartiteur de la demande.

Allocateur de nœud

L’allocateur de nœud s’exécute sur le serveur d’applications CycleCloud. Il reçoit la demande d’allocation des adaptateurs du planificateur via une API REST, provisionne les ressources Azure nécessaires pour répondre à la demande et présente les ressources approvisionnées aux adaptateurs du planificateur sous forme d’ensembles de nœuds.

Notes

Bien que les concepts sous-jacents ci-dessus soient courants parmi les planificateurs, les détails de l’implémentation diffèrent d’un planificateur à l’autre. Pour plus d’informations détaillées sur chaque implémentation, consultez les pages du planificateur individuel.