Indice

Abaqus

Before you run your batch script, you may execute

newgrp G_ABAQUS

Now your current working directory is /hpc/group/G_ABAQUS. Create and use your own sub-directory.

Load Abaqus module

module load abaqus

and submit from this new shell.

Command line options

Job Abaqus MPI

Example script slurm-abaqus.sh to run Abacus on 1 node, 6 cores, 0 GPUs:

slurm-abaqus.sh
#!/bin/bash
#SBATCH --job-name=abaqus
#SBATCH --output=%x.o%j
#SBATCH --error=%x.e%j
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=28
#SBATCH --mem=94G
#SBATCH --time=3-00:00:00
#SBATCH --partition=cpu
#
# Edit next line
#SBATCH --account=<account>
 
echo "$SLURM_JOB_NODELIST"
 
# Modules required by Abacus (choose one of the following two possibilities)
#module load intel impi abaqus
module load gnu openmpi abaqus
 
ulimit -s unlimited
ulimit -s
 
abaqus job=testverita interactive ask_delete=OFF cpus=$SLURM_NTASKS_PER_NODE

Job Abaqus MPI with GPU

Example script slurm-abaqus-gpu.sh to run Abacus on 1 node, 6 cores, 1 GPU:

slurm-abaqus-gpu.sh
#!/bin/bash
#SBATCH --job-name=abaqus_gpu
#SBATCH --output=%x.o%j
#SBATCH --error=%x.e%j
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=6
#SBATCH --gres=gpu:1
#SBATCH --mem=30G
#SBATCH --time=24:00:00
#SBATCH --partition=gpu
#
# Edit next line
#SBATCH --account=<account> 
 
echo "$SLURM_JOB_NODELIST"
 
# Modules required by Abacus (choose one of the following two possibilities)
#module load intel impi cuda abaqus
module load gnu openmpi cuda abaqus
 
ulimit -s unlimited
ulimit -s
 
abaqus job=testverita interactive ask_delete=OFF cpus=$SLURM_NTASKS_PER_NODE gpus=1

Job Abaqus MPI with Fortran

Example script slurm-abaqus-fort.sh to run Abacus on 1 node, 2 cores, 0 GPUs with Fortran subroutine:

slurm-abaqus-fort.sh
#!/bin/bash
#SBATCH --job-name=abaqus_fort
#SBATCH --output=%x.o%j
#SBATCH --error=%x.e%j
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --mem=8G
#SBATCH --time=2-00:00:00
#SBATCH --partition=cpu
#
# Edit next line
#SBATCH --account=<account>
 
echo "$SLURM_JOB_NODELIST"
 
# Modules required by Abacus (choose one of the following two possibilities)
module load gnu intel/ps-xe-2017.2 impi/2017.2 abaqus
#module load gnu openmpi abaqus
 
ulimit -s unlimited
ulimit -s
 
abaqus \
job="$SLURM_JOB_NAME" \
input=<input_file> \
user=<user_file> \
scratch="$SCRATCH" \
interactive \
ask_delete=OFF \
cpus=$SLURM_NTASKS_PER_NODE

Submission example (one node, more then one task per node):

sbatch --account=G_ABAQUS --job-name=MODEL12-01 --partition=bdw --ntasks-per-node=6 --mem=24G slurm-abaqus-fort.sh

Submission example (one node, one task per node):

sbatch --account=G_ABAQUS --job-name=MODEL12-02 --partition=vrt --ntasks-per-node=1 --mem=16G slurm-abaqus-fort.sh

Job Abaqus MPI with user subroutine

Example script slurm-abaqus-user.sh to run Abacus on 1 node, 2 cores, 0 GPUs with user provided subroutine:

slurm-abaqus-user.sh
#!/bin/bash
#SBATCH --job-name=abaqus_user
#SBATCH --output=%x.o%j
#SBATCH --error=%x.e%j
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --mem=8G
#SBATCH --time=2-00:00:00
#SBATCH --partition=cpu
#
# Edit next line
#SBATCH --account=<account>
 
echo "$SLURM_JOB_NODELIST"
 
# Modules required by Abacus (choose one of the following two possibilities)
module load gnu intel/ps-xe-2017.2 openmpi abaqus
#module load gnu openmpi abaqus
 
ulimit -s unlimited
ulimit -s
 
abaqus \
job="$SLURM_JOB_NAME" \
${abaqus_input:+input="$abaqus_input" }\
${abaqus_user:+user="$abaqus_user" }\
scratch="$SCRATCH" \
interactive \
ask_delete=OFF \
cpus=$SLURM_NTASKS_PER_NODE

Submission example (one node, more then one task per node):

abaqus_input=MODEL12
abaqus_user=UTIL56
sbatch --account=G_ABAQUS --job-name=${abaqus_input}-03 --partition=cpu --ntasks-per-node=6 --mem=24G abaqus_user.sh

Submission example (one node, one task per node):

abaqus_input=MODEL12
abaqus_user=UTIL56
sbatch --account=G_ABAQUS --job-name=${abaqus_input}-04 --partition=vrt --ntasks-per-node=1 --mem=16G abaqus_user.sh