ANSYS

From CC Doc
Jump to navigation Jump to search
This page is a translated version of the page ANSYS and the translation is 24% 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

Serveur de licence local


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

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

File : fluent_3.jou

; EXAMPLE FLUENT JOURNAL FILE
; ===========================
; lines beginning with a semicolon are comments

<div class="mw-translate-fuzzy">
File : fluent_3.jou

; EXAMPLE FLUENT JOURNAL FILE
; ===========================
; lines beginning with a semicolon are comments

= 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 [[Running_jobs/fr|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 [[Technical_support/fr|soutien technique]].

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

{{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

Scripts pour l'ordonnanceur Slurm

<tabs> <tab name="Script Fluent (par cœur)">

File : script-flu-bycore.sh

#!/bin/bash

#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 StdEnv/2016
#module load ansys/2020R2     # Or older module versions

module load StdEnv/2020
module load ansys/2021R1      # Or newer module versions

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 StdEnv/2016
#module load ansys/2020R2     # Or older module versions

module load StdEnv/2020
module load ansys/2021R1      # Or newer module versions

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

#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 --array=1-4%1         # Specify number requeue attempts (2 or more)
#SBATCH --mem=0               # Do not change (allocates all memory per compute node)
#SBATCH --ntasks-per-node=1   # Do not change

#module load StdEnv/2016
#module load ansys/2020R2     # Or older module versions

module load StdEnv/2020
module load ansys/2021R1      # Or newer module versions

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>

Journal Files

Fluent Journal files can include basically any command from Fluent's Text-User-Interface (TUI); commands can be used to change simulation parameters like temperature, pressure and flow speed. With this you can run a series of simulations under different conditions with a single case file, by only changing the parameters in the Journal file. Refer to the Fluent User's Guide for more information and a list of all commands that can be used.

File : sample1.jou

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

; 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

; 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"

; Exit fluent:
exit


ANSYS CFX

File : script-cfx.sh

#!/bin/bash

<div class="mw-translate-fuzzy">
#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
</div>

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

module load StdEnv/2020
module load ansys/2021R1      # Or newer module versions

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

<div class="mw-translate-fuzzy">
cfx5solve -def YOURFILE.def -start-method "Intel MPI Distributed Parallel" -par-dist $NNODES  <other options>
</div>

Remarque : 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.

WORKBENCH

Before submitting a job to the queue with sbatch script-wbpj.sh several settings in YOURPROJECT.wbpj file must be initialized to be compatible with the settings in your slurm script. To do this 1) load your project into the workbench gui (as described in the Graphical Use section above) 2) tick Distributed 3) set Cores equal to ntasks 4) clear any generated data and finally 5) save the project. The initialized settings can be preserved by temporarily changing Save(Overwrite=True) to Save(Overwrite=False) when submitting short test jobs. The following script can be submitted to the queue with the sbatch script-wbpj.sh command.

File : script-wbpj.sh

#!/bin/bash
#SBATCH --account=def-account
#SBATCH --time=00-03:00        # Time (DD-HH:MM)
#SBATCH --mem-per-cpu=2G       # Memory per core
#SBATCH --ntasks=8             # Number of cores
##SBATCH --nodes=1             # Number of nodes (optional)
##SBATCH --ntasks-per-node=8   # Cores per node (optional)

unset SLURM_GTIDS

rm -f mytest1_files/.lock

module load StdEnv/2016 ansys/2019R3

export I_MPI_HYDRA_BOOTSTRAP=ssh; export KMP_AFFINITY=balanced
export PATH=/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/bin:$PATH
runwb2 -B -E "Update();Save(Overwrite=True)" -F YOURPROJECT.wbpj


lmutil lmstat -c $ANSYSLMD_LICENSE_FILE -a | grep "Users of aa_r_hpc"

The input file can be generated from within your interactive Workbench Mechanical session by clicking Solution -> Tools -> Write Input Files then specify File name: YOURAPDLFILE.inp and Save as type: APDL Input Files (*.inp). APDL jobs can then be submitted to the queue by running the sbatch script-name.sh command. The ANSYS modules given in each script were tested on graham and should work without issue (uncomment one). Once the scripts are tested on other clusters they will be updated below if required.

File : script-smp-2016.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify your account
#SBATCH --time=00-03:00        # Specify time (DD-HH:MM)
#SBATCH --mem=16G              # Specify memory for all cores
#SBATCH --ntasks=8             # Specify number of cores (1 or more)
#SBATCH --nodes=1              # Specify one node (do not change)

unset SLURM_GTIDS

module load StdEnv/2016

#module load ansys/19.1
#module load ansys/19.2
#module load ansys/2019R2
#module load ansys/2019R3
#module load ansys/2020R1
module load ansys/2020R2

mapdl -smp -b nolist -np $SLURM_NTASKS -dir $SLURM_TMPDIR -i YOURAPDLFILE.inp


File : script-smp-2020.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify your account
#SBATCH --time=00-03:00        # Specify time (DD-HH:MM)
#SBATCH --mem=16G              # Specify memory for all cores
#SBATCH --ntasks=8             # Specify number of cores (1 or more)
#SBATCH --nodes=1              # Specify one node (do not change)

unset SLURM_GTIDS

module load StdEnv/2020

#module load ansys/2021R1
module load ansys/2021R2

mapdl -smp -b nolist -np $SLURM_NTASKS -dir $SLURM_TMPDIR -i YOURAPDLFILE.inp


File : script-dis-2016.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify your account
#SBATCH --time=00-03:00        # Specify time (DD-HH:MM)
#SBATCH --mem-per-cpu=2G       # Specify memory per core
#SBATCH --ntasks=8             # Specify number of cores (2 or more)
##SBATCH --nodes=2             # Specify number of nodes (optional)
##SBATCH --ntasks-per-node=4   # Specify cores per node (optional)

unset SLURM_GTIDS

module load StdEnv/2016

#module load ansys/2019R3
module load ansys/2020R1

export I_MPI_HYDRA_BOOTSTRAP=ssh; export KMP_AFFINITY=compact
mapdl -dis -mpi intelmpi -b nolist -np $SLURM_NTASKS -dir $SLURM_TMPDIR -i YOURAPDLFILE.inp


File : script-dis-2020.sh

#!/bin/bash
#SBATCH --account=def-account  # Specify your account
#SBATCH --time=00-03:00        # Specify time (DD-HH:MM)
#SBATCH --mem-per-cpu=2G       # Specify memory per core
#SBATCH --ntasks=8             # Specify number of cores (2 or more)
##SBATCH --nodes=2             # Specify number of nodes (optional)
##SBATCH --ntasks-per-node=4   # Specify cores per node (optional)

unset SLURM_GTIDS

module load StdEnv/2020

#module load ansys/2021R1
module load ansys/2021R2

mapdl -dis -mpi openmpi -b nolist -np $SLURM_NTASKS -dir $SLURM_TMPDIR -i YOURAPDLFILE.inp


For APDL jobs ANSYS allocates 1024 MB total memory and 1024 MB database memory by default. These values can be manually specified (or changed) by adding arguments -m 1024 and/or -db 1024 to the last maple command line in the above slurm scripts. When using a remote institutional license server with multiple ANSYS licenses it may be necessary to add arguments such as -p aa_r or -ppf anshpc. As always perform detailed scaling tests before running production jobs to ensure the optimal number of cores and minimum amount memory is specified in your slurm scripts. The single node SMP (Shared Memory Parallel) script will perform better than the multiple node DIS (Distributed Memory Parallel) script and therefore should be used whenever possible. To help avoid compatibility issues the ansys module loaded in your slurm script should ideally match the version used to to generate the input file:

 [gra-login2:~/ansys/mechanical/demo] cat YOURAPDLFILE.inp | grep version
ANSYS input file written by Workbench version 2019 R3

Visualisation à distance

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).

Compute Nodes

ANSYS programs can be run for upto 3 hours on cluster compute nodes. This approach is ideal for running short computationally intensive jobs since all available cores and memory can be used on the type of node requested. To get started, connect to a compute node using TigerVNC, open a terminal window and then start one of the following programs:

FLUIDS
module load StdEnv/2016 ansys/2020R2 (or older versions)
module load StdEnv/2020 ansys/2021R1 (or newer versions)
fluent|cfx5
WORKBENCH
module load StdEnv/2016 ansys/2019R3 (other versions are being tested)
export KMP_AFFINITY=balanced; export I_MPI_HYDRA_BOOTSTRAP=ssh
export PATH=$EBROOTNIXPKGS/bin:$PATH
runwb2
ELECTRONICS
module load StdEnv/2020 ansysedt/2021R1
ansysedt
ENSIGHT
module load StdEnv/2016 ansys/2019R3; A=195; B=5.10.1, or
module load StdEnv/2016 ansys/2020R1; A=201; B=5.10.1, or
module load StdEnv/2016 ansys/2020R2; A=202; B=5.12.6, or
module load StdEnv/2020 ansys/2021R1; A=211; B=5.12.6, or
module load StdEnv/2020 ansys/2021R2; A=212; B=5.12.6
export LD_LIBRARY_PATH=$EBROOTANSYS/v$A/CEI/apex$A/machines/linux_2.6_64/qt-$B/lib
ensight -X

VDI Nodes

Pour utiliser ANSYS Additive Manufacturing dans votre projet, suivez ces directives :

FLUIDS
module load CcEnv StdEnv/2020 ansys/2021R2, or
module load CcEnv StdEnv/2020 ansys/2021R1, or
module load CcEnv StdEnv/2016 ansys/2020R2, or
module load CcEnv StdEnv/2016 ansys/2020R1, or
module load CcEnv StdEnv/2016 ansys/2019R3
export HOOPS_PICTURE=opengl
fluent|cfx5|icemcfd
WORKBENCH
module load SnEnv ansys/2021R2, or
module load SnEnv ansys/2021R1, or
module load SnEnv ansys/2020R2
runwb2
------------------------------------------------------------------------------------
module load CcEnv StdEnv/2016 ansys/2020R1, or
module load CcEnv StdEnv/2016 ansys/2019R3
export PATH=$EBROOTNIXPKGS/bin:$PATH
runwb2
ELECTRONICS DESKTOP
module load CcEnv StdEnv/2020 ansysedt/2021R1
ansysedt
ENSIGHT
module load SnEnv ansys/2021R2, or
module load SnEnv ansys/2021R1
ensight
------------------------------------------------------------------------------------
module load CcEnv StdEnv/2016 ansys/2020R2
ensight

Particularités selon le site d'utilisation

2) Avec les modules locaux gra-vdi (avec possiblement une plus grande stabilité et une meilleure eprformance graphique) :

  1. Connect to gra-vdi.computecanada.ca with TigerVNC
  2. module load SnEnv
  3. module load ansys/2019R3
  4. Appuyez sur y puis sur enter pour accepter les deux conditions.
  5. Appuyez sur enter pour utiliser la 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.

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")

Query License Server

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"

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.

Interroger le serveur de licence

Utiliser Additive

ansys Modules

  1. Connect to gra-vdi.computecanada.ca with TigerVNC
  2. Open a new terminal window and load a module:
    module load SnEnv ansys/2021R2, or
    module load SnEnv ansys/2021R1, or
    module load SnEnv ansys/2020R2, or
    module load SnEnv ansys/2020R1, or
    module load SnEnv ansys/2019R3
  3. Start an ANSYS program by issuing one of the following:
    runwb2|fluent|cfx5|icemcfd|apdl
  4. Press y then enter to accept the conditions
  5. Press enter to accept the n option and use the SHARCNET license server by default (in the case of runwb2 ~/.licenses/ansysedt.lic will be used if present otherwise ANSYSLI_SERVERS and ANSYSLMD_LICENSE_FILE will be used if set in your environment for example to some other remote license server). If you change n to y and hit enter the CMC license server will be used.

where cfx5 from step 3. above provides the option to start the following components:

   1) CFX-Launcher  (cfx5 -> cfx5launch)
   2) CFX-Pre       (cfx5pre)
   3) CFD-Post      (cfdpost -> cfx5post)
   4) CFX-Solver    (cfx5solve)

ansysedt

  1. Connect to gra-vdi.computecanada.ca with TigerVNC
  2. Open a new terminal window and load a module:
  3. module load SnEnv ansysedt/2021R1
  4. Start the ANSYS Electromagnetics Desktop program by typing the following command: ansysedt
  5. Press y then enter to accept the conditions.
  6. Press enter to accept the n option and use the SHARCNET license server by default (note that ~/.licenses/ansysedt.lic will be used if present otherwise ANSYSLI_SERVERS and ANSYSLMD_LICENSE_FILE will be used if set in your environment for example to some other remote license server). If you change n to y and hit enter then the CMC license server will be used.

License feature preferences previously setup with anslic_admin are no longer supported following the recent SHARCNET license server update (Sept9/2021). If a license problem occurs try removing the ~/.ansys directory in your home account to clear the settings. If problems persist please open a problem ticket at <support@computecanada.ca> and provide the contents your ~/.licenses/ansys.lic file.

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

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

Project preparation:

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.

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.