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 100% complete.
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.

Après que la licence est installée, certains aspects techniques restent à régler. Nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence et notre équipe technique coordonnera ceci avec votre gestionnaire de licence, s'il y a lieu. Quand tout sera en place, vous pourrez charger un module ls-dyna qui devrait localiser la licence de lui-même. En cas de difficulté, contactez le soutien technique.

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.

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

module load StdEnv/2016.4      # Versions =< 11.1
module load ls-dyna/11.1

# module load StdEnv/2020      # Versions >= 13.0
# module load ls-dyna/13.0

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)

# module load StdEnv/2016.4    # Versions =< 11.1
# module load ls-dyna-mpi/11.1

module load StdEnv/2020        # Versions >= 13.0
module load ls-dyna-mpi/13.0

export LSTC_MEMORY=AUTO 

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

# module load StdEnv/2016.4    # Versions =< 11.1
# module load ls-dyna-mpi/11.1

module load StdEnv/2020        # Versions >= 13.0
module load ls-dyna-mpi/13.0

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