CycleCloud: Konzepte zur Planung und automatischen Skalierung

CycleCloud ist kein Planer, sondern eine Plattform, die es Benutzern ermöglicht, ihren eigenen Planer in Azure bereitzustellen und Aufträge in einem Cluster von Knoten zu verwalten und zu verteilen. Darüber hinaus bietet CycleCloud eine REST-API und eine Python-Bibliothek zum Entwickeln von Adaptern für die automatische Skalierung für Planer, sodass diese verwalteten Cluster entsprechend der Länge von Auftragswarteschlangen und Governancerichtlinien eine Größe nach oben oder unten festlegen können.

Orchestrierungsdiagramm

Zeitplaner

Ein Planer ist eine Software, die eine Liste von Aufträgen (oder Aufgaben) akzeptiert und diese Aufgaben in Pools verfügbarer Ressourcen verteilt, wobei die Ressourcenanforderungen der Aufträge sowie die abhängigkeiten und Prioritäten zwischen aufträgen berücksichtigt werden. Diese Auftragslisten werden häufig als Warteschlangen bezeichnet.

CycleCloud bietet integrierte Unterstützung für eine Reihe von häufig verwendeten Planern (PBS Professional OSS, Slurm, IBM LSF, Grid Engine und HT Condor), die Vorlagen für die Bereitstellung dieser Planer in Azure bereitstellen. Bei diesen Vorlagen handelt es sich um Standardtopologien, die bewährte Methoden für die Erstellung von HPC-Clustern in Azure darstellen, die einzigartige spezialisierte Features wie InfiniBand-Netzwerke mit geringer Latenz nutzen.

Darüber hinaus werden Projekte für jeden Planer erstellt und zum Installieren und Initialisieren von Scheduler-Daemons auf Hauptknoten und Computeknoten verwendet.

Planeradapter

Adapter, die für jeden Planertyp erstellt wurden, spielen zwei primäre Rollen: 1) aggregieren die Ressourcenanforderungen aus Planerwarteschlangen und 2) übersetzen die Ressourcenanforderungen in Zuordnungsanforderungen für Gruppen von Azure-VM-Größen. Diese Zuordnungsanforderungen werden unter Berücksichtigung bestimmter Einschränkungen erstellt, z. B. VM-Kontingente, Einschränkungen für die Größe des Clusters und Grenzwerte, die von der InfiniBand-Netzwerktopologie (für die entsprechenden VM-Größen) festgelegt werden. In bestimmten Aspekten ähneln diese Adapter einem Broker, der die Nachfrage und das Angebot von mehreren Parteien aushandelt.

Monitor

Der Monitor ist ein Prozess, der auf dem CycleCloud-Anwendungsserver ausgeführt wird und in regelmäßigen Abständen die Azure-Dienste auf Ressourcenverfügbarkeit im Azure-Abonnement abruft. Dieser Monitor stellt diese Informationen für die Planeradapter für die Bedarfsbroker bereit.

Knotenzuweisung

Die Knotenzuweisung wird auf dem CycleCloud-Anwendungsserver ausgeführt. Sie empfängt die Zuordnungsanforderung von den Planeradaptern über eine REST-API, stellt die azure-Ressourcen bereit, die zum Erfüllen der Anforderung erforderlich sind, und stellt die bereitgestellten Ressourcen den Planeradaptern als Knotensätze zurück.

Hinweis

Obwohl die oben genannten zugrunde liegenden Konzepte bei den Planern üblich sind, unterscheiden sich die Implementierungsdetails zwischen den Planern. Ausführlichere Informationen zu den einzelnen Implementierungen finden Sie auf den einzelnen Planerseiten.