CycleCloud: Kernkonzepte
Im Grunde ist ein HPC-System (High Performance Computing) ein Pool von Rechenressourcen, der von leistungsfähigen Dateisystemen unterstützt und durch Netzwerke mit geringer Latenz miteinander verbunden ist. Diese Berechnungsressourcen werden in der Regel von HPC-Schedulern verwaltet, Softwareanwendungen, die Aufträge planen.
Das Erstellen einzelner HPC-Systeme in Azure aus grundlegenden Infrastruktureinheiten wie Virtual Machines, Datenträgern und Netzwerkschnittstellen kann umständlich sein, insbesondere wenn diese Ressourcen kurzlebiger sind – nur für die Zeit vorhanden, die zum Lösen der anstehenden HPC-Aufgabe erforderlich ist. Darüber hinaus möchten Betreiber mehrere separate HPC-Umgebungen erstellen, die auf verschiedene Geschäftseinheiten, Forschungsteams oder Einzelpersonen zugeschnitten werden können. Die Verwaltung dieser mehreren HPC-Systeme kann betriebstechnische Komplexität aufweisen.
Was ist CycleCloud?
Azure CycleCloud ist ein Tool zum Erstellen von HPC-Systemen in Azure. Es orchestriert diese Systeme so, dass sie je nach HPC-Aufgaben elastisch dimensioniert werden, ohne dass grundlegende Azure-Bausteine mühsam verwaltet werden müssen. CycleCloud wurde von einem Team erfahrener HPC-Experten für HPC-Administratoren und -Benutzer entwickelt, insbesondere Benutzer, die HPC-Systeme in Azure erstellen möchten, die der internen HPC-Infrastruktur ähneln, mit der sie vertraut sind.
Im Betrieb ist CycleCloud ein Anwendungsserver, der auf einer Linux-VM in Azure oder auf einem lokalen Server installiert ist, der Zugriff auf Azure-APIs und -Ressourcen hat. CycleCloud erwirbt und stellt Azure-VMs zum Erstellen von CycleCloud-Clustern bereit, die Planer und Benutzeranwendungen integrieren können. CycleCloud bietet auch Integrationen zur automatischen Skalierung für eine Reihe von HPC-Planern und einen CycleCloud-Agent, der auf Azure-VMs ausgeführt wird.
Anwendungsserver
Dieser Anwendungsserver bietet Folgendes:
- Eine REST-API zum Erstellen und Verwalten von HPC-Systemen in Azure.
- Eine grafische Benutzeroberfläche, die es einem Benutzer ermöglicht, HPC-Systeme zu verwalten und zu überwachen.
- Eine CLI, die die Integration von CycleCloud in vorhandene Workflows erleichtert.
- Ein interner NoSQL-Datenspeicher, der den Cluster- und Knotenstatus zwischenspeichert.
- Ein Zuordnungs- und Orchestrierungssystem, das Azure-VMs erwirbt und verwaltet
- Ein Knotenüberwachungssystem für vorhandene VMs, die vor status Änderungen warnt.
Integrationen
CycleCloud bietet auch eine Reihe von Integrationen in gängige Planer und die Azure-VMs. Geben Sie Folgendes an:
- Ein Knotenvorbereitungs- und Konfigurationssystem zum Konvertieren einer bereitgestellten VM in einen HPC-Knoten.
- Automatische Skalierung für HPC-Planer, die HPC-Planeraufgabenanforderungen in Azure-Ressourcen übersetzen.
Was kann CycleCloud tun?
CycleCloud richtet sich an HPC-Operatoren (Administratoren und Benutzer), die HPC-Systeme in Azure bereitstellen und die intern ausgeführte Infrastruktur replizieren möchten, vom HPC-Planer bis zu Dateisystembereitstellungspunkten für Anwendungsinstallationen und Datenzugriff. Diese Benutzer betrachten insbesondere die Unterstützung von Anwendungen, Workflow-Engines und Rechenpipelines, ohne ihre internen Prozesse umrüsten zu müssen.
CycleCloud bietet eine umfassende und deklarative Vorlagensyntax, mit der Benutzer ihr HPC-System beschreiben können, von der Clustertopologie (Anzahl und Typen von Clusterknoten) bis hin zu den Bereitstellungspunkten und Anwendungen, die auf jedem Knoten bereitgestellt werden. CycleCloud ist für die Arbeit mit HPC-Planern wie PBSPro, Slurm, IBM LSF, Grid Engine und HT Condor konzipiert, sodass Benutzer unterschiedliche Warteschlangen in jedem Planer erstellen und sie Computeknoten unterschiedlicher VM-Größen in Azure zuordnen können. Darüber hinaus sind Plug-Ins für die automatische Skalierung in die Planerkopfknoten integriert, die auftragswarteschlangen in jedem System lauschen und den Computecluster entsprechend skalieren, indem sie mit der auf dem Anwendungsserver ausgeführten REST-API für die automatische Skalierung interagieren.
Neben der Bereitstellung und Erstellung von HPC-Knoten bietet CycleCloud auch ein Framework zum Vorbereiten und Konfigurieren eines virtuellen Computers und stellt im Wesentlichen ein System zum Konvertieren einer bare VM in eine funktionale Komponente eines HPC-Systems bereit. Über dieses Framework können Benutzer die Letzte Meile-Konfiguration auf einem virtuellen Computer durchführen.
Darüber hinaus bietet CycleCloud die folgenden Features:
Benutzerzugriff
CycleCloud bietet integrierte Unterstützung für das Erstellen lokaler Benutzerkonten auf jedem Knoten eines HPC-Systems. Mit diesem System kann der Benutzerzugriff über eine einzelne Verwaltungsebene gesteuert werden, ohne einen Verzeichnisdienst bereitzustellen.
Überwachung
Metriken auf Knotenebene werden gesammelt und auf der CycleCloud-Benutzeroberfläche angezeigt. Diese sind nützlich für die Überwachung der Auslastung des Systems und können in Berichterstellungs- und Warnungsdienste eingebunden werden.
Logging
CycleCloud bietet ein System zum Protokollieren von Aktivitäten und Ereignissen auf Knoten- und Anwendungsserverebene.
Portabilität
Das System schreibt nicht vor, dass ein bestimmtes VM-Image oder Betriebssystem verwendet wird. CycleCloud unterstützt die wichtigsten Windows- und Linux-Betriebssysteme auf HPC-Knoten. Darüber hinaus können Benutzer ihr eigenes VM-Image erstellen und dieses in ihrem HPC-System verwenden.
Infrastructure-as-Code
Da alles, was in CycleCloud erstellt wird, in Vorlagen und Konfigurationsskripts definiert ist, sind HPC-Systeme, die über CycleCloud bereitgestellt werden, wiederholbar und portabel. Dies bietet Operatoren Konsistenz bei der Bereitstellung von HPC-Systemen in verschiedenen Umgebungen: Sandbox, Entwicklung, Test und Produktion. Operatoren können auch identische HPC-Systeme für verschiedene Unternehmensgruppen oder Teams bereitstellen, um Buchhaltungsprobleme zu trennen.
Lose gekoppelte oder eng gekoppelte Workloads
HPC-Cluster, die von CycleCloud erstellt werden, unterstützen nicht nur lose gekoppelte oder peinlich parallele Aufträge, bei denen die Skalierung (die Größe des Clusters) das Hauptanliegen ist. CycleCloud-Cluster werden auch unter Berücksichtigung des Infiniband-Backbones von Azure entwickelt und unterstützen eng gekoppelte oder MPI-basierte Workloads, bei denen Knotennähe und Netzwerklatenz von entscheidender Bedeutung sind. Diese horizontalen und eng gekoppelten Konzepte sind in den Planerintegrationen verankert, die CycleCloud unterstützt.