Controlling MPI Detection

By default, OpenMDAO will attempt to import the mpi4py module. If that fails, or if MPI.COMM_WORLD.size is 1, a warning is printed and execution continues normally without MPI support:

Unable to import mpi4py. Parallel processing unavailable.

Continuing can be problematic if MPI processing was intended, so this behavior can be modified by setting the environment variable OPENMDAO_REQUIRE_MPI:

  • A value of True (or Yes, 1, or Always; case-insensitive) will raise an exception if mpi4py fails to load. If successful, MPI will be used even if MPI.COMM_WORLD.size is only 1.

  • Any other value will prevent loading of the mpi4py module, disabling MPI usage. This can be useful when:

    • MPI is disallowed (e.g. certain HPC cluster head nodes)

    • Loading mpi4py causes unacceptable overhead

    • Displaying the warning message is undesirable

MPI Troubleshooting

This section describes how to fix certain MPI related problems.

The following errors may occur when using certain versions of Open MPI:

Fix the There are not enough slots available in the system… error by defining


in your environment.

Fix the A system call failed during shared memory initialization that should not have… error by setting


in your environment.

MPI Testing

Running OpenMDAO’s MPI tests requires the use of the testflo package. You must have a working MPI library installed, for example openmpi or MVAPICH, and the mpi4py, petsc4py, and pyoptsparse python packages must be installed in your python environment.