3.5.1 Parallel execution: overview

Products: Abaqus/Standard  Abaqus/Explicit  Abaqus/CFD  

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.3ds.com/simulia, 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: analysis input preprocessing, the direct sparse solver, the iterative solver, and element operations. Analysis input preprocessing uses only MPI-based parallelization and will not be executed in parallel if only data checking is performed. 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. In a distributed run, the entire model is decomposed into separate domains (partitions). Each domain is serviced by a separate MPI process. Abaqus provides well-defined synchronization points at which it is possible to exchange information across all MPI ranks, using the MPI communications facilities. All native MPI calls are supported, in both Fortran and C++. In addition, for cases of hybrid execution, user subroutines and any subroutines called by them must be thread safe. This precludes the use of common blocks, data statements, and save statements. To work around these limitations and for guidelines and techniques, see Ensuring thread safety, Section 2.1.22 of the Abaqus User Subroutines Reference Guide.

Your query was poorly formed. Please make corrections.


3.5.1 Parallel execution: overview

Products: Abaqus/Standard  Abaqus/Explicit  Abaqus/CFD  

Your query was poorly formed. Please make corrections.

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.3ds.com/simulia, 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.

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.

Parallel processing support for Abaqus features

The following Abaqus/Standard features can be executed in parallel: analysis input preprocessing, the direct sparse solver, the iterative solver, and element operations. Analysis input preprocessing uses only MPI-based parallelization and will not be executed in parallel if only data checking is performed. 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.

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.

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.

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.

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.

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.

Parallel execution using GPGPU hardware

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

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.

Use with user subroutines

User subroutines can be used when running jobs in parallel. In a distributed run, the entire model is decomposed into separate domains (partitions). Each domain is serviced by a separate MPI process. Abaqus provides well-defined synchronization points at which it is possible to exchange information across all MPI ranks, using the MPI communications facilities. All native MPI calls are supported, in both Fortran and C++. In addition, for cases of hybrid execution, user subroutines and any subroutines called by them must be thread safe. This precludes the use of common blocks, data statements, and save statements. To work around these limitations and for guidelines and techniques, see Ensuring thread safety, Section 2.1.22 of the Abaqus User Subroutines Reference Guide.

Your query was poorly formed. Please make corrections.
Your query was poorly formed. Please make corrections.