Abaqus mit Grafikprozessorbeschleunigung

Anleitung für grafikprozessorfähige Anwendungen lesen und direkt beginnen

Abaqus/Standard

Die Technologie von Abaqus/Standard eignet sich perfekt für statische und dynamische Low-Speed-Ereignisse, wo äußerst akkurate Spannungsberechnungen von größter Wichtigkeit sind. Typische Anwendungsbeispiele sind Sperrdruck in Dichtverbindungen, stationär rollende Reifen oder die Rissausbreitung im Verbundwerkstoff des Flugzeugrumpfs. Abaqus macht es möglich, ein Modell sowohl im Zeit- als auch im Frequenzbereich einer einzelnen Simulation zu analysieren.

Abaqus/Standard läuft bis zu 3,7-mal schneller in NVIDIA-Systemen mit Grafikprozessorbeschleunigung im Vergleich zu reinen CPU-Systemen, sodass Benutzer mehr Finite-Elemente-Simulationen an einem Arbeitstag durchführen und so die Produktivität steigern können.

Lesen Sie das Whitepaper zum Beschleunigen von Abaqus-Simulationen mit NVIDIA-Grafikprozessoren.  Erfahren Sie hier, wie NVIDIA-Grafikprozessoren den Abaqus/Standard FEA Solver von Dassault Systèmes SIMULIA beschleunigen.

Abaqus läuft auf Grafikprozessoren 3,7-mal schneller

Installation

Download‑ und Installationsanleitung

Abaqus/Standard (Version R2017x) kann von der 3DS SIMULIA-Website heruntergeladen werden. Im Folgenden sind die Installationsanweisungen als Kurzversion aufgeführt:

1. Laden Sie die tar-Dateien herunter und extrahieren Sie den Inhalt dieser tar-Archive in ein einzelnes Verzeichnis. Dadurch sollte ein einzelnes Unterverzeichnis namens „AM_SIM_Abaqus_Extend.AllOS“ erstellt werden, das die Installationssoftware enthält.

2. Führen Sie das Shell-Skript aus und installieren Sie optional die Dokumentation, die Lizenz und die verbleibenden Anwendungen in der richtigen Reihenfolge, so wie im Installationsleitfaden beschrieben.

Abaqus-Lizenz-Token – Kosteneinsparungen

Die Abaqus-Lizenzierung basiert auf Token. Sie ist daher flexibel genug, dass Benutzer eine Vielzahl von Abaqus-Analysen durchführen und Abaqus/CAE zum Erstellen von Simulationsmodellen oder zum Visualisieren von Ergebnissen verwenden können. Die Anzahl der Token wird aus der Anzahl der CPU Rechenkerne berechnet, die für den Simulationslauf verwendet werden. Abaqus verwendet die folgende absteigende Berechnung um die Anzahl der Token zu ermitteln. In dieser Formel ist N die Anzahl der CPU-Rechenkerne.

In der folgenden Grafik wird diese Gleichung veranschaulicht. Sie zeigt, wie die Anzahl der Abaqus-Lizenz-Token mit zunehmender Anzahl von Rechenkernen zunimmt.

Wie die Anzahl der Abaqus-Lizenz-Token mit zunehmender Anzahl von Rechenkernen zunimmt.

Die blaue Kurve stellt reine CPU-Systeme dar, während die grüne Kurve Systeme mit CPU und Grafikprozessor darstellt. Das treppenförmige Muster in diesen Kurven zeigt, wie der Anstieg der erforderlichen Anzahl von Token abnimmt, wenn die Anzahl der CPU Rechenkerne zunimmt. Wenn ein Grafikprozessor in die Simulation eingefügt wird, wird dieser für die Berechnung der erforderlichen Token als einzelner CPU Rechenkern gezählt. Diese Art der Berechnung eines Grafikprozessors wird durch die grüne treppenförmige Kurve mit der entsprechenden Anzahl von CPU Rechenkernen und Grafikprozessoren in der zweiten x-Achse oben dargestellt.

Der Kostenvorteil durch Verwenden der Grafikprozessoren für Simulationen wird durch die beiden Gruppen von Berechnungskonfigurationen illustriert, die in der Abbildung durch gepunktete Linien
dargestellt werden:

  • Die erste gepunktete Linie, die auf der primären x-Achse an der Marke für 8 Cores angezeigt wird, gibt an, dass für 8 CPU Rechenkerne 12 Token erforderlich sind. Wenn die Simulation einen Grafikprozessor beinhaltet, beträgt die Anzahl der CPU-Rechenkerne 9, aber die Anzahl der Token bleibt bei 12, so wie durch den einzelnen roten Punkt gekennzeichnet.
  • Die zweite gepunktete Linie, die auf der primären x-Achse an der Marke für 16 Cores angezeigt wird, gibt an, dass für 16 CPU Rechenkerne 16 Token erforderlich sind. Wenn 1 oder 2 Grafikprozessoren zu den 16 CPU-Cores hinzugefügt werden, erhöht sich die Anzahl der CPU Rechenkerne auf 17 bzw. 18, aber die Anzahl der Token würde weiterhin 16 betragen, wie das Paar aus roten Punkten zeigt.

Das treppenförmige Muster zeigt bei zunehmenden Rechenkernen für beide Kurven breitere Stufen, was bedeutet, dass Systeme kosteneffizienter sind, wenn mehr CPU-Cores verwendet werden. Der Vorteil ist umso größer, je mehr Grafikprozessoren anstelle zusätzlicher CPUs verwendet werden.

Befehlsausführung

Um die Abaqus-Simulation in Grafikprozessoren auszuführen, muss das Kennzeichen „-gpus“ in die Befehlszeile eingefügt werden. Ab Release 6.14 kann die DMP-Split-Funktion (DMP und SMP) mit Grafikprozessorbeschleunigung kombiniert werden, indem das Kennzeichen „-threads“ oder „-mp_host_split“ mit dem Kennzeichen „-gpus“ kombiniert wird.

$Abaqus_2017 -interactive -j $job_name -inp $input_file_name -cpus $no_of_cpu_cores -gpus
$no_of_gpus_per_dmp -mp_host_split $no_of_dmp_per_node >& $output_file

Kennzeichen und Funktionen

1. –cpus: gibt die Anzahl von CPU-Cores für den Job an.

2. –gpus: gibt die Anzahl von Grafikprozessoren pro DMP-Prozess an.

3. –mp_host_split: gibt die Anzahl der DMP-Prozesse pro Knoten an.

4. –thread: Dieses Kennzeichen kann anstelle des Kennzeichens -mp_host_split verwendet werden und gibt die Anzahl der Threads pro DMP-Prozess an.

Ab Abaqus-Version 2016 ist es nicht mehr erforderlich, die Grafikprozessoren in den exklusiven Modus zu setzen. Es empfiehlt sich jedoch, stets zu prüfen, ob Grafikprozessoren übermäßig beansprucht werden, wenn mehrere Abaqus-Jobs ausgeführt werden. Wenn das zutrifft, setzen Sie die Grafikprozessoren in den exklusiven Modus für die DMP-Prozesse, die dann jeder auf einem separaten Grafikprozessor laufen. Die Grafikprozessoren werden im exklusiven Modus festgelegt, indem der folgende nvidia-smi Befehl ausgeführt wird:

$nvidia-smi -c 3

Erstellen Sie in einem System mit zwei CPU-Sockeln zwei DMP-Prozesse und verwenden Sie zwei Grafikprozessoren, einen für jeden DMP-Prozess.

Fügen Sie außerdem eine lokale Datei „abaqus_v6.env“ mit folgendem Inhalt in das Verzeichnis „project/run“ ein, um zusätzliche Befehle zur Leistungsverbesserung zu überschreiben und festzulegen.

# Overwrite files without questions
ask_delete=OFF
# Modify the Host List based on the number of Compute Nodes Used and
specify the CPU cores per node accordingly
# Set mpi CPU affinity mode at socket granularity
mp_mpirun_options = “-prot -aff:automatic:bandwidth:socket”
import os
os.environ['ABA_SRM_BALANCED']='ON'

Benchmarks

Jede Tesla P100-Karte hat einen einzelnen Pascal-Grafikprozessor und jede Tesla K80-Karte hat zwei Kepler-Grafikprozessoren. Die Benchmarktests werden mit verschiedenen Variationen der Befehlszeilen/Umgebungen für verschiedene Abaqus-Versionen durchgeführt. Im Whitepaper zur Abaqus-Berechnung mit NVIDIA-Grafikprozessoren finden Sie Umgebungseinstellungen und andere Konfigurationen.

Leistung von Abaqus/Standard 2017 in Systemen mit CPU und NVIDIA-Grafikprozessor

Empfohlene Systemkonfigurationen

Hardwarekonfiguration

Workstation

Parameter
Specs

CPU Architecture

x86

System Memory

48 GB or more

Disk

Minimum 500 GB

CPUs

2 CPU sockets (8+ cores, 2+ GHz)

GPU Model

Quadro GP100 for double precision compute

GPUs

1

Servers

Parameter
Specs

CPU Architecture

x86

System Memory

96-192GB

CPUs/Nodes

2 (8+ cores, 2+ GHz)

Total # of Nodes

1-10+

GPU Model

Tesla P100

GPUs/Node

1

Interconnect

Infiniband

Ihre ideale Grafikprozessorlösung