Abaqus is a computer aided engineering suite based on finite element analysis.
CHPC utilizes a license co-owned by several Mechanical Engineering Department groups.
One has to be a member of one of these groups in order to use the program. If you
don't have an access to Abaqus, please, let us know, we will work with you on what options you may have to use it.
For the current Abaqus users, it is important to observe the license usage and not submit batch jobs when licenses are close to being used fully. Abaqus suite components wait for a license to free before they proceed, which results in the batch job waiting, while occupying the compute nodes. Please see the following webpage for the current license usage.
Abaqus uses a non-linear task vs. license count checked out model, which is as follows:
Number of tasks: 1 2 4 8 12 16 24 32 64 128
Number of licenses: 5 6 8 12 14 16 19 21 28 38
The GUI approach allows one to design and build the simulation, and then potentially run it from the GUI. However, in order to run one generally needs more compute resources which is better done through a batch job.
module load abaqus
An Abaqus window appears that allows one to load, set up or modify a simulation.
Running simulation in the batch is preferred for several reasons. First, one can use more than one node, which may speed up the simulation or make it feasible due to larger memory availability. Second, the job will wait in the SLURM queue till the resources are available, and start without the need of user interaction.
Abaqus has several different ways to run in batch.
The first one uses an input file, usually named *.inp, or *.cae. This file is used as one of the inputs to the abaqus command. In the command line one can specify run parameters, such as parallelization method and CPU count.
The second option is to use a Python script, which contains a "recipe" on how to create the input file and how to run the simulation. While the Python script approach is attractive with respect to automation potential of the input creation, one has to be careful on defining the compute resources so that those specified in the Python script match those requested in the SLURM job script.
An example Abaqus SLURM job script is abaqus_kingspeak.csh. This script uses one of the Abaqus examples as an input, though modifying the JOBNAME
environment variable will allow one to use their own input. Note that the results
will be stored in the scratch directory. It is set up to run on kingspeak guest nodes,
change the account and partition to your preferred cluster and account. You can use
myallocation to see what accounts/partitions you have available.
Make sure that you unset SLURM environment variable
SLURM_GTIDS , failure to do so will cause the Abaqus run to get stuck due to the MPI that Abaqus
ships with not supporting the SLURM scheduler.
Abaqus has two parallelization options which are mutually exclusive, MPI and THREADS.
Using MPI is generally preferred since this allows for scaling the job to multiple
compute nodes. The option to set the parallelization is
mp_mode , e.g.
mp_mode=mpi. However, be aware of the efficiency of the parallelization by checking the job's
performance, as described below.
Once the input file and the script are ready, submit the job as
You can monitor the status of the job with
squeue -u myUNID
myUNID being your uNID.
Once the job starts, it is important to check the simulation and SLURM output files to ensure that the job is not waiting for a license, or that it is well parallelized. Also, utilize the pestat command to check if the compute nodes of your job are well utilized.