Ansys
The Ansys engineering simulation tools are installed in both the Niagara and CC software stacks.
Getting a license
Licenses are provided by CMC Microsystems. Canadian students and faculty can register at this page.
Once you have an account, you must contact CMC and tell them you want to use the Ansys tools on Niagara, and give them your SciNet username.
After confirming with CMC and your institution that your username is authorized to claim a license, you will need to establish a ssh tunnel on your submission script in order to access the license server from niagara compute nodes (which don't have direct access to the internet). Please obtain the proper server name and ports from CMC or directly from your institution.
Below is a tunnel example for a user from lakeheadu.ca (again, this is just an example. If your account is not registered at lakeheadu.ca your license claim will be rejected)
ssh nia-gw -fNL 1055:uc4053-888888.lakeheadu.ca:1055 ssh nia-gw -fNL 1056:uc4053-888888.lakeheadu.ca:1056 ssh nia-gw -fNL 2325:uc4053-888888.lakeheadu.ca:2325 export ANSYSLI_SERVERS=2325@localhost export ANSYSLMD_LICENSE_FILE=1055@localhost export LM_LICENSE_FILE=1055@localhost
You may also use a license server from the other GP clusters (beluga/narval, cedar or graham), since niagara doesn't have its own server. More information can be found here:
https://docs.computecanada.ca/wiki/ANSYS#Configuring_your_own_license_file
Running on Niagara
Commercial software modules are not available by default, and require a 'module use' command:
module use /scinet/niagara/software/commercial/modules module load ansys/2021r2
Programs available:
- fluent
- ansysedt
- mapdl
- ...
You can use the Ansys graphical tools to set up your problem, but you cannot use the graphical tools to submit your job. The job must be submitted to the scheduler for running.
Setting up your .mw directory
Ansys will attempt to write to your $HOME/.mw directory. This will work when you are testing your workflow on the login nodes, because they can write to $HOME. However, recall that the compute nodes cannot write to the /home filesystem. If you attempt to run Ansys from a compute node using the default configuration, it will fail because Ansys cannot write to $HOME/.mw.
The solution is to create an alternative directory called $SCRATCH/.mw, and create a soft link from $HOME/.mw to $SCRATCH/.mw:
mkdir $SCRATCH/.mw ln -s $SCRATCH/.mw $HOME/.mw
This will fool Ansys into thinking it is writing to $HOME/.mw, when in fact it is writing to $SCRATCH/.mw. This command only needs to be run once.
Running ansys
Example submission script for a job running on 1 node, with max walltime of 11 hours:
#!/bin/bash #SBATCH --nodes=1 #SBATCH --ntasks-per-node=40 #SBATCH --time=11:00:00 #SBATCH --job-name test module use /scinet/niagara/software/commercial/modules module load ansys/2021r2 # ssh tunnel settings for your license server goes here (2 or 3 ports) ssh nia-gw -fNL port1:hostname:port1 ssh nia-gw -fNL port2:hostname:port2 ssh nia-gw -fNL port3:hostname:port3 export ANSYSLI_SERVERS=port1@localhost export ANSYSLMD_LICENSE_FILE=port2@localhost export LM_LICENSE_FILE=port2@localhost # DIRECTORY TO RUN - $SLURM_SUBMIT_DIR is directory job was submitted from cd $SLURM_SUBMIT_DIR machines=$(srun bash -c 'hostname -s' | sort | uniq | awk '{print $1 ":" 40}' | paste -s -d ':') ansys212 -b -j JOBNAME -dis -machines "$machines" -i ansys.in