High Performance Computing: OpenFOAM auf Oracle Cloud Infrastructure
OpenFOAM ist ein Tool zur numerischen Fluiddynamik, das in der wissenschaftlichen Forschung in Wissenschaft und Industrie eingesetzt wird, um eine Vielzahl komplexer Fluidflussprobleme zu lösen.
OpenFOAM kann verwendet werden, um neue Solver und physische Modelle zu entwickeln und zu testen. Die parallele Fähigkeit ist gut für die Lösung von Problemen auf Forschungsebene, die große Ressourcen erfordern. Sie kann inkompressible Strömungsprobleme mit Turbulenz lösen und sowohl vorgemischte als auch nicht vorgemischte Verbrennung simulieren.
Architektur
Die Architektur verwendet einen Bastion-/Head-Knoten, um eine Verbindung zum HPC-Cluster herzustellen.
Der Kopfknoten enthält die Installation von OpenFOAM und das Modell. Es verfügt über das MPI (Message Passaging Interface) und orchestriert den Job und führt ihn aus. Die Jobergebnisse werden auf dem Kopfknoten gespeichert.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Architektur der Abbildung - hpc.png
Die Architektur umfasst folgende Komponenten:
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center, sogenannte Availability-Domains, enthält. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie (über Länder oder sogar Kontinente) trennen.
- Availability-Domains
Availability-Domains sind eigenständige, unabhängige Data Center in einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz bietet. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung oder Kühlung oder das interne Availability-Domainnetzwerk. Daher ist es wahrscheinlich, dass sich ein Fehler in einer Availability-Domain auf die anderen Availability-Domains in der Region auswirkt.
- Faultdomains
Eine Fehlerdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain hat drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physische Serverfehler, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie herkömmliche Data Center-Netzwerke erhalten VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere nicht überlappende CIDR-Blöcke haben, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die für eine Region oder eine Availability-Domain gelten können. Jedes Subnetz besteht aus einem fortlaufenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach dem Erstellen ändern. Ein Subnetz kann öffentlich oder privat sein.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Typ des Traffics angeben, der im Subnetz und aus dem Subnetz zugelassen werden muss.
- Instanzpool
Mit Instanzpools können Sie mehrere Compute-Instanzen innerhalb derselben Region wie eine Gruppe erstellen und verwalten. Sie ermöglichen außerdem die Integration mit anderen Services wie Load Balancing Service und IAM.
- Bastionknoten/Headknoten
Verwenden Sie ein webbasiertes Portal, um eine Verbindung zum Hauptknoten herzustellen und HPC-Jobs zu planen. Die Jobanforderung wird über FastConnect oder IPSec-VPN an den Kopfknoten gesendet. Der Kopfknoten sendet auch das Kunden-Dataset an den Dateispeicher und kann eine Vorverarbeitung der Daten durchführen.
Der Kopfknoten stellt HPC-Knotencluster bereit und löscht HPC-Cluster nach Abschluss des Jobs.
- HPC-Clusterknoten
Der Kopfknoten stellt diese Compute Nodes bereit und beendet sie, bei denen es sich um RDMA-fähige Cluster handelt. Sie verarbeiten die im Dateispeicher gespeicherten Daten und geben die Ergebnisse in den Dateispeicher zurück.
- Cloud Guard
Mit Oracle Cloud Guard können Sie die Sicherheit Ihrer Ressourcen in der Cloud überwachen und verwalten. Cloud Guard untersucht Ihre Ressourcen auf Sicherheitsschwächen im Zusammenhang mit der Konfiguration und überwacht Betreiber und Benutzer auf riskante Aktivitäten. Wenn Sicherheitsprobleme oder -risiken ermittelt werden, empfiehlt Cloud Guard Korrekturmaßnahmen und unterstützt Sie bei diesen Aktionen auf Basis von Sicherheitsrezepten, die Sie definieren können.
- NFS-Server
Einer der HPC-Knoten wird als NFS-Server hochgestuft.
Empfehlungen
Ihre Anforderungen können sich von der hier beschriebenen Architektur unterscheiden. Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.
- VCN
Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im standardmäßigen privaten IP-Adressbereich befinden.
Wählen Sie CIDR-Blöcke, die sich nicht mit einem anderen Netzwerk überschneiden (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider), in dem Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie beim Entwerfen der Subnetze den Verkehrsfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
- Sicherheit
Mit Oracle Cloud Guard können Sie die Sicherheit Ihrer Ressourcen in OCI proaktiv überwachen und verwalten. Cloud Guard verwendet Detektorrezepte, die Sie definieren können, um Ihre Ressourcen auf Sicherheitsschwächen zu untersuchen und Operatoren und Benutzer auf riskante Aktivitäten zu überwachen. Wenn eine fehlerhafte oder unsichere Aktivität erkannt wird, empfiehlt Cloud Guard Korrekturmaßnahmen und unterstützt diese Aktionen basierend auf von Ihnen definierten Antworten.
Für Ressourcen, für die eine maximale Sicherheit erforderlich ist, empfiehlt Oracle, Sicherheitszonen zu verwenden. Eine Sicherheitszone ist ein Compartment, das mit einem von Oracle definierten Rezept von Sicherheits-Policys verknüpft ist, die auf Best Practices basieren. Beispiel: Die Ressourcen in einer Sicherheitszone dürfen nicht aus dem öffentlichen Internet zugänglich sein und müssen mit vom Kunden verwalteten Schlüsseln verschlüsselt werden. Wenn Sie Ressourcen in einer Sicherheitszone erstellen und aktualisieren, validiert Oracle Cloud Infrastructure die Vorgänge anhand der Policys im Sicherheitszonenrezept und verweigert Vorgänge, die eine der Policys verletzen.
- HPC-Knoten
Zwei Szenarios:
- Deployment auf VM-Ausprägungen mit Instanzpool, wie im Architekturdiagramm dargestellt. Dieses Szenario bietet geringere Kosten, aber auch niedrigere Leistung.
Verwenden Sie VM.Standard.E3.Flex oder VM.Standard.E4.Flex mit File Storage Service.
- Bereitstellung mit HPC BARE Metal-Ausprägungen für volle Performance.
Verwenden Sie BM.HPC2.36-Ausprägungen mit 6.4-TB lokalem NVMe-SSD-Speicher, 36 Cores und 384-GB-Speicher pro Knoten.
- Deployment auf VM-Ausprägungen mit Instanzpool, wie im Architekturdiagramm dargestellt. Dieses Szenario bietet geringere Kosten, aber auch niedrigere Leistung.
Überlegungen
Beachten Sie beim Deployment dieser Referenzarchitektur die folgenden Punkte.
- Performance
Bestimmen Sie je nach Größe der Workload, wie viele Cores OpenFOAM ausgeführt werden soll. Diese Entscheidung stellt sicher, dass die Simulation rechtzeitig abgeschlossen wird.
Um die beste Performance zu erzielen, wählen Sie die richtige Compute-Ausprägung mit entsprechender Bandbreite.
- Verfügbarkeit
Verwenden Sie eine High Availability-Option basierend auf Ihren Deployment-Anforderungen und Ihrer Region. Zu den Optionen gehört die Verwendung mehrerer Availability-Domains in einer Region und Faultdomains.
- Kostenfaktor
Eine Bare-Metal-GPU-Instanz liefert die erforderliche CPU-Leistung für höhere Kosten. Bewerten Sie Ihre Anforderungen, um die entsprechende Compute-Ausprägung auszuwählen.
Sie können das Cluster löschen, wenn keine Jobs ausgeführt werden.
- Überwachung und Alerts
Richten Sie Monitoring und Alerts zur CPU- und Speicherauslastung für die Knoten ein, damit Sie die Ausprägung nach Bedarf vertikal oder horizontal skalieren können.
- Speicherung
Zusätzlich zu dem NVMe-SSD-Speicher, der mit der HPC-Ausprägung geliefert wird, können Sie Block-Volumes auch mit 32-Kopier-IOPS pro Volume anhängen. Dies wird durch das SLA mit der höchsten Performance von Oracle unterstützt. Wenn Sie unsere Lösungen zum Starten der Infrastruktur verwenden, wird standardmäßig ein nfs-share im NVMe-SSD-Speicher in /mnt installiert. Je nach Ihren Performanceanforderungen können Sie auch ein eigenes paralleles Dateisystem über dem NVMe-SSD-Speicher oder Blockspeicher installieren.
- Visualizer-Knoten
Je nach Ihren Anforderungen können Sie einen Visualizer-Knoten erstellen, z.B. einen VM- oder Bare-Metal-Knoten. Dieser Visualizer-Knoten kann Ihr Bastionhost oder separate sein. Je nach den Sicherheitsanforderungen für die Workload kann der Visualizer-Knoten im privaten oder öffentlichen Subnetz platziert werden.
Bereitstellen
Der für das Deployment dieser Referenzarchitektur erforderliche Code ist in GitHub verfügbar. Sie können den Code mit nur einem Klick in Oracle Cloud Infrastructure Resource Manager abrufen, den Stack erstellen und bereitstellen. Alternativ können Sie den Code von GitHub auf Ihren Computer herunterladen, den Code anpassen und die Architektur mit der Terraform-CLI bereitstellen.
- Mit Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf
Wenn Sie noch nicht angemeldet sind, geben Sie den Mandanten und die Benutzerzugangsdaten ein.
- Prüfen und akzeptieren Sie die Vertragsbedingungen.
- Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
- Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
- Nachdem Sie den Stack erstellt haben, klicken Sie auf Terraform-Aktionen, und wählen Sie Planen aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie anschließend die Aktion Planen erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden.
- Klicken Sie auf
- Mit dem Terraform-Code in GitHub bereitstellen:
- Gehen Sie zu GitHub.
- Klonen Sie das Repository, oder laden Sie es auf Ihren lokalen Computer herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.