ANSYS

From CC Doc
Jump to: navigation, search
This page is a translated version of the page ANSYS and the translation is 86% complete.

Outdated translations are marked like this.
Other languages:
English • ‎français

Introduction

ANSYS est une suite logicielle pour la conception 3D et la simulation. La suite comprend des applications comme ANSYS Fluent et ANSYS CFX.

Licence

Nous sommes fournisseurs d'hébergement pour ANSYS. Dans ce contexte, la suite est installée sur nos grappes, mais nous n'avons pas une licence générique fournissant l'accès à tous nos utilisateurs. Cependant, plusieurs établissements, facultés et départements possèdent des licences qui peuvent être utilisées avec nos grappes; vérifiez l'aspect légal de l'utilisation de la licence. En ce qui a trait à l'aspect technique, nos nœuds de calcul doivent pouvoir communiquer avec votre serveur de licence. Si ce n'est pas déjà fait, notre équipe technique coordonnera ceci avec votre gestionnaire de licence. Quand tout sera en place, vous pourrez charger le module ANSYS qui localisera de lui-même la licence. En cas de difficulté, communiquez avec le soutien technique.

Les modules disponibles sont fluent/16.1, ansys/16.2.3, ansys/17.2, ansys/18.1, ansys/18.2, ansys/19.1, ansys/19.2, ansys/2019R2, ansys/2019R3.

Documentation

Pour obtenir la dernière version complète de la documentation :

  1. Connectez-vous à gra-vdi.computecanada.ca avec tigervnc tel que décrit dans Nœuds VDI.
  2. Ouvrez une fenêtre terminal et lancez Workbench.
    • module load CcEnv StdEnv ansys
    • runwb2
  3. Dans le menu déroulant du haut, sélectionnez
    • Help -> ANSYS Workbench Help
  4. Lorsque la page ANSYS Help est affichée, cliquez sur
    • Home

Configuration de votre propre fichier de licence

Notre module ANSYS cherche l'information en rapport avec la licence à différents endroits, dont votre répertoire /home. Si vous avez votre propre serveur de licence, entrez les renseignements pour y accéder dans le fichier $HOME/.licenses/ansys.lic selon le format suivant :


File : ansys.lic

setenv("ANSYSLMD_LICENSE_FILE", "<port>@<hostname>")
setenv("ANSYSLI_SERVERS", "<port>@<hostname>")


Tous peuvent utiliser le serveur de licence CMC, qui n'est pas gratuit, ou le serveur de licence gratuit de SHARCNET simplement en configurant le fichier ~/.licenses/ansys.lic avec les paramètres spécifiques à chaque grappe (voir le tableau suivant). Si vous avez une licence CMC par abonnement, vous devez faire parvenir votre nom d'utilisateur Calcul Canada à <cmcsupport@cmc.ca>, autrement le retrait de la licence ne s'effectuera pas.

Licence Grappe ANSYSLMD_LICENSE_FILE ANSYSLI_SERVERS
CMC béluga 6624@132.219.136.89 2325@132.219.136.89
CMC cedar 6624@206.12.126.25 2325@206.12.126.25
CMC graham 6624@199.241.162.97 2325@199.241.162.97
SHARCNET béluga/cedar/graham/gra-vdi 1055@license3.sharcnet.ca 2325@license3.sharcnet.ca

Préférence pour la licence

Dans certains cas, vous devrez vous assurer que votre configuration ANSYS sur nos grappes accorde la priorité au bon type de licence, par exemple pour choisir une licence pour la recherche plutôt qu'une licence pour l'enseignement ou vice versa. Vous pouvez configurer votre compte avec la commande anslic_admin comme expliqué dans cette section. Ceci doit être fait pour chaque version de module ANSYS que vous voulez utiliser. Un fichier personnalisé license.preferences.xml sera placé dans le répertoire $HOME/.ansys/v201/licensing/, en supposant que vous utilisez le module ansys/2020R1. Les serveurs de licence comme ceux avec une licence Multiphysics Campus Solution offrent les deux types de licence, soit Research et Teaching. Quand une tâche ANSYS est lancée, une licence Academic Research (aa_r, aa_r_cfd ou aa_r_cfd) illimitée lui est assignée par défaut. Si au lancement de la tâche une licence de recherche n'est pas disponible, une licence d'enseignement (aa_t_a) est assignée, avec les limites suivantes :

o solveur, mécanique :  32,000 nœuds ou éléments
o solveur, dynamique des fluides : 512,000 nœuds , cellules, éléments
o modèle géométrique : 50 entités et 300 faces

Puisqu'il y a peu de licences de recherche et qu'elles sont coûteuses, nous vous suggérons d'utiliser des licences d'enseignement autant que possible. Par exemple, la licence ANSYS de SHARCNET offre 250 licences limitées d'enseignement, mais seulement 25 licences illimitées de recherche. Pour configurer ANSYS afin d'utiliser uniquement des licences d'enseignement, effectuez les étapes suivantes pour chacune des grappes sur lesquelles vous lancez des tâches :

  • Connectez-vous à un nœud de connexion avec redirection X (ssh -Y, PuTTY, MobaXTerm) ou TigerVNC.
  • Chargez une version ANSYS, par exemple module load ansys/2020R1.
  • Lancez $EBROOTANSYS/shared_files/licensing/lic_admin/anslic_admin.
  • Cliquez sur le bouton Set License Preferences for User.
  • Sélectionnez la version de module que vous voulez utiliser et cliquez sur OK.
  • Sélectionnez Use Academic Licenses et cliquez sur l'onglet Solver.
  • Sélectionnez ANSYS Academic Research Mechanical and CFD.
  • Avec la petite flèche vers le bas, sélectionnez Don't Use = 0.
  • Sélectionnez ANSYS Academic Teaching Mechanical and CFD.
  • Avec la petite flèche vers le bas, sélectionnez Use = 1.
  • Cliquez sur OK et sélectionnez File -> Exit.

Quand une tâche ANSYS commence avec une licence d'enseignement mais que les limites indiquées ci-dessous sont atteintes, le message d'erreur suivant sera enregistré dans le fichier résultats Slurm juste avant qu'elle se termine.

[gra-login1:~/projects/path/to/my/ansys/jobs] cat -n slurm-38493219.out | grep -A 20 "Error at host"
  131  Error at host:   This is an educational executable, and can only be used
  132    with cases containing less than 512000 cells.
  133    Please exit this fluent session and start another session to continue.

Serveur de licence local

Avant que le serveur de licence ANSYS de votre établissement puisse être rejoint par nos grappes, les coupe-feu doivent être configurés des deux côtés. Pour ce faire, contactez votre administrateur pour le serveur de licence et obtenez les renseignements suivants : 1. le nom de l'hôte pour le serveur de licence ANSYS local, 2. le port flex pour ANSYS(habituellement 1055), 3. le port d'interconnexion pour la licence ANSYS (habituellement 2325) et 4. le port de fournisseur statique (spécifique au site). Assurez-vous que l'administrateur consent à ouvrir le coupe-feu de ces trois ports afin d'accepter les demandes de vos tâches ANSYS qui seront exécutées sur nos grappes. Écrivez ensuite à support@calculcanada.ca en indiquant les quatre renseignements demandés ainsi que les grappes sur lesquelles vous utiliserez ANSYS, par exemple Cedar, Béluga, Graham/Gra-vdi ou Niagara.

Soumettre des tâches en lot sur nos grappes

Plusieurs implémentations MPI permettent le calcul en parallèle, mais aucune n'est compatible avec l'ordonnanceur Slurm (voir Exécuter des tâches). Pour cette raison, il faut utiliser des directives particulières à chaque paquet ANSYS pour lancer une tâche parallèle. Vous trouverez ci-dessous quelques scripts de soumission de tâches. Pour toute question, communiquez avec le soutien technique.

fluent 3d -t $NCORE -cnf=machinefile -mpi=intel -affinity=0 -g -i fluent_3.jou }}</tab>

{{File |name=fluent_3.jou |contents=

EXAMPLE FLUENT JOURNAL FILE
===========================
lines beginning with a semicolon are comments
# Set the number of iterations for which convergence monitors are reported

/solve/set/reporting-interval 1

Slurm Scripts

<tabs> <tab name="Script Fluent pour Slurm (par nœud)">

File : script-flu-bynode.sh

#!/bin/bash
</div>

#SBATCH --account=def-group   # Specify account
#SBATCH --time=00-06:00       # Specify time limit dd-hh:mm
#SBATCH --ntasks=16           # Specify total number cores
#SBATCH --mem-per-cpu=4G      # Specify memory per core
#SBATCH --cpus-per-task=1     # Do not change

module load ansys/2020R1

slurm_hl2hl.py --format ANSYS-FLUENT > machinefile
NCORES=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

fluent 3d -t $NCORES -cnf=machinefile -mpi=intel -affinity=0 -g -i sample.jou


File : script-flu-bynode.sh

#!/bin/bash

#SBATCH --account=def-group   # Specify account
#SBATCH --time=00-06:00       # Specify time limit dd-hh:mm
#SBATCH --nodes=1             # Specify number compute nodes (1 or more)
#SBATCH --cpus-per-task=32    # Specify number cores per node (graham 32 or 44, cedar 32 or 48, beluga 40)
#SBATCH --mem=0               # Do not change (allocates all memory per compute node)
#SBATCH --ntasks-per-node=1   # Do not change

module load ansys/2020R1

slurm_hl2hl.py --format ANSYS-FLUENT > machinefile
NCORES=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

fluent 3d -t $NCORES -cnf=machinefile -mpi=intel -affinity=0 -g -i sample.jou


File : script-flu-bynode+requeue.sh

#!/bin/bash

<div class="mw-translate-fuzzy">
module load ansys/2020R1
</div>

module load ansys/2020R1

slurm_hl2hl.py --format ANSYS-FLUENT > machinefile
NCORES=$((SLURM_NTASKS * SLURM_CPUS_PER_TASK))

fluent 3d -t $NCORES -cnf=machinefile -mpi=intel -affinity=0 -g -i sample.jou
if [ $? -eq 0 ]; then
    echo "Job completed successfully! Exiting now."
    scancel $SLURM_ARRAY_JOB_ID
else
    echo "Job failed due to license or simulation issue!"
    if [ $SLURM_ARRAY_TASK_ID -lt $SLURM_ARRAY_TASK_COUNT ]; then
       echo "Resubmitting now ..."
    else
       echo "Exiting now."
    fi
fi


</tabs>

  • Sur votre ordinateur, préparez votre tâche avec Fluent du ANSYS Workbench jusqu'au point où les calculs seraient exécutés.
  • Exportez le fichier du cas File > Export > Case... ou localisez l'endroit où Fluent enregistre les fichiers pour votre projet. Le nom des fichiers de cas a souvent un format tel que FFF-1.cas.gz.
  • Si vous voulez poursuivre avec des données d'un calcul effectué précédemment, exportez aussi un fichier de données File > Export > Data... ou trouvez-le dans le même répertoire de projet (FFF-1.dat.gz).
  • Transférez le fichier de cas (et le fichier de données s'il y a lieu) dans le système de fichiers /project ou scratch de la grappe. Quand les fichiers sont exportés, sauvegardez-les avec des noms plus faciles à repérer que FFF-1.* ou renommez-les au téléversement.
  • Il faut maintenant créer un fichier de journalisation dont le but est de charger les fichiers de cas et de données s'il y a lieu, lancer le solveur et écrire les résultats. Voyez les exemples ci-dessous et n'oubliez pas d'ajuster les noms des fichiers et le nombre d'itérations.
  • Adaptez le script ci-dessous à votre tâche Fluent.
  • Après que la tâche est exécutée, vous pouvez télécharger le fichier de données et le retourner dans Fluent avec File > Import > Data....

Les fichiers de journalisation peuvent contenir toutes les commandes de l'interface TUI (Text User Interface) de Fluent; elles peuvent être utilisées pour modifier des paramètres de simulation comme la température, la pression ou la vitesse du flux. Vous pouvez ainsi effectuer une série de simulations sous différentes conditions en modifiant simplement les paramètres du journal.

File : sample1.jou

; SAMPLE FLUENT JOURNAL FILE - STEADY SIMULATION
; ----------------------------------------------
; lines beginning with a semicolon are comments
</div>

; Read input file (FFF-in.cas):
/file/read-case  FFF-in

; Run the solver for this many iterations:
/solve/iterate 1000

; Overwrite output files by default:
/file/confirm-overwrite n

; Write final output file (FFF-out.dat):
/file/write-data  FFF-out

; Write simulation report to file (optional):
/report/summary y "My_Simulation_Report.txt"

; Exit fluent:
exit


File : sample2.jou

; SAMPLE FLUENT JOURNAL FILE - STEADY SIMULATION
; ----------------------------------------------
; lines beginning with a semicolon are comments
</div>

; Read compressed input files (FFF-in.cas.gz & FFF-in.dat.gz):
/file/read-case-data  FFF-in.gz

; Write a compressed data file every 100 iterations:
/file/auto-save/data-frequency 100

; Retain data files from 5 most recent iterations:
/file/auto-save/retain-most-recent-files y

; Write data files to output sub-directory (appends iteration)
/file/auto-save/root-name output/FFF-out.gz

; Run the solver for this many iterations:
/solve/iterate 1000

; Write final compressed output files (FFF-out.cas.gz & FFF-out.dat.gz):
/file/write-case-data  FFF-out.gz

; Write simulation report to file (optional):
/report/summary y "My_Simulation_Report.txt"

; Exit fluent:
exit


File : sample3.jou

; SAMPLE FLUENT JOURNAL FILE - TRANSIENT SIMULATION
; -------------------------------------------------
; lines beginning with a semicolon are comments

; Read only the input case file:
/file/read-case         "FFF-transient-inp.gz"

; For continuation (restart) read in both case and data input files:
;/file/read-case-data  "FFF-transient-inp.gz"

; Write a data (and maybe case) file every 100 time steps:
/file/auto-save/data-frequency 100
/file/auto-save/case-frequency if-case-is-modified

; Retain only the most recent 5 data (and maybe case) files:
; [saves disk space if only a recent continuation file is needed]
/file/auto-save/retain-most-recent-files y

; Write to output sub-directory (appends flowtime and timestep)
/file/auto-save/root-name output/FFF-transient-out-%10.6f.gz

; ##### settings for Transient simulation :  ######
; Set the magnitude of the (physical) time step (delta-t)
/solve/set/time-step   0.0001

; Set the number of time steps for a transient simulation:
/solve/set/max-iterations-per-time-step   20

; Set the number of iterations for which convergence monitors are reported:
/solve/set/reporting-interval   1

; ##### End of settings for Transient simulation. ######

; Initialize using the hybrid initialization method:
/solve/initialize/hyb-initialization

; Perform unsteady iterations for a specified number of time steps:
/solve/dual-time-iterate   1000

; Write final case and data output files:
/file/write-case-data  "FFF-transient-out.gz"

; Write simulation report to file (optional):
/report/summary y "Report_Transient_Simulation.txt"

<div class="mw-translate-fuzzy">
; Exit fluent:
exit

</tabs>

ANSYS CFX

File : script-cfx.sh

#!/bin/bash

#SBATCH --account=def-group   # Specify account name
#SBATCH --time=00-06:00       # Specify time limit dd-hh:mm
#SBATCH --nodes=1             # Specify number compute nodes (1 or more)
#SBATCH --cpus-per-task=32    # Specify number cores per node (graham 32 or 44, cedar 32 or 48, beluga 40)
#SBATCH --mem=0               # Do not change (allocates all memory per compute node)
#SBATCH --ntasks-per-node=1   # Do not change

module load ansys/2020R1

NNODES=$(slurm_hl2hl.py --format ANSYS-CFX)

cfx5solve -def YOURFILE.def -start-method "Intel MPI Distributed Parallel" -par-dist $NNODES  <other options>

Il est possible que vous receviez un message comme /etc/tmi.conf: No such file or directory; cependant, il semble que ces messages n'aient pas d'effet sur les calculs.

Particularités selon le site d'utilisation

Licence SHARCNET

Le 31 mai 2020, la licence SHARCNET est passée de CFD (Research CFD) uniquement à MCS (Multiphysics Campus Solution) dont le portfolio Academic comprend pour la recherche les produits suivants : HF, EM, Electronics HPC, Mechanical et CFD. La licence permet l'exécution de 275 tâches dont 25 tâches aa_r à taille de simulation illimitée pour la recherche et 250 tâches aa_t_a à taille de simulation limitée pour l'enseignement. Il n'y a pas de limite au nombre de tâches pouvant être exécutées pour l'enseignement alors que deux tâches sont possibles pour la recherche. Un total de 384 cœurs aa_r_hpc sont disponibles pour exécuter les tâches, avec un maximum de 64 par utilisateur. Nous vous demandons d'utiliser si possible les tâches pour l'enseignement, comme décrit ci-dessus dans la section Préférence pour la licence. Cette licence a été renouvelée depuis 10 ans et rien ne permet de croire qu'elle ne le sera pas dans les prochaines années.

La licence SHARCNET peut être utilisée par tous sur tous les systèmes de Calcul Canada à des fins de recherche académique publiable; elle est disponible selon le principe du premier arrivé, premier servi. Si un grand nombre de tâches doivent commencer au cours d'une même journée, il est possible que certaines en soient empêchées par manque de jetons; ces tâches devront être soumises de nouveau. Si le progrès de votre recherche demande un nombre garanti (dédié) de jetons, faites une demande d'assistance et demandez une estimation du coût pour la quantité nécessaire de jetons de calcul haute performance. Un maximum de 2 jetons aa_r pour la licence principale seront réservés pour chaque groupe afin que les tâches puissent être démarrées de manière fiable si le groupe achète ses propres jetons aa_r_hpc dédiés (128 ou plus). Si de manière fiable vous devez lancer ou faire exécuter plus de 2 tâches, vous devriez aussi acheter un bloc de 5 jetons aa_r ou aa_r_cfd, ces derniers étant moins coûteux. L'estimation est obtenue de Simutech pour assurer la compatibilité avec la licence existante (client #446422). L'achat se fait par le chercheur principal (prix coûtant plus taxes applicables) auprès de Simutech. La licence ANSYS de SHARCNET ne comprend ni LS-DYNA ni Lumerical. Pour ces produits, des jetons pour utilisation dédiée peuvent être ajoutés au serveur SHARCNET en faisant aussi une demande d'assistance et en demandant une estimation.

Fichier du serveur de licence

Pour utiliser la licence SHARCNET, configurez votre fichier ansys.lic comme suit :

[gra-login1:~/.licenses] cat ansys.lic
setenv("ANSYSLMD_LICENSE_FILE", "1055@license3.sharcnet.ca")
setenv("ANSYSLI_SERVERS", "2325@license3.sharcnet.ca")

Interroger le serveur de licence

Déterminez le nombre de licences associées à votre nom d'utilisateur pour toutes les fonctionnalités avec

ssh graham.computecanada.ca
module load ansys
lmutil lmstat -c $ANSYSLMD_LICENSE_FILE -a | grep "Users of\|$USER"

Déterminez combien de tâches sont en exécution et le total de cœurs en utilisation avec

ssh graham.computecanada.ca
module load ansys
lmutil lmstat -c $ANSYSLMD_LICENSE_FILE -a | grep "aa_r:\|aa_r_hpc:"

où les lignes qui commencent par ...
o your username (s'il y a lieu) représente les licences utilisées par vos tâches en cours;
o Users of aa_r est le nombre total de tâches ANSYS Academic Research en cours pour tous les utilisateurs (maximum de 25);
o Users of aa_t_a est le nombre total de tâches ANSYS Academic Teaching en cours pour tous les utilisateurs (maximum de 250);
o Users of aa_r_hpc est le nombre total de licences ANSYS hpc en cours pour tous les utilisateurs (maximum de 384cœurs hpc = 640total - 256réservés). Prenez note que le nombre total de licences aa_r_hpc requises par une tâche parallèle est calculée en soustrayant 16 du total indiqué dans votre script Slurm; lmutil rapportera donc (par exemple) que seulement 16 aa_r_hpc sont utilisés pour une tâche de 32 cœurs.

Si vous remarquez que des licences sont utilisées sans justification avec votre nom d'utilisateur (ce qui peut se produire si ANSYS n'a pas été correctement fermé sur gra-vdi), connectez-vous au nœud en cause, ouvrez une fenêtre terminal et mettez fin au processus avec pkill -9 -e -u $USER -f "ansys" pour libérer vos licences. Prenez note que gra-vdi possède deux nœuds (gra-vdi3 et gra-vdi4) qui vous sont assignés au hasard quand vous vous connectez avec tigervnc; ainsi, avant de lancer pkill, il est nécessaire d'indiquer le nom complet de l'hôte (gra-vdi3.sharcnet.ca ou grav-vdi4.sharcnet.ca) quand vous vous connectez.

Visualisation à distance

1) Avec les modules généraux pour nos grappes :

  1. Connectez-vous à gra-vdi.computecanada.ca avec TigerVNC
    module load CcEnv StdEnv/2016.4
    module load ansys/2020R1
    * OU *
    module load CcEnv StdEnv/2020
    module load ansys/2020R2
  2. export HOOPS_PICTURE=opengl
  3. runwb2|vglrun fluent|cfx5|icemcfd

2) Avec les modules locaux gra-vdi (qui offrent probablement une meilleure performance graphique) :

  1. Connectez=vous à gra-vdi.computecanada.ca avec TigerVNC
    module load SnEnv
    module load ansys/2019R3
  2. runwb2|fluent|cfx5|icemcfd|apdl
  3. Appuyez sur y puis enter pour accepter les deux conditions.
  4. Appuyez sur enter pour poursuivre avec la licence SHARCNET par défaut (ou pour runwb2, votre fichier ansys.lic s'il y a lieu).

où la commande cfx5 permet de lancer les composantes suivantes :

   1) CFX-Launcher  (cfx5launcher)
   2) CFX-Pre       (lancer directement cfx5pre)
   3) CFD-Post      (lancer directement cfx5post)
   4) CFX-Solver    (lancer directement cfx5solve)

Additive Manufacturing (AM)

Configurez d'abord votre fichier ~/.licenses/ansys.lic pour l'orienter vers le serveur de licence où se trouve une licence valide pour ANSYS Mechanical. Vous devez faire ceci sur tous les systèmes où vous utiliserez le logiciel.

Utiliser Additive

Pour utiliser ANSYS Additive Manufacturing pour votre projet, effectuez les étapes suivantes :

Lancer Workbench

Sur gra-vdi

  • Connectez-vous à gra-vdi.computecanada.ca avec TigerVNC.
  • module load CcEnv StdEnv ansys/2019R3
  • export PATH=/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/bin:$PATH
  • Allez au répertoire où se trouve votre fichier test.wbpj.
  • runwb2

Sur une grappe

  • Connectez-vous à un nœud de calcul avec TigerVNC.
  • module load ansys/2019R3
  • export PATH=/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/bin:$PATH
  • Allez au répertoire où se trouve le fichier test.wbpj.
  • runwb2

Installer Extension

  • Cliquez sur Extensions -> Install Extension.
  • Entrez /path/to/AdditiveWizard.wbex et cliquez sur Open : /cvmfs/restricted.computecanada.ca/easybuild/software/2017/Core/ansys/2019R3/v195/aisol/WBAddins/MechanicalExtensions/AdditiveWizard.wbex

Charger Extension

  • Cliquez sur Extensions -> Manage Extensions et cochez Additive Wizard.
  • Cliquez sur l'onglet X de ACT Start Page pour revenir à l'onglet pour votre projet.

Exécuter Additive

Gra-vdi

Additive Manufacturing peut être exécuté avec une interface graphique sur gra-vdi avec un maximum de 8 cœurs, pendant 24 heures.

  • Lancez Workbench sur gra-vdi comme décrit ci-dessus dans Utiliser Additive.
  • Cliquez sur File -> Open et sélectionnez test.wbpj puis cliquez sur Open.
  • Cliquez sur View -> Reset workspace si votre écran est gris.
  • Lancez Mechanical, Clear Generated Data, sélectionnez Distributed, spécifiez Cores.
  • Cliquez sur File -> Save Project -> Solve.

Vérifiez l'utilisation :

  • Ouvrez un autre terminal et lancez top -u $USER.
  • Au besoin, terminez les processus non nécessaires créés par des tâches précédentes avec pkill -9 -e -u $USER -f "ansys".

Grappe

Pour soumettre une tâche Additive à la queue d'une grappe de Calcul Canada, la simulation doit d'abord être préparée pour être exécutée sur une de ces grappes. Pour faire ceci, ouvrez et sauvegardez votre simulation (sur gra-vdi OU dans une session salloc sur la grappe où vous travaillez) pour initialiser la configuration du chemin interne du projet comme décrit ci-dessus dans Utiliser Additive. Créez ensuite un script Slurm dans le répertoire où se trouve le fichier de votre projet (comme ci-dessous) et soumettez-le à la queue avec sbatch script.txt. Assurez-vous que la valeur de --ntasks dans le script correspond à la dernière valeur de Cores définie dans Mechanical, surtout si vous déplacez le projet vers une autre grappe. Pour modifier la valeur de Cores sur une grappe sans ouvrir votre simulation, voyez Lancez Mechanical sur un nœud de connexion ci-dessous.


File : script.txt

#!/bin/bash
#SBATCH --account=def-account
#SBATCH --time=00-06:00      # Time (DD-HH:MM)
#SBATCH --ntasks=8           # Number of cores
#SBATCH --mem-per-cpu=2G     # Memory per core
unset SLURM_GTIDS
rm -f test_files/.lock
module load ansys/2019R3
export KMP_AFFINITY=balanced
export I_MPI_HYDRA_BOOTSTRAP=ssh
export PATH=/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/bin:$PATH
runwb2 -B -F test.wbpj -E "Update();Save(Overwrite=True)"


Pour des études paramétriques, changez Update() pour UpdateAllDesignPoints() dans la dernière ligne du script Slurm. Pour tester la performance au préalable, vous pouvez éviter que la solution soit écrite en spécifiant Overwrite=False dans le script; ainsi, pour les tâches suivantes qui seront exécutées, vous n'aurez pas besoin d'ouvrir la simulation à nouveau dans Workbench et Mechanical pour supprimer la solution et recréer les points. Une autre option est de créer dans Workbench un script qui se répète et de l'exécuter entre les tâches, comme ci-dessous; le fichier de ce script peut être utilisé dans des répertoires différents en modifiant le FilePath interne.

module load ansys/2019R3
rm -f test_files/.lock
runwb2 -R myreplay.wbjn

Utilisation des ressources

Après quelques minutes, vous pouvez obtenir un instantané de l'utilisation des ressources par la tâche en cours d'exécution sur le ou les nœuds de calcul avec la commande srun. Le script pour 8 cœurs ci-dessus produit le résultat suivant où on remarque que l'ordonnanceur a choisi 2 nœuds.

[demo@gra-login1:~] srun --jobid=jobnumber top -bn1 -u $USER | grep R | grep -v top
  PID USER   PR  NI    VIRT    RES    SHR S  %CPU %MEM    TIME+  COMMAND
22843 demo   20   0 2272124 256048  72796 R  88.0  0.2  1:06.24  ansys.e
22849 demo   20   0 2272118 256024  72822 R  99.0  0.2  1:06.37  ansys.e
22838 demo   20   0 2272362 255086  76644 R  96.0  0.2  1:06.37  ansys.e
  PID USER   PR  NI    VIRT    RES    SHR S  %CPU %MEM    TIME+  COMMAND
 4310 demo   20   0 2740212 271096 101892 R 101.0  0.2  1:06.26  ansys.e
 4311 demo   20   0 2740416 284552  98084 R  98.0  0.2  1:06.55  ansys.e
 4304 demo   20   0 2729516 268824 100388 R 100.0  0.2  1:06.12  ansys.e
 4305 demo   20   0 2729436 263204 100932 R 100.0  0.2  1:06.88  ansys.e
 4306 demo   20   0 2734720 431532  95180 R 100.0  0.3  1:06.57  ansys.e

Tests de scalabilité

Une fois la tâche complétée, le temps d'exécution peut être obtenu du résultat de Job Wall-clock time de seff jobid. Cette valeur peut être utilisée pour effectuer des tests de scalabilité (par exemple, en passant de "#SBATCH --ntasks=8" à "#SBATCH --ntasks=16") et vous pouvez poursuivre en doublant le nombre de cœurs. De cette façon, les tâches nécessiteront moins de temps d'exécution, mais le temps d'attente pour être exécutées augmentera de manière importante, à moins que le groupe de recherche ne possède une allocation de ressources par voie de concours.

Lancez Mechanical sur un nœud de connexion

Cette procédure explique comment initialiser votre environnement mécanique sur une grappe en ouvrant la simulation sur un nœud de connexion. Si la simulation nécessite plus que le maximum de mémoire pour un nœud de connexion, soit 8Go, vous devrez utiliser un nœud de calcul. Quand une simulation est déplacée sur une autre grappe, le projet devra être ouvert et sauvegardé de nouveau si le chemin et le répertoire ne sont plus les mêmes.

* Connectez-vous à un nœud de connexion avec TigerVNC.  
* Dans vncviewer, ouvrez une fenêtre de terminal et lancez
   [demo@beluga3:~] module load ansys/2019R3
   [demo@beluga3:~] runwb2
   o Démarrez Mechanical en cliquant sur Component Systems -> Mechanical Model -> Model.
o Sous Solve pour My Computer entrez 8 cœurs.
o Sous Solve pour My Computer sélectionnez Distributed.
o Fermez Mechanical en cliquant sur File -> Close Mechanical.
o Fermez Workbench en cliquant sur File -> Exit (ne sauvegardez pas le projet actif).

Message Passing Interface