Contents
Starting Abaqus Jobs
Common setups for starting an ABAQUS job are configured in jSLURM. Here we provide an example in cases not covered therein.
Note on parallelization
For problems with less than 50,000 degrees of freedom using more than one process slows down the calculation in most cases. With larger problems one has to differ between a standard or an explicit calculation.
Using ABAQUS/Standard parallelizes solvers and some operations on elements. This offers no great advantages with a lot of processors. We recommend to use it on one node and 4 processors with mpi_mode=threads.
Using ABAQUS/Explict uses domain decomposition and parallelizes operations on elements. We recommend to use it on one node with up to 16-fold parallelization with mpi_mode=mpi. Below you find an example for this case.
Job script for ABAQUS/Standard and non parallel
The following job script assumes that your input example.inp is locate on the HOME partition. This file is copied to the SCRATCH partition. ABAQUS is executed in SCRATCH as well and thus all files generated by ABAQUS are located in SCRATCH.#!/bin/bash #SBATCH -t 15 # time limit set to 15 minutes #SBATCH --mem=4096 # 4G of memory are reserved #SBATCH -J Abaqus # the job is named Abaqus #SBATCH --mail-type=END # an email is send at the end of the job #SBATCH -n 8 # 8 processors are used #SBATCH -N 1 # 1 node is used to avoid network traffic #SBATCH --licenses=abaqus # a license for abaqus is needed PROJECT="$1" # copy the script argument INPUT="$1".inp # generate the INPUT parameter # change to SCRATCH cd $SCRATCH # Copy INPUT into SCRATCH, if it is newer than the one in SCRATCH if [[ ! -r "$INPUT" || "$SLURM_SUBMIT_DIR/$INPUT" -nt "$INPUT" ]] ; then cp "$SLURM_SUBMIT_DIR/$INPUT" . fi # tell the system which version of abaqus you want to use module add abaqus/latest unset SLURM_GTIDS # this is odd, but it has to be (!) # Start ABAQUS/Standard abaqus job="$PROJECT" analysis input="$INPUT" cpus=$SLURM_NTASKS interactive mp_mode=threads # Start ABAQUS/Explicit (remove # in front and add one to the standard call) # rhrk-abaqus-mpi job="$PROJECT" analysis input="$INPUT" interactive # Start Abaqus non parallel # abaqus job="$PROJECT" analysis input="$INPUT" interactive
Setting
#SBATCH -n 1turns the script into the non parallel version. This script is sent to the batch system with example.inp via:
sbatch script_name example
Job script for ABAQUS/Explicit with mpi_mode=mpi
The following job script assumes that your input example.inp is locate on the HOME partition. This file is copied to the SCRATCH partition. ABAQUS is executed in SCRATCH as well and thus all files generated by ABAQUS are located in SCRATCH.Abaqus requires a host list that we write into abaqus_v6.env automatically. Therefore only one job can be started in the same directory. Please use a separate directory for each example you are running and modify the following script accordingly.
#!/bin/bash #SBATCH -t 15 # time limit set to 15 minutes #SBATCH --mem=12288 # 12G of memory are reserved #SBATCH -J Abaqus # the job is named Abaqus #SBATCH --mail-type=END # an email is send at the end of the job #SBATCH -n 32 # 32 processors are used #SBATCH -N 2 # 2 node is used to avoid network traffic #SBATCH --ntasks-per-node=16 # 16 processors to be used per node #SBATCH --licenses=abaqus # a license for abaqus is needed PROJECT="$1" # copy the script argument INPUT="$1".inp # generate the INPUT parameter # change to SCRATCH (or different directory) cd $SCRATCH # Copy INPUT into SCRATCH, if it is newer than the one in SCRATCH if [[ ! -r "$INPUT" || "$SLURM_SUBMIT_DIR/$INPUT" -nt "$INPUT" ]] ; then cp "$SLURM_SUBMIT_DIR/$INPUT" . fi # tell the system which version of abaqus you want to use module add abaqus/latest #Start Abaqus/Explicit rhrk-abaqus-mpi job="$PROJECT" analysis input="$INPUT" interactive
This script is sent to the batch system with example.inp via:
sbatch script_name example
Using User Defined Subroutines
To user User Defined Subroutines you have to specify the compiler you want to use. Usually this is the Intel compiler thus you have to addmodule add intel/2019before calling abaqus. If you work with the above given scripts, just add this line before adding the desired abaqus module and add
user=my_subroutine.fwhen calling abaqus.
Using the RHRK menus is not recommended in that context, because you have to make a small change to your profile. Frequently this small changes are forgotten and lead to other errors in some months. But you may try and add
module add intel/2019with an editor into the file $HOME/.bashrc. You have to log out and in again to activate this change to your profile.
If you encounter compilation problems different versions of the intel compiler may be more appropriate. In that case, have a look at our available versions with
module avail intelin a command window and try a different version.