Cloud-Natives Projekt: Volcano Version 1.6 fertiggestellt
Die Cloud Native Computing Foundation hat die VerfĂĽgbarkeit der Version 1.6 des Open-Source-Batch-Computing-Projekts Volcano bekanntgegeben.
- Frank-Michael Schlede
Im April 2022 hatte die Cloud Native Computing Foundation (CNCF) Volcano als erstes Batch-Computing-Projekt in ihren Inkubator aufgenommen. Die Software soll es unter anderem möglich machen, Anwendungen für High Performance Computing (HPC), Big Data und Künstliche Intelligenz (KI) Cloud-nativ umzusetzen. Die jetzt vorgestellte Version 1.6 von Volcano bietet neue Funktionen wie elastische Auftragsverwaltung, dynamische Planung und Neuplanung auf der Grundlage der tatsächlichen Ressourcenauslastung sowie ein Plug-in für Message-Passing-Interface-Aufträge.
Planung fĂĽr elastische Jobs
Die Planung für elastische Jobs kann sowohl mit Volcano Jobs als auch mit PyTorch Jobs arbeiten. Diese neue Funktion soll KI-Training und Big Data-Analysen beschleunigen und zudem die Kosten durch die Nutzung von Spot-Instanzen in der Cloud reduzieren können.
Die Anzahl der für einen elastischen Job zulässigen Replikate liegt innerhalb der Werte [min,max]
. Dabei entspricht min
dem Wert minAvailable
des Jobs, und max
gibt die Anzahl der Replikate des Jobs an. Das elastische Scheduling-Modul weist den minAvailable
-Pods bevorzugt Ressourcen zu, um auf diese Weise sicherzustellen, dass ihre Mindestanforderungen an Ressourcen erfĂĽllt werden.
Befinden sich die Ressourcen im Leerlauf, werden sie vom Scheduler den Elastic Pods zugewiesen, um die Rechenleistung zu beschleunigen. Ist der Cluster allerdings knapp an Ressourcen, zieht der Scheduler die Ressourcen der elastischen Pods vor, wodurch ein Scale-in ausgelöst wird. Der Scheduler gleicht die Ressourcenzuweisung auch anhand von Prioritäten aus. So kann dann beispielsweise ein Auftrag mit hoher Priorität die Ressourcen eines elastischen Pods für einen Auftrag mit niedriger Priorität vorwegnehmen. Entwickler und Entwicklerinnen finden einen sehr ausführlichen Beitrag zu dieser Technik auf GitHub.
Prometheus hilft dem Planungsmechanismus
Der aktuelle Planungsmechanismus, der bei Volcano zum Einsatz kommt, basiert auf Anforderung und Zuweisung von Ressourcen. Allerdings hat das Entwicklerteam hinter der Software festgestellt, dass diese Vorgehensweise zu einer unausgewogenen Auslastung der Knotenressourcen führen kann. So kann ein Nutzer oder eine Nutzerin beispielsweise einen Pod auf einem Knoten mit einer extrem hohen Ressourcennutzung einplanen und so eine Knotenausnahme verursachen, während es einige andere Knoten im Cluster gibt, die nicht stark genutzt werden.
Deshalb arbeitet Volcano in der Version 1.6.0 mit dem Observability-Tool Prometheus zusammen, um Entscheidungen über die Planung zu treffen. Prometheus sammelt Daten über die Ressourcennutzung von Clusterknoten, und Volcano verwendet diese Daten, um die Ressourcennutzung der Knoten so gut wie möglich auszugleichen. Entwicklerinnen und Entwickler können auch die Grenzen der CPUs und des Arbeitsspeichers für jeden Knoten konfigurieren. Das verhindert Knotenausnahmen, die durch Pods verursacht werden, die zu viele Ressourcen verwenden.
Plug-in für Message-Passing-Interface-Aufträge
Programmierer und Programmiererinnen können mit diesem Release nun auch Volcano Jobs verwenden, um Message-Passing-Interface-(MPI)-Aufträge auszuführen. Die in Volcano Jobs integrierten Plugins wie svc
, env
und ssh
konfigurieren automatisch die passwortfreie Kommunikation und die Injektion von Umgebungsvariablen für die Master und Worker von MPI-Jobs. Die Ausführung von MPI-Jobs soll dabei durch das MPI-Plug-in deutlich leichter geworden sein: So brauchen Entwickler und Entwicklerinnen sich nun nicht mehr um die Shell-Syntax, die Kommunikation zwischen Master und Worker oder die manuelle SSH-Authentifizierung kümmern und können einen MPI-Job nun auf weitaus einfachere Weise starten.
Weitere Informationen, die auch einen Quick Start Guide beinhalten, können Interessierte auf GitHub finden.
(fms)