Abaqus
The Abaqus Unified FEA product suite offers powerful and complete solutions for both routine and sophisticated engineering problems covering a vast spectrum of industrial applications. In the automotive industry engineering work groups are able to consider full vehicle loads, dynamic vibration, multibody systems, impact/crash, nonlinear static, thermal coupling, and acoustic-structural coupling using a common model data structure and integrated solver technology. Best-in-class companies are taking advantage of Abaqus Unified FEA to consolidate their processes and tools, reduce costs and inefficiencies, and gain a competitive advantage
Available versions of Abaqus in ULHPC¶
To check available versions of Abaqus at ULHPC, type module spider abaqus
.
It will list the available versions with the following format:
cae/ABAQUS/<version>[-hotfix-<hotfix>]
Don't forget to unset SLURM_GTIDS
You MUST unset the SLURM environment variable SLURM_GTIDS
for both interactive/GUI and batch jobs
unset SLURM_GTIDS
When using a general compute node for Abaqus 2021, please run:
abaqus cae -mesa
to launch the GUI without support for hardware-accelerated graphics rendering.- the option
-mesa
disables hardware-accelerated graphics rendering within Abaqus’s GUI.
- the option
- For a Non-Graphical execution, use
abaqus job=<my_job_name> input=<filename>.inp mp_mode=<mode> cpus=<cores> [gpus=<gpus>] scratch=$SCRATCH memory="<mem>gb"
Supported parallel mode¶
Abaqus has two parallelization options which are mutually exclusive:
-
MPI (
mp_mode=mpi
), which is generally preferred since this allows for scaling the job to multiple compute nodes. As for MPI jobs, use-N <nodes> --ntasks-per-node <cores> -c1
upon submission to use:abaqus mp_mode=mpi cpu=$SLURM_NTASKS [...]
-
Shared memory / Threads (
mp_mode=threads
) for single node / multi-threaded executions. Typically use-N1 --ntasks-per-node 1 -c <threads>
upon submission to use:abaqus mp_mode=threads cpus=${SLURM_CPUS_PER_TASK} [...]
-
Shared memory for single node with GPU(s) / multi-threaded executions (
mp_mode=threads
). Typically use-N1 -G 1 --ntasks-per-node 1 -c <threads>
upon submission on a GPU node to use:abaqus mp_mode=threads cpus=${SLURM_CPUS_PER_TASK} gpus=${SLURM_GPUS} [...]
Abaqus example problems¶
Abaqus contains a large number of example problems which can be used to become familiar with Abaqus on the system. These example problems are described in the Abaqus documentation and can be obtained using the abaqus fetch jobs=<name>
command.
For example, after loading the Abaqus module cae/ABAQUS
, enter the following at the command line to extract the input file for test problem s4d:
abaqus fetch job=s4d
s4d.inp
See also Abaqus performance data.
Interactive mode¶
To open an Abaqus in the interactive mode, please follow the following steps:
(eventually) connect to the ULHPC login node with the -X
(or -Y
) option:
ssh -X iris-cluster # OR on Mac OS: ssh -Y iris-cluster
ssh -X aion-cluster # OR on Mac OS: ssh -Y aion-cluster
Then you can reserve an interactive job, for instance with 8 MPI processes. Don't forget to use the --x11
option if you intend to use the GUI.
$ si --x11 -c 8 # Abaqus mp_mode=threads test
# OR
$ si --x11 --ntask-per-node 8 # abaqus mp_mode=mpi test
# Load the module ABAQUS and needed environment
(node)$ module purge
(node)$ module load cae/ABAQUS
(node)$ unset SLURM_GTIDS # MANDATORY
# /!\ IMPORTANT: You MUST ADAPT the LM_LICENSE_FILE variable to point to YOUR licence server!!!
(node)$ export LM_LICENSE_FILE=xyz
# Check License server token available
(node)$ abaqus licensing lmstat -a
abaqus licensing lmstat -a
lmutil - Copyright (c) 1989-2019 Flexera. All Rights Reserved.
Flexible License Manager status on Wed 4/13/2022 22:39
[...]
Non-graphical Abaqus¶
Then the general format to run your Non-Graphical multithreaded interactive execution:
Assuming a job submitted with {sbatch|srun|si...} -N1 -c <threads>
:
# /!\ ADAPT $INPUTFILE accordingly
abaqus job="${SLURM_JOB_NAME}" verbose=2 interactive \
input=${INPUTFILE} \
cpus=${SLURM_CPUS_PER_TASK} mp_mode=threads
Assuming a job submitted with {sbatch|srun|si...} -N <N> --ntasks-per-node <npn> -c 1
:
# /!\ ADAPT $INPUTFILE accordingly
abaqus job="${SLURM_JOB_NAME}" verbose=2 interactive \
input=${INPUTFILE} \
cpus=${SLURM_NTASKS} mp_mode=mpi
GUI¶
If you want to run the GUI, use: abaqus cae -mesa
License information
Assuming you have set the variable LM_LICENSE_FILE
to point to YOUR licence server, you can
check the available license and group you belongs to with:
abaqus licensing lmstat -a
Use the following options for simulation to stop and resume it:
# /!\ ADAPT <jobname> accordingly:
abaqus job=<jobname> suspend
abaqus job=<jobname> resume
Batch mode¶
#!/bin/bash -l # <--- DO NOT FORGET '-l'
#SBATCH -J <jobname>
#SBATCH -N 1
#SBATCH --ntasks-per-node=1
#SBATCH -c 4 # /!\ ADAPT accordingly
#SBATCH --time=0-03:00:00
#SBATCH -p batch
print_error_and_exit() { echo "***ERROR*** $*"; exit 1; }
module purge || print_error_and_exit "No 'module' command"
module load cae/ABAQUS
# export LM_LICENSE_FILE=[...]
unset SLURM_GTIDS
INPUTFILE=s4d.inp
[ ! -f "${INPUTFILE}" ] && print_error_and_exit "Unable to find input file ${INPUTFILE}"
abaqus job="${SLURM_JOB_NAME}" verbose=2 interactive \
input=${INPUTFILE} cpus=${SLURM_CPUS_PER_TASK} mp_mode=threads
#!/bin/bash -l # <--- DO NOT FORGET '-l'
#SBATCH -J <jobname>
#SBATCH -N 2
#SBATCH --ntasks-per-node=8 # /!\ ADAPT accordingly
#SBATCH -c 1
#SBATCH --time=0-03:00:00
#SBATCH -p batch
print_error_and_exit() { echo "***ERROR*** $*"; exit 1; }
module purge || print_error_and_exit "No 'module' command"
module load cae/ABAQUS
# export LM_LICENSE_FILE=[...]
unset SLURM_GTIDS
INPUTFILE=s4d.inp
[ ! -f "${INPUTFILE}" ] && print_error_and_exit "Unable to find input file ${INPUTFILE}"
abaqus job="${SLURM_JOB_NAME}" verbose=2 interactive \
input=${INPUTFILE} cpus=${SLURM_NTASKS} mp_mode=mpi
May not be supported depending on the software set
#!/bin/bash -l # <--- DO NOT FORGET '-l'
#SBATCH -J <jobname>
#SBATCH -N 1
#SBATCH --ntasks-per-node=1
#SBATCH -c 7
#SBATCH -G 1
#SBATCH --time=0-03:00:00
#SBATCH -p gpu
print_error_and_exit() { echo "***ERROR*** $*"; exit 1; }
module purge || print_error_and_exit "No 'module' command"
module load cae/ABAQUS
# export LM_LICENSE_FILE=[...]
unset SLURM_GTIDS
INPUTFILE=s4d.inp
[ ! -f "${INPUTFILE}" ] && print_error_and_exit "Unable to find input file ${INPUTFILE}"
abaqus job="${SLURM_JOB_NAME}" verbose=2 interactive \
input=${INPUTFILE} cpus=${SLURM_CPUS_PER_TASK} gpus=${SLURM_GPUS} mp_mode=threads
Additional information¶
To know more about Abaqus documentation and tutorial, please refer Abaqus CAE
Tutorial
Tip
If you find some issues with the instructions above, please file a support ticket.