AWS Germany – Amazon Web Services in Deutschland

AWS Parallel Computing Service die innovative HPC as a Service Lösung

von Channy Yun (윤석찬), übersetzt durch Dr. Ramin Torabi.

Am 28. August 2024 haben wir den AWS Parallel Computing Service (AWS PCS) angekündigt. PCS ist ein neuer Managed Service, der Kunden dabei unterstützt, High Performance Computing (HPC)-Cluster einzurichten und zu verwalten, sodass sie ihre Berechnungen in praktisch jeder Größe auf AWS problemlos ausführen können. Mit dem Slurm [EN, Extern]-Scheduler können sie in einer vertrauten HPC-Umgebung arbeiten und so schneller Ergebnisse erzielen, anstatt sich Gedanken über die Infrastruktur machen zu müssen.

Im November 2018 haben wir AWS ParallelCluster eingeführt, ein von AWS supportetes Open-Source Cluster-Management-Tool, das Sie bei der Bereitstellung und Verwaltung von HPC-Clustern in der AWS-Cloud unterstützt. Mit AWS ParallelCluster können Kunden außerdem schnell Proof of Concept (PoC) und betriebsreife HPC-Berechenungsumgebungen erstellen und ausrollen. Sie können die AWS ParallelCluster Kommandozeile [EN], die API [EN], die Python-Bibliothek [EN] und die aus Open-Source-Paketen installierte Benutzeroberfläche verwenden. Bei AWS ParallelCluster sind Sie für Updates verantwortlich, zu denen auch die Ausserbetriebnahme und die erneute Bereitstellung von Clustern gehören können. Viele Kunden haben uns jedoch um einen vollständig verwalteten (fully-managed) AWS-Service gebeten, um operative Aufgaben beim Aufbau und Betrieb von HPC-Umgebungen zu eliminieren.

AWS PCS vereinfacht von AWS verwaltete HPC-Umgebungen und ist über die AWS-Managementkonsole, das AWS-SDK und die AWS-Kommandozeile (AWS CLI) zugänglich. Ihre Systemadministratoren können verwaltete Slurm-Cluster erstellen, die ihre Rechen- und Storagesysteme, Identitäten und Einstellungen für die Job Allokierung verwenden. AWS PCS verwendet Slurm, ein hochgradig skalierbares, fehlertolerantes HPC Schedulingsystem, welches von einer Vielzahl von HPC-Kunden, für die Durchführung und Orchestrierung von Berechnungen, verwendet wird. Endbenutzer wie Wissenschaftler, Forscher und Ingenieure können sich bei AWS PCS-Clustern einloggen, um HPC-Jobs auszuführen und zu verwalten, interaktive Software auf virtuellen Desktops zu verwenden und auf Daten zuzugreifen. Sie können ihre Workloads schnell auf AWS PCS übertragen, ohne dass eine aufwendige Portierung des Codes erforderlich ist.

Sie können vollständig verwaltete NICE DCV-Remote-Desktops für die Remote-Visualisierung verwenden und auf Job-Telemetrie oder Anwendungslogs zugreifen, sodass Spezialisten Ihre HPC-Workflows an einem Ort verwalten können.

PCS architecture diagram

AWS PCS wurde so entworfen, dass es sich für praktisch alle HPC Berechnungen eignet. Dazu zählen traditionelle und neu aufkommende Workloads sowie rechenintensive und datenintensive Berechnungen. Derartige Berechnungen werden häufig in technischen oder wissenschaftlichen Abteilungen durchgeführt. Einige der typischen Anwendungsfälle sind rechnergestützte Strömungsdynamik (Computational Fluid Dynamics – CFD), Wettervorhersagen, Finite-Elemente-Analyse (FEM), elektronische Entwurfsautomatisierung (EDA) und Reservoirsimulationen (Öl und Gas).

Dabei können die HPC Anwender die ihnen vertrauten Methoden zur Vorbereitung, Ausführung und Analyse von Simulationen bzw. Berechnungen, verwenden.

Erste Schritte mit dem AWS Parallel Computing Service

Um AWS PCS auszuprobieren, können Sie unser Tutorial zum Erstellen eines einfachen Clusters: Getting started with AWS PCS [EN] aus der AWS-Dokumentation verwenden. Zunächst erstellen Sie in Ihrem Account eine virtual private cloud (VPC) mit einem AWS CloudFormation-Template und ein Netzwerk-Filesystem mit Amazon Elastic File System (Amazon EFS) in der AWS-Region, in der Sie AWS PCS testen wollen. Weitere Informationen finden Sie in der AWS-Dokumentation unter Create a VPC [EN] und Create shared storage [EN].

1. Erstellen Sie einen Cluster

Wählen Sie in der AWS PCS-Konsole Create Cluster aus, um einen PCS-Cluster zu erstellen. Ein PCS-Cluster ist eine bleibende Ressource für die Verwaltung der Compute Nodes und die Ausführung der Jobs.

PCS cluster list

Geben Sie als Nächstes einen Namen für Ihren Cluster ein und wählen Sie die Größe der Controller-Instanz Ihres Slurm-Schedulers. Sie können Small (bis zu 32 Compute Instanzen und 256 Jobs), Medium (bis zu 512 Compute Instanzen und 8.192 Jobs) oder Large (bis zu 2.048 Compute Instanzen und 16.384 Jobs) für die Limits der Cluster-Workloads wählen. Wählen Sie im Abschnitt Networking Ihre erstellte VPC, das Subnetz zum Starten des Clusters und die auf Ihren Cluster angewendete Security Group aus.

PCS create cluster

Optional können Sie einige Parameter der Slurm-Konfiguration festlegen, z. B. eine Leerlaufzeit, bevor die Compute Nodes herunterskaliert werden, ein Prolog- und Epilog-Skriptverzeichnis auf gestarteten Compute Nodes und den von Slurm verwendeten Parameter für den zu verwendenden Schedulingalgorithmus.

Klicken Sie auf Create cluster (Cluster erstellen). Es dauert einige Minuten, bis der Cluster bereitgestellt ist.

2. Erstellen Sie Compute Node Groups

Nachdem Sie Ihren Cluster erstellt haben, können Sie Compute Node Groups erstellen, eine virtuelle Sammlung von Amazon Elastic Compute Cloud (Amazon EC2)-Instanzen, die AWS PCS verwendet, um einen interaktiven Zugriff auf einen Cluster bereitzustellen oder Jobs in einem Cluster auszuführen. Wenn Sie eine Compute Node Group definieren, geben Sie allgemeine Merkmale wie EC2-Instanz-Typen, minimale und maximale Instanz-Anzahl, Ziel-VPC-Subnetze, Amazon Machine Image (AMI) [EN], purchase option (Kaufoption) und custom launch configuration (benutzerdefinierte Startkonfiguration) an. Compute Node Groups benötigen ein IAM Instanzprofil, um eine AWS Identity and Access Management (IAM)-Rolle an eine EC2-Instanz zu übergeben, und ein EC2-Launch template welches AWS PCS zur Konfiguration der von ihr gestarteten EC2-Instances verwendet. Weitere Informationen finden Sie in der AWS-Dokumentation unter Create a launch template [EN] und Create an instance profile [EN].

Um eine Compute Node Group in der Konsole zu erstellen, gehen Sie zu Ihrem Cluster und wählen Sie im Compute node groups tab die Schaltfläche Create compute node group.

Sie können zwei Compute Node Groups erstellen: eine Login Node Group, auf deren Instanzen Endanwender sich einloggen können, und eine Compute Node Group zur Berechnung der HPC-Jobs.

Um eine Compute Node Group zu erstellen, auf der HPC-Jobs ausgeführt werden, geben Sie einen Namen für die Compute Node Group ein und wählen Sie ein zuvor erstelltes EC2-Launch template, ein IAM-Instance-Profil und Subnetze aus, um Compute Nodes in Ihrer Cluster-VPC zu starten.

Wählen Sie als Nächstes Ihre bevorzugten EC2-Instance-Typen aus, die Sie beim Starten von Rechenknoten verwenden möchten, sowie die Minimum- und Maximalanzahl der Instanzen für die Skalierung. Ich habe mich im Screenshot für den Instance-Typ hpc6a.48xlarge und die Skalierungsbeschränkung auf bis zu acht Instancen entschieden. Für einen Login Node können Sie eine kleinere Instanz wählen, z. B. eine c6i.xlarge Instance. Sie können auch entweder die On-Demand– oder die Spot EC2-Pricingoption wählen, sofern der Instance-Typ dies unterstützt. Optional können Sie ein bestimmtes AMI auswählen.

Klicken Sie auf Create. Es dauert einige Zeit, bis die Compute Node Group bereitgestellt ist. Weitere Informationen finden Sie in der AWS-Dokumentation unter Create a compute node group to run jobs [EN] und Create a compute node group for login nodes [EN].

3. Erstellen Sie Ihre HPC-Jobs und führen Sie diese aus

Nachdem Sie Ihre Compute Node Group erstellt haben, senden Sie einen Job an eine Queue (Warteschlange), um ihn auszuführen. Der Job bleibt in der Queue, bis AWS PCS ihn auf der Grundlage der verfügbaren bereitgestellten Kapazität startet, und er in einer Compute Node Group ausgeführt wird. Jede Queue ist einer oder mehreren Compute Node Groups zugeordnet, welche die für die Berechnung erforderlichen EC2-Instanzen bereitstellen.

Um eine Queue in der Konsole zu erstellen, gehen Sie zu Ihrem Cluster und wählen Sie im Tab Queues die Schaltfläche Create queue.

Geben Sie einen Namen für Ihre Queue ein und wählen Sie die Compute Node Groups aus, die Ihrer Queue zugewiesen werden sollen.

Klicken Sie auf Create und warten Sie, bis die Queue erstellt wurde.

Wenn die Login-Compute Node Group aktiv ist, können Sie den AWS Systems Manager verwenden, um sich auf einer der gestarteten EC2-Instanzen einzuloggen. Dazu wählen Sie in der Amazon EC2-Konsole die relevante EC2-Instanz der Login- Compute Node Group aus und klicken auf den Connect Button. Weitere Informationen finden Sie in der AWS-Dokumentation unter Create a queue to submit and manage jobs [EN] (eine Queue erstellen und Jobs Einreichen und Verwalten) und Connect to your AWS PCS cluster [EN] (Mit Ihrem AWS PCS Cluster verbinden) her.

Um einen Job mit Slurm auszuführen, bereiten Sie ein Batchskript vor, das die Jobanforderungen spezifiziert, und senden es mit dem Befehl sbatch an eine Queue. In der Regel erfolgt dies von einem Netzwerk-Verzeichnis aus, sodass die Login- und Compute Nodes über einen gemeinsames Storage für den Zugriff auf Dateien verfügen.

Sie können mit Slurm auch einen MPI-Job (Message Passing Interface) in AWS PCS ausführen. Weitere Informationen finden Sie in der AWS-Dokumentation unter Run a single node job with Slurm [EN] (Einen Job mit Slurm auf einem Knoten ausführen) oder Run a multi-node MPI job with Slurm [EN] (Einen MPI-Job mit mehreren Knoten mit Slurm ausführen).

Sie können einen vollständig verwalteten NICE DCV-Remote-Desktop zur Visualisierung verbinden. Verwenden Sie zunächst die CloudFormation-Vorlage aus dem HPC Recipes for AWS GitHub-Repository [EN].

In diesem Beispiel habe ich den OpenFOAM [EN, Extern] motorBike-Standardjob [EN, Extern] verwendet, um die stationäre Luftströmung um ein Motorrad samt Fahrer zu berechnen. Diese Simulation wurde auf den 288 CPU-Kernen von drei hpc6a-Instanzen ausgeführt. Durch Einloggen in der Weboberfläche einer DCV-Instanz kann das Ergebnis mit ParaView [EN, Extern] visualisiert werden.

Nachdem Sie die HPC-Jobs mit dem von Ihnen erstellten Cluster abgeschlossen haben, können Sie die von Ihnen erstellten Ressourcen löschen, um weitere Kosten zu vermeiden. Weitere Informationen finden Sie in der AWS-Dokumentation unter Delete your AWS resources for AWS PCS [EN] (Löschen Sie Ihre PCS AWS-Ressourcen).

Dinge, die Sie wissen sollten

Hier sind ein paar Dinge, die Sie über diese Funktion wissen sollten:

  • Slurm Versionen – AWS PCS unterstützt zunächst Slurm in Version 23.11 und bietet Mechanismen, die es Kunden ermöglichen, ihre Slurm-Majorversionen zu aktualisieren, sobald diese verfügbar ist. Darüber hinaus ist AWS PCS so konzipiert, dass der Slurm-Controller automatisch mit Patches aktualisiert wird. Um mehr zu erfahren, besuchen Sie die Slurm versions [EN] in der AWS-Dokumentation.
  • Capacity Reservations – Mithilfe von On-Demand-Kapazitätsreservierungen (OCDR) können Sie EC2-Kapazität in einer bestimmten Availability Zone und für einen bestimmten Zeitraum reservieren, um sicherzustellen, dass Ihnen die erforderliche Rechenkapazität bei Bedarf zur Verfügung steht. Weitere Informationen finden Sie in der AWS-Dokumentation unter Capacity Reservations in AWS PCS [EN].
  • Netzwerkdateisysteme – Sie können Netzwerkdateisysteme mounten, auf die Daten und Dateien geschrieben und abgerufen werden können, einschließlich Amazon FSx für NetApp ONTAP, Amazon FSx für OpenZFS und Amazon File Cache [EN] sowie Amazon EFS und Amazon FSx for Lustre. Sie können auch eigene Filesysteme wie z.B. NFS-Server verwenden. Weitere Informationen finden Sie in der AWS-Dokumentation unter Using network file systems with AWS PCS [EN].

Jetzt verfügbar

AWS Parallel Computing Service (PCS) [EN] ist jetzt in den Regionen US East (N. Virginia), AWS US East (Ohio), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Frankfurt), Europe (Ireland), Europe (Stockholm) verfügbar.

AWS PCS startet Ressourcen in Ihrem AWS-Account. Diese Ressourcen werden Ihnen angemessen in Rechnung gestellt. Weitere Informationen finden Sie unter AWS Parallel Computing Service pricing.

Probieren Sie es aus und senden Sie Feedback an AWS re:POST oder über Ihre üblichen AWS-Support-Kontakte.

— Channy

P.S. Besonderer Dank geht an Matthew Vaughn [EN, Extern], einen der wichtigsten Developer Advocates bei AWS, für seinen Beitrag beim erstellen einer HPC-Testumgebung.

Channy Yun ist Principal Developer Advocate bei AWS. Als begeisterter Unterstützer des offenen Webs und Blogger aus Leidenschaft liebt er gemeinschaftsgetriebtes Lernen und den Wissensaustausch rund um Technologie.