/
Using Abaqus on Supercomputers

Using Abaqus on Supercomputers

Overview

Abaqus is powerful engineering simulation software and is available for use on supercomputers.

License

Abauqs is proprietary software and requires a license from Engineering Technical Services (ETS) for use by researchers. If you intend to conduct simulations for research, it's essential to obtain a research license from ETS. To request a license, please use this link:https://ets.engineering.asu.edu/software-page/software/abaqus-for-research/

Once a license is obtained, run the following command to enable the research license

echo "academic=RESEARCH" > ~/abaqus_v6.env

Serial

Abaqus has the capability to run on a single node, utilizing up to 128 cores on Sol. Below is an example of a single node sbatch script for executing Abaqus:

#!/bin/bash #SBATCH -N 1 #SBATCH --exclusive #SBATCH --ntasks-per-node=1 #SBATCH -p htc #SBATCH -q public #SBATCH -t 0-4 #SBATCH -o slurm.%j.out # STDOUT (%j = JobId) #SBATCH -e slurm.%j.err # STDERR (%j = JobId) #SBATCH --export=NONE ##SBATCH --mail-type=ALL # Send a notification when the job starts, stops, or fails ##SBATCH --mail-user=%u@asu.edu # send-to address module load abaqus/2023 #Modify this to match your job! abaqus_opts=( job=test_50x50x20_f7 input=../50x50x20_f7.inp user=../coupled_uel9.f ) abq2023 "${abaqus_opts[@]}" cpus=$SLURM_CPUS_PER_TASK interactive

Parallel

Abaqus has the capability to run across multiple nodes, allowing it to utilize more cores than those available on a single node.

Here is an example SBATCH for a multinode Abaqus job:

#!/bin/bash #SBATCH -N 4 #SBATCH --exclusive #SBATCH --ntasks-per-node=1 #SBATCH -p htc #SBATCH -q public #SBATCH -t 0-4 #SBATCH -o slurm.%j.out # STDOUT (%j = JobId) #SBATCH -e slurm.%j.err # STDERR (%j = JobId) #SBATCH --export=NONE ##SBATCH --mail-type=ALL # Send a notification when the job starts, stops, or fails ##SBATCH --mail-user=%u@asu.edu # send-to address module load abaqus/2023 intel/oneapi #Modify this to match your job! abaqus_opts=( job=test_50x50x20_f7 input=../50x50x20_f7.inp user=../coupled_uel9.f mp_mode=mpi ) ############################################################## # DO NOT MODIFY BEYOND THIS UNLESS YOU KNOW WHAT YOU ARE DOING ############################################################## unset SLURM_GTIDS # dump the hosts to a text file HOSTS_FILE=slurm-hosts-${SLURM_JOBID}.out NPROC_PER_NODE=$(nproc) # generate the mp_host_list environment variable echo '[' > ${HOSTS_FILE} srun -c $NPROC_PER_NODE /bin/bash -c 'echo [\"$(hostname)\",$(nproc)],' >> ${HOSTS_FILE} echo ']' >> ${HOSTS_FILE} mapfile -t mp_host_list < ${HOSTS_FILE} mp_host_list=$(echo ${mp_host_list[@]}) TOTAL_CPUS=$( sed -e 's/\],//g' "${HOSTS_FILE}" \ | awk -F ',' '{s+=$NF} END{print s}' ) # write the abaqus environment file ABAQUS_ENV_FILE="abaqus_v6.env" cat > ${ABAQUS_ENV_FILE} << EOF import os os.environ['ABA_BATCH_OVERRIDE'] = '1' verbose=3 mp_host_list=${mp_host_list} mp_mpi_implementation=IMPI mp_mpirun_path={IMPI:'$(which mpiexec.hydra)'} if 'SLURM_PROCID' in os.environ: del os.environ['SLURM_PROCID'] EOF cat $ABAQUS_ENV_FILE export TMPDIR="/scratch/$USER/abaqus-tmp" mkdir $TMPDIR export I_MPI_HYDRA_BOOTSTRAP=slurm # Launch Abaqus abq2023 "${abaqus_opts[@]}" cpus=$TOTAL_CPUS interactive

Additional Help

Related content

Managing Python Modules Through the Mamba Environment Manager
Managing Python Modules Through the Mamba Environment Manager
Read with this
Welcome to ASU Research Computing
Welcome to ASU Research Computing
More like this
The Phoenix Supercomputer
The Phoenix Supercomputer
Read with this
New User Guide
New User Guide
More like this
Using Ansys with Open On Demand
Using Ansys with Open On Demand
More like this
Phoenix Hardware - How to Request
Phoenix Hardware - How to Request
More like this