-
This site is deprecated and will be decommissioned shortly. For current information regarding HPC visit our new site: hpc.njit.edu
Abaqus
The following instructions are for running the "ABAQUS/Standard performance benchmark S4d: Cylinder head bolt-up" in parallel on kong.
Load the abaqus module:
<pre=code>module load abaqus</pre>
Create a directory for this run:
<pre=code>mkdir abaqus_s4d cd abaqus_s4d</pre>
Get the Abaqus s4d input file: <pre=code>abaqus fetch job=s4d</pre>
Edit the submit script as directed: <pre=code>
- !/bin/bash
- EXAMPLE ABAQUS PARALLEL SCRIPT FOR SGE
- abaqus_submit.sh
- To use, change all of the following to real values:
- JOB_NAME, QUEUE, UCID, NUMBER_OF_CPUS, /path/to/abaqus/input
- You must also un-comment one of the "module load mpi" lines.
- Please see https://wiki.hpc.arcs.njit.edu/ for additional information.
- Modified by Basement Supercomputing 1/2/2006 DJE
- Modified for NJIT - AM 18Apr06
- Updated for modules, QRSH_PORT, additional documenation. 31-Aug-2015 /KJW
- Updated for Abaqus 21-Jul-2016 (freely stolen and modified from
- https://service.clustervision.com/content/grid-engine-job-script-example-abaqus )/GW
-
- Change JOB_NAME to a one-word alphanumeric description. This will be used for
- part of output file name and in status listings.
- $ -N JOB_NAME
- Change QUEUE to a valid queue. On kong this would be one of "short",
- "medium", or "long." See https://wiki.hpc.arcs.njit.edu/index.php/KongQueues
- or https://wiki.hpc.arcs.njit.edu/index.php/SthenoQueues for more info
- $ -q QUEUE
- Send email when jobs starts and again when it finishes or if it aborts.
- $ -M UCID@njit.edu
- $ -m abe
- Use current working directory where "qsub" was invoked.
- $ -cwd
- Join stdout and stderr
- $ -j y
- Set your number of processors here by changing NUMBER_OF_CPUS to an integer
- value.
- Abaqus can use either ompi or threaded environment. The recommended
- environment is "ompi"
- ompi
- threaded
- Abaqus uses it's own Grid Engine aware mpi installation.
- $ -pe ompi NUMBER_OF_CPUS
- Run job through bash shell
- $ -S /bin/bash
- Load the abaqus module. If using your own subroutine requiring
- the intel compiler load that module as well
module load abaqus
- module load intel/compiler
- The following are for reporting only and not really needed to run the job;
- their results will show up in your output file.
- The "mpirun" line is relevant only to the mpich2 parallel environment.
echo "Got $NSLOTS processors." echo "cwd=$(pwd)"
- Define Abaqus particulars of this run:
ABAQUS_PROGRAM=abaqus ABAQUS_INPUT=/path/to/abaqus/input ABAQUS_JOBNAME=ABAQUS_${JOB_ID} ABAQUS_ARGS="" ABAQUS_SCRATCH_DIR=/scratch/
- To manage abaqus jobs, you need to catch signals
- and use "abaqus terminate" to stop the job
exit_gracefully () {
abaqus terminate job=$ABAQUS_JOBNAME echo Abaqus job $ABAQUS_JOBNAME terminated exit
}
- Invoke abaqus in the background on the compute node:
trap exit_gracefully SIGUSR2
- Use this for MPI (distributed memory) parallelism
$ABAQUS_PROGRAM cpus=$NSLOTS mp_mode=mpi job=$ABAQUS_JOBNAME input=$ABAQUS_INPUT scratch=$ABAQUS_SCRATCH_DIR $ABAQUS_ARGS
- now sleep until lock file disappears
sleep 60 while [ -f ${ABAQUS_JOBNAME}.lck ]; do sleep 5 done </pre>
Submit the script: <pre=code>qsub abaqus_submit.sh</pre>