Ansys

From SciNet Users Documentation
Jump to navigation Jump to search

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:server:port1
ssh nia-gw -fNL port2:server:port2
ssh nia-gw -fNL port3:server: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