Abaqus avec accélération GPU

Exploitez le plein potentiel d’Abaqus avec notre guide de démarrage pour application GPU.

Abaqus Standard

Abaqus/Standard utilise des technologies idéales pour les événements dynamiques à faible vitesse et statiques, qui exigent des solutions de contraintes extrêmement précises. À titre d'exemple, il peut s'agir de la pression de scellage d'un joint d'étanchéité, du roulement en état d'équilibre d'un pneu ou de la propagation d'une fissure sur un fuselage d'avion composite. Dans une même simulation, il est possible d'analyser un modèle en fonction du temps et de la fréquence.

Par rapport aux systèmes exclusivement basés sur le traitement CPU, Abaqus/Standard s’exécute jusqu’à 3,7 fois plus vite sur les systèmes équipés de GPU NVIDIA. Les utilisateurs peuvent ainsi bénéficier d’une productivité accrue et exécuter un plus grand nombre de simulations d’éléments finis pendant la même journée de travail.

Consultez notre dossier sur l’accélération des simulations Abaqus avec les GPU NVIDIA.  Cliquez ici pour savoir comment les GPU NVIDIA accélèrent Abaqus SIMULIA et le solveur FEA Standard de Dassault Systèmes.

Abaqus s’exécute jusqu’à 3,7 fois plus vite grâce à l’accélération GPU

Installation

Instructions de téléchargement et d’installation

Vous pouvez télécharger Abaqus Standard (version R2017x) sur le site Internet de 3ds SIMULIA. Retrouvez des instructions d’installation rapide ci-dessous :-

1. Téléchargez les fichiers d’installation au format ".tar". Les contenus de l’archive doivent être décompressés dans le même répertoire. Vous allez obtenir un sous-répertoire unique intitulé "AM_SIM_Abaqus_Extend.AllOS" qui contient le logiciel d’installation.

2. Exécutez le script shell et, optionnellement, installez la documentation, les fichiers de licence et les applications tierces dans l’ordre spécifié dans le guide d’installation.

Jetons de licence Abaqus — Réduction des coûts

Le modèle de licence d’Abaqus est basé sur un système de jetons offrant un maximum de flexibilité. Les utilisateurs peuvent ainsi exécuter une grande variété d’analyses, mais aussi recourir à Abaqus/CAE pour mettre en place des simulations spécifiques ou pour leurs opérations de post-traitement. Le nombre de jetons est calculé à partir du nombre de cœurs CPU requis par chaque simulation. Abaqus utilise la formule suivante pour déterminer le nombre de jetons (la valeur N représente le nombre de cœurs CPU).

Le graphique ci-après illustre cette équation et représente la façon dont le nombre de jetons de licence Abaqus augmente avec le nombre de cœurs CPU.

Le nombre de jetons de licence Abaqus augmente avec le nombre de cœurs.

La courbe bleue correspond au traitement CPU alors que la courbe verte met en valeur le traitement mixte (CPU+GPU). La structure en escalier de ces courbes présente la façon dont le nombre de jetons requis diminue alors que le nombre de cœurs CPU augmente. Lorsqu’un GPU est inclus à la simulation, il est compté comme un cœur CPU unique à des fins de calcul du nombre de jetons requis. La façon de compter un GPU est représentée par la courbe verte en escalier. Le nombre de cœurs CPU+GPU est quant à lui illustré par l’axe X secondaire en haut du graphique.

Les gains de l’accélération GPU sont mis en évidence par les différentes configurations de calcul (lignes pointillées
).

  • La première ligne pointillée sur l’axe X principal démontre que pour 8 cœurs CPU, un total de 12 jetons est requis. Si vous ajoutez un GPU à cette configuration, le nombre de cœurs passe à 9, mais le nombre de jetons requis reste à 12, comme l’illustre le point rouge.
  • La seconde ligne pointillée sur l’axe X principal démontre que pour 16 cœurs CPU, un total de 16 jetons est requis. Si vous ajoutez un ou deux GPU à cette configuration, le nombre de cœurs passe à 17 ou 18 respectivement, mais le nombre de jetons requis reste à 16, comme l’illustre le couple de points rouges.

La structure en escalier s’élargit à mesure que le nombre de cœurs augmente. Cela démontre que plus vous ajoutez de cœurs, plus la configuration est rentable. Les gains de performance sont encore plus visibles si vous associez des GPU aux CPU existants.

Exécution

Pour exécuter votre simulation Abaqus en profitant de l’accélération GPU, le drapeau "-gpus" doit être inclus à votre ligne de commande. La version 6.14 et les versions ultérieures permettent de combiner la fonctionnalité DMP Split (DMP et SMP) à l’accélération GPU en ajoutant le drapeau "-threads" ou "-mp_host_split" au drapeau "-gpus".

$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

Drapeaux et fonctions

1. –"cpus" : spécifie le nombre de cœurs CPU de la tâche.

2. "–gpus" : spécifie le nombre de GPU par processus DMP.

3. "–mp_host_split" : spécifie le nombre de processus DMP par nœud.

4. "–thread" : vous pouvez utiliser ce drapeau au lieu du drapeau "-mp_host_split" pour spécifier le nombre de threads par processus DMP.

À partir de la version 2016 d’Abaqus, il n’est plus nécessaire d'activer les GPU en mode exclusif. Nous vous recommandons toutefois de vérifier si les GPU ne sont pas en surcharge lors de l’exécution de tâches Abaqus multiples. Si c’est le cas, veuillez activer les GPU en mode exclusif pour que les processus DMP soient assignés à des GPU distincts. Pour activer les GPU en mode exclusif, veuillez utiliser la commande nvidia-smi suivante :

$nvidia-smi -c 3

Avec une machine dotée d’un socket à double CPU, créez deux processus DMP et utilisez un ou deux GPU pour chaque processus DMP.

Placez par ailleurs un fichier local abaqus_v6.env (avec les contenus spécifiés ci-dessous) dans le répertoire project/run et spécifiez des commandes additionnelles pour améliorer les performances.

# 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

Chaque carte Tesla P100 inclut deux GPU Pascal et chaque carte Tesla K80 inclut deux GPU Kepler. Les benchmarks ont été utilisés avec des variations des lignes de commande et d’environnement pour différentes versions d’Abaqus. Consultez notre dossier sur l’accélération des calcul Abaqus avec les GPU NVIDIA pour en savoir plus sur les paramètres d’environnement et les configurations annexes.

Performances d’Abaqus/Standard 2017 avec configurations CPU et GPU NVIDIA

Configuration système recommandée

Configuration matérielle

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

Déployez votre solution GPU personnalisée.