-

This site is deprecated and will be decommissioned shortly. For current information regarding HPC visit our new site: hpc.njit.edu

Abaqus

From NJIT-ARCS HPC Wiki
Revision as of 16:32, 5 October 2020 by Hpcwiki1 dept.admin (Talk | contribs) (Importing text file)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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>

  1. !/bin/bash
  2. EXAMPLE ABAQUS PARALLEL SCRIPT FOR SGE
  3. abaqus_submit.sh
  4. To use, change all of the following to real values:
  5. JOB_NAME, QUEUE, UCID, NUMBER_OF_CPUS, /path/to/abaqus/input
  6. You must also un-comment one of the "module load mpi" lines.
  7. Please see https://wiki.hpc.arcs.njit.edu/ for additional information.
  8. Modified by Basement Supercomputing 1/2/2006 DJE
  9. Modified for NJIT - AM 18Apr06
  10. Updated for modules, QRSH_PORT, additional documenation. 31-Aug-2015 /KJW
  11. Updated for Abaqus 21-Jul-2016 (freely stolen and modified from
  12. https://service.clustervision.com/content/grid-engine-job-script-example-abaqus )/GW
  13. Change JOB_NAME to a one-word alphanumeric description. This will be used for
  14. part of output file name and in status listings.
  15. $ -N JOB_NAME
  1. Change QUEUE to a valid queue. On kong this would be one of "short",
  2. "medium", or "long." See https://wiki.hpc.arcs.njit.edu/index.php/KongQueues
  3. or https://wiki.hpc.arcs.njit.edu/index.php/SthenoQueues for more info
  4. $ -q QUEUE
  1. Send email when jobs starts and again when it finishes or if it aborts.
  2. $ -M UCID@njit.edu
  3. $ -m abe
  1. Use current working directory where "qsub" was invoked.
  2. $ -cwd
  1. Join stdout and stderr
  2. $ -j y
  1. Set your number of processors here by changing NUMBER_OF_CPUS to an integer
  2. value.
  3. Abaqus can use either ompi or threaded environment. The recommended
  4. environment is "ompi"
  5. ompi
  6. threaded
  7. Abaqus uses it's own Grid Engine aware mpi installation.
  8. $ -pe ompi NUMBER_OF_CPUS
  1. Run job through bash shell
  2. $ -S /bin/bash
  1. Load the abaqus module. If using your own subroutine requiring
  2. the intel compiler load that module as well

module load abaqus

  1. module load intel/compiler
  1. The following are for reporting only and not really needed to run the job;
  2. their results will show up in your output file.
  3. The "mpirun" line is relevant only to the mpich2 parallel environment.

echo "Got $NSLOTS processors." echo "cwd=$(pwd)"

  1. 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/

  1. To manage abaqus jobs, you need to catch signals
  2. and use "abaqus terminate" to stop the job

exit_gracefully () {

 abaqus terminate job=$ABAQUS_JOBNAME
 echo Abaqus job $ABAQUS_JOBNAME terminated
 exit

}

  1. Invoke abaqus in the background on the compute node:

trap exit_gracefully SIGUSR2

  1. 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

  1. 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>