LS-DYNA

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page LS-DYNA and the translation is 37% complete.
Outdated translations are marked like this.
Other languages:

Introduction

Le logiciel LS-DYNA est disponible sur toutes nos grappes. Il a plusieurs applications en multiphysique, en mécanique des fluides, en transfert thermique et en dynamique des fluides. Les analyses peuvent s'effectuer sur des phénomènes distincts ou sur des simulations de phénomènes multiples comme le stress thermique ou l'interaction fluide-structure. LSTC a été acquis par ANSYS et LS-DYNA pourrait éventuellement être offert uniquement via le module ANSYS. Pour le moment, nous recommandons son utilisation tel que décrit ici.

Licence

Nous fournissons l'hébergement pour LS-DYNA; le logiciel est installé sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous. Cependant, plusieurs établissements, facultés et départements possèdent des licences qui peuvent être utilisées sur nos grappes. Il est aussi possible d'acheter une licence en contactant la compagnie directement; vous pourrez l'utiliser sur nos grappes via un serveur de licence Sharcnet.

Initial Setup and Testing

If your (existing or new) license server has never been used on the cluster where you plan to run jobs, firewall changes will first need to be done on both the cluster side and server side. This will typically require involvement from both our technical team and the technical people managing your license software. To arrange this, send an email containing the service port and IP address of your floating license server to Technical support. To check if your license file is working run the following commands:

module load ls-dyna
ls-dyna_s or ls-dyna_d

where its not necessary to specify any input file or arguments to run this test. The output header should contain a (non-empty) value for Licensed to: with the exception of CMC license servers. Press ^C to quit the program and return to the command line.

Configuration de votre fichier de licence

Le module LS-DYNA cherche l'information en rapport avec la licence à différents endroits, dont votre répertoire /home. Si vous avez votre propre serveur de licence, vous pouvez y accéder avec le fichier suivant :


File : ls-dyna.lic

#LICENSE_TYPE: network
#LICENSE_SERVER:<port>@<server>


Enregistrez ce fichier dans le répertoire $HOME/.licenses/ sur chacune des grappes. Les pare-feu des deux parties doivent être configurés; pour ce faire, faites parvenir les renseignements sur le port de service et l'adresse IP de votre serveur de licence au soutien technique. Pour vérifier si votre fichier de licence est correct, lancez les commandes

module load ls-dyna
ls-dyna_s

Si votre fichier a été localisé, le champ Licensed to: contiendra une valeur. Cliquez ensuite sur ^c pour quitter.

In 2019 Ansys purchased the Livermore Software Technology Corporation (LSTC), the developer of LS-DYNA. LS-DYNA licenses issued by Ansys since that time use ANSYS License servers. Licenses issued by LSTC may still use an LSTC license server. Also, some of our users obtain an LS-DYNA license through CMC Microsystems. This section explains how to configure your account or job script for each of these cases.

LSTC License

If you have a license issued to run on a LSTC License Server, there are two options to specify it:

Option 1) Specify your license server by creating a small file named ls-dyna.lic with the following contents:

File : ls-dyna.lic

#LICENSE_TYPE: network
#LICENSE_SERVER:<port>@<server>


where <port> is an integer number and <server> is the hostname of your LSTC License server. Put this file in directory $HOME/.licenses/ on each cluster where you plan to submit jobs. The values in the file are picked up by lsdyna when it runs. This occurs because the alliance module system sets LSTC_FILE=/home/$USER.licenses/ls-dyna.lic whenever you load ls-dyna or ls-dyna-mpi modules. This approach is recommended for users with a license hosted on a LSTC License Server since (compared to the next option) the identical settings will automatically be used by all jobs you submit on the cluster (without the need to specify them in each individual slurm script or setting them in your environment).

Option 2) Specify your license server by setting the following two environment variables in your slurm scripts:

export LSTC_LICENSE=network
export LSTC_LICENSE_SERVER=<port>@<server>

where <port> is an integer number and <server> is the hostname or IP address of your LSTC License server. These variables will take priority over any values specified in your ~/.licenses/ls-dyna.lic file which must exist (even if its empty) for any ls-dyna or ls-dyna-mpi module to successfully load; To ensure it exists run touch ~/.licenses/ls-dyna.lic once on the command line on each cluster you will submit jobs on. For further details see the official documentation.

ANSYS License

If your LS-DYNA license is hosted on an ANSYS License Server then set the following two environment variables in your slurm scripts:

export LSTC_LICENSE=ansys
export ANSYSLMD_LICENSE_FILE=<port>@<server>

where <port> is an integer number and <server> is the hostname or IP address of your ANSYS License server. These variables cannot be defined in your ~/.licenses/ls-dyna.lic file. The file however must exist (even if its empty) for any ls-dyna module to load. To ensure this run touch ~/.licenses/ls-dyna.lic once from the command line (or each time in your slurm scripts). Note that only module versions >= 13.1.1 will work with ANSYS License Servers.

CMC License

If your LS-DYNA license was purchased from CMC then set the following two environment variables depending on which cluster you are using:

export LSTC_LICENSE=ansys
Beluga:  export ANSYSLMD_LICENSE_FILE=6624@10.20.73.21
Cedar:   export ANSYSLMD_LICENSE_FILE=6624@172.16.121.25
Graham:  export ANSYSLMD_LICENSE_FILE=6624@199.241.167.222
Narval:  export ANSYSLMD_LICENSE_FILE=6624@10.100.64.10
Niagara: export ANSYSLMD_LICENSE_FILE=6624@172.16.205.199

where the various IP address correspond to the respective CADpass servers. No firewall changes are required to use a CMC license on any cluster since these have already been done. Since the remote CMC server that hosts ls-dyna licenses is ANSYS based, these variables cannot be defined in your ~/.licenses/ls-dyna.lic file. The file however must exist (even if its empty) for any ls-dyna module to load. To ensure this is the case run touch ~/.licenses/ls-dyna.lic once from the command line (or each time in your slurm scripts). Note that only module versions >= 13.1.1 will work with ANSYS License Servers.

Soumettre des tâches en lots

LS-DYNA offre des binaires pour faire exécuter des tâches sur des nœuds uniques (SMP, Shared Memory Parallel avec OpenMP) ou sur plusieurs nœuds (MPP, Message Passing Parallel avec MPI). Vous trouverez ci-dessous des scripts pour chacun des types de tâches.

Tâches avec un nœud unique

Pour connaître les modules pour faire exécuter les tâches sur un nœud unique, utilisez module spider ls-dyna. Pour soumettre des tâches à la queue, utilisez sbatch script-smp.sh. Le script suivant demande 8 cœurs sur un nœud de calcul unique. Le paramètre AUTO permet aux simulations spécifiques d'allouer plus de mémoire que le word de 100M alloué par défaut.

File : script-smp.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify
#SBATCH --time=0-03:00         # D-HH:MM
#SBATCH --cpus-per-task=8      # Specify number of cores
#SBATCH --mem=16G              # Specify total memory
#SBATCH --nodes=1              # Do not change
</div>

#export RSNT_ARCH=avx2          # Uncomment on beluga for versions < 14.1.0

<div class="mw-translate-fuzzy">
# module load StdEnv/2020      # Versions >= 13.0
# module load ls-dyna/13.0
</div>

<div class="mw-translate-fuzzy">
module load StdEnv/2016.4      # Versions =< 11.1
module load ls-dyna/11.1
</div>

#export LSTC_LICENSE=ansys      # Specify an ANSYS License Server
#export ANSYSLMD_LICENSE_FILE=<port>@<server>

export LSTC_MEMORY=AUTO        

ls-dyna_s ncpu=$SLURM_CPUS_ON_NODE i=airbag.deploy.k memory=100M
where 
ls-dyna_s = single precision smp solver
ls-dyna_d = double precision smp solver

Tâches avec plusieurs nœuds

Pour connaître les modules pour faire exécuter les tâches sur plusieurs nœuds, utilisez module spider ls-dyna-mpi. Pour soumettre une tâche, utilisez sbatch script-mpp.sh. Les scripts suivants sont pour soumettre des tâches avec un nombre total spécifique de nœuds entiers (par cœur) *OU* un nombre total spécifique de cœurs (par cœur).

Spécifier le nombre de nœuds

Le script suivant demande un nombre spécifique de nœuds de calcul entiers.

File : script-mpp-bynode.sh

#!/bin/bash
#SBATCH --account=def-account   # Specify
#SBATCH --time=0-03:00          # D-HH:MM
#SBATCH --ntasks-per-node=32    # Specify number cores per node (graham 32 or 44, cedar 48, beluga 40)
#SBATCH --nodes=2               # Specify number compute nodes (1 or more)
#SBATCH --mem=0                 # Use all memory per compute node (do not change)
</div>

#export RSNT_ARCH=avx2           # Uncomment on beluga for versions < 14.1.0

<div class="mw-translate-fuzzy">
module load StdEnv/2020        # Versions >= 13.0
module load ls-dyna-mpi/13.0
</div> 

<div class="mw-translate-fuzzy">
# module load StdEnv/2016.4    # Versions =< 11.1
# module load ls-dyna-mpi/11.1
</div>

#export LSTC_LICENSE=ansys       # Specify an ANSYS License Server
#export ANSYSLMD_LICENSE_FILE=<port>@<server>

export LSTC_MEMORY=AUTO 

<div class="mw-translate-fuzzy">
srun ls-dyna_d i=airbag.deploy.k  memory=8G memory2=200M
où
ls-dyna_s = single precision mpp solver
ls-dyna_d = double precision mpp solver

Spécifier le nombre de cœurs

Les tâches peuvent être soumises à un nombre arbitraire de nœuds de calcul en spécifiant le nombre de cœurs. Ceci permet à l'ordonnanceur de déterminer automatiquement le nombre optimal de nœuds de calcul pour minimiser le temps d'attente dans la queue. Comme la limite de mémoire s'applique aux cœurs, la valeur de mem-per-cpu doit être assez élevée pour permettre au processeur principal de bien distribuer et gérer les calculs. Notez que de demander une quantité totale de mémoire pourrait être moins efficace que les autres méthodes décrites ci-dessus.

File : script-mpp-bycore.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify
#SBATCH --time=0-03:00         # D-HH:MM
#SBATCH --ntasks=64            # Specify total number of cores
#SBATCH --mem-per-cpu=2G       # Specify memory per core
</div>

#export RSNT_ARCH=avx2           # Uncomment on beluga for versions < 14.1.0

<div class="mw-translate-fuzzy">
module load StdEnv/2020        # Versions >= 13.0
module load ls-dyna-mpi/13.0
</div>

<div class="mw-translate-fuzzy">
# module load StdEnv/2016.4    # Versions =< 11.1
# module load ls-dyna-mpi/11.1
</div>

#export LSTC_LICENSE=ansys       # Specify an ANSYS License Server
#export ANSYSLMD_LICENSE_FILE=<port>@<server>

export LSTC_MEMORY=AUTO

srun ls-dyna_d i=airbag.deploy.k
où 
ls-dyna_s = single precision mpp solver
ls-dyna_d = double precision mpp solver

Dépendant de la simulation, LS-DYNA pourrait utiliser plusieurs cœurs de manière inefficace. Avant de lancer une simulation, testez sa scalabilité en augmentant graduellement le nombre de cœurs pour déterminer la valeur à laquelle la simulation ralentit. La commande seff jobnumber permet de déterminer la durée réelle d'exécution, l'efficacité du CPU et l'efficacité de la mémoire.

Visualisation avec LS-PrePost

Le programme LS-PrePost permet le prétraitement et le post-traitement des modèles LS-DYNA et est disponible via un autre module. Vous n'avez pas besoin de licence et pouvez l'utiliser sur tous les nœuds, incluant les nœuds VDI de Graham.

Nœuds des grappes

Connectez-vous à un nœud de calcul ou à un nœud de connexion avec TigerVNC et ouvrez une fenêtre de terminal.

module load StdEnv/2020

module load ls-prepost/4.8
lsprepost

module load ls-prepost/4.9
lsprepost OU lspp49
module load ls-prepost
lsprepost

Nœuds VDI

Connectez-vous à gra-vdi avec TigerVNC et ouvrez une fenêtre de terminal.

module load CcEnv StdEnv/2020

module load ls-prepost/4.8
lsprepost

module load ls-prepost/4.9
lsprepost OR lspp49