is available for shared memory computers and computer clusters for the
element operations, direct sparse solver, and iterative linear equation solver;
and
can use compute-capable GPGPU hardware on shared memory
computers for the direct sparse solver, AMS eigensolver, and modal frequency response
solver.
Abaqus/Standard supports both shared memory computers and computer clusters for parallelization.
Parallelization is invoked using the cpus option in the
abaqus execution procedure. The type of parallelization that is
executed relies on the computer resource configured by the job submission system. The
configured computer resource is reflected via the environment variable
mp_host_list (see Environment File Settings). If mp_host_list consists of a single machine host,
thread-based parallelization is used within that host if it has more than one processor
available. If mp_host_list consists of multiple hosts,
MPI-based parallelization is executed. In addition, if each host has more than one
processor, thread-based parallelization is executed on each host. This type of
parallelization is defined as a hybrid parallelization of MPI and threads.
Thread-Based Parallelization
Abaqus/Standard can be executed in thread mode within one node of a compute cluster and takes advantage
of the shared memory available to the threads that are running on different processors. In
most cases thread-based parallelization is fully supported in Abaqus/Standard. It is not supported for the inefficient old implementation of the linear dynamic
analysis procedures initiated using the parameter setting SIM=NO. Using this branch of the
code is required in several cases as a workaround for current limitations of the new
high-performance implementation of the linear dynamic analysis procedures.
MPI-Based Parallelization
Abaqus/Standard can also be executed in MPI mode, which uses the message passing interface to communicate
between machine hosts. In most cases MPI-based parallelization is fully supported in Abaqus/Standard, except in the following workflows and features:
Cavity radiation analyses where parallel decomposition of the cavity is not allowed
and writing or restart data is requested (Cavity Radiation in Abaqus/Standard).
Heat transfer analyses where average-temperature radiation conditions are specified
(Thermal Loads).
You can further improve performance in hybrid mode when MPI parallelization is executed
between hosts and thread-based parallelization is executed within each host.
The threads_per_mpi_process option can be used in
conjunction with the cpus option to reconfigure the
parallelization. The number of threads_per_mpi_process
should be a divisor of the number of processors on each host and eventually a divisor of the
number of cpus if the number of processors on all hosts are the same.
Some physical systems (systems that, for example, undergo buckling,
material failure, or delamination) can be highly sensitive to small
perturbations. For example, it is well known that the experimentally measured
buckling loads and final configurations of a set of seemingly identical
cylindrical shells can show significant scatter due to small differences in
boundary conditions, loads, initial geometries, etc. When simulating such
systems, the physical sensitivities seen in an experiment can be manifested as
sensitivities to small numerical differences caused by finite precision
effects. Finite precision effects can lead to small numerical differences when
running jobs on different numbers of processors. Therefore, when simulating
physically sensitive systems, you may see differences in the numerical results
(reflecting the differences seen in experiments) between jobs run on different
numbers of processors. To obtain consistent simulation results from run to run,
the number of processors should be constant.