3.5.1 Parallel execution: overview

Products: Abaqus/Standard  Abaqus/Explicit  Abaqus/CFD  

References

Overview

Parallel execution of Abaqus is implemented using two different schemes: threads and message passing. Threads are lightweight processes that can perform different tasks simultaneously within the same application. Threads can communicate relatively easily by sharing the same memory pool. Thread-based parallelization is readily available on all shared memory platforms.

Parallelization with message passing uses multiple analysis processes that communicate with each other via the Message Passing Interface (MPI). This requires MPI components to be installed. On the command line you can set mp_mode=mpi to indicate that MPI components are available on the system. Alternatively, set mp_mode=MPI in the environment file (see Using the Abaqus environment settings, Section 3.3.1). The MPI-based implementation is the default on all platforms where it is supported.

Abaqus/CFD is implemented using only the MPI mode and does not support threads. The parallel linear solvers used in Abaqus/CFD require that MPI components be installed even for single-processor calculations.

Output the local installation notes for your system to learn about local multiprocessing capabilities (see Obtaining information, Section 3.2.1). From the Support page at www.simulia.com, refer to the System Information page for the current release of Abaqus for complete information about parallel processing support on various platforms, including information about MPI requirements and availability.

Parallel processing support for Abaqus features

The following Abaqus/Standard features can be executed in parallel: the direct sparse solver, the iterative solver, and element operations. The analysis input preprocessing is not executed in parallel. For Abaqus/Explicit all of the computations other than those involving the analysis input preprocessor and the packager can be executed in parallel. Each of the features that are available for parallel execution has certain limitations, which are documented in detail; see Parallel execution in Abaqus/Standard, Section 3.5.2, and Parallel execution in Abaqus/Explicit, Section 3.5.3. All features in Abaqus/CFD are available for parallel execution without restrictions.

Parallel execution on shared memory computers

Abaqus/Standard and Abaqus/Explicit can be executed in parallel on shared memory computers by using threads or the MPI. When the MPI is available, Abaqus runs all available parallel features with MPI-based parallelization and activates thread-based parallel implementations for cases where an equivalent MPI-based implementation does not exist (e.g., direct sparse solver). Abaqus/CFD can also be executed on shared memory computers but only with the MPI.

Parallel execution on computer clusters

Abaqus can be executed in parallel on computer clusters by using MPI-based parallelization. For parallel execution on computer clusters, the list of machines or hosts is given with the mp_host_list environment file parameter. This parameter also defines the number of processors to be used on each host.

Parallel execution using GPGPU hardware

The direct solver in Abaqus/Standard can be executed in parallel on computers equipped with compute-capable GPGPU cards.

Use with user subroutines

User subroutines can be used when running jobs in parallel. However, user subroutines and any subroutines called by them must be thread safe. This precludes the use of common blocks, data statements, and save statements. Calling subroutines that are not thread safe will result in unpredictable behavior of the executable.