Partager via


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

CycleCloud n’est pas un planificateur, mais plutôt une plateforme qui vous permet de déployer votre propre planificateur sur Azure. Le planificateur gère et distribue des travaux dans un cluster de nœuds. CycleCloud fournit une API REST et une bibliothèque Python pour le développement d’adaptateurs de mise à l’échelle automatique pour les planificateurs. Avec ces adaptateurs, les clusters managés sont de taille supérieure ou descendante 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 distribue ces tâches dans des pools de ressources disponibles. Il prend en compte les besoins en ressources des travaux, des dépendances entre travaux et des priorités. Ces listes de travaux sont généralement appelées files d’attente.

CycleCloud est fourni avec prise en charge intégrée pour de nombreux planificateurs couramment utilisés (PBS Professional OSS, Slurm, IBM LSF, Grid Engine et HT Condor). Il fournit 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. Ils utilisent des 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. Utilisez les projets pour installer et initialiser des démons du planificateur sur les nœuds principaux et les nœuds de calcul.

Adaptateurs de planification

Les adaptateurs créés pour chaque type de planificateur jouent deux rôles principaux. Un rôle agrège les besoins en ressources des files d’attente des planificateurs. L’autre rôle traduit les besoins en ressources en demandes d’allocation pour les ensembles de tailles de machine virtuelle Azure. Construisez ces demandes d’allocation pour certaines contraintes. Ces contraintes peuvent inclure des quotas de machine virtuelle, des limites à la taille du cluster et des limites imposées par la topologie réseau InfiniBand pour les tailles de machine virtuelle appropriées. Dans certains aspects, ces adaptateurs ressemblent à un répartiteur qui négocie la demande et l’offre de plusieurs parties.

Écran

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 la gestion de la demande.

Allocator de nœud

L’allocateur de nœud s’exécute dans le serveur d’applications CycleCloud. Il reçoit la demande d’allocation des adaptateurs du planificateur par le biais d’une API REST, provisionne les ressources Azure requises pour répondre à la demande et présente les ressources approvisionnées aux adaptateurs du planificateur en tant que jeux de nœuds.

Remarque

Bien que les concepts sous-jacents soient communs entre les planificateurs, les détails de l’implémentation diffèrent entre les planificateurs. Pour plus d’informations sur chaque implémentation, consultez les pages de planificateur individuelles :