Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Type level

boost::mpi::threading::level — specify the supported threading level.


// In header: <boost/mpi/environment.hpp>

enum level { single =  MPI_THREAD_SINGLE, funneled =  MPI_THREAD_FUNNELED, 
             serialized =  MPI_THREAD_SERIALIZED, 
             multiple =  MPI_THREAD_MULTIPLE };


Based on MPI 2 standard/8.7.3


Only one thread will execute.


Only main thread will do MPI calls.

The process may be multi-threaded, but only the main thread will make MPI calls (all MPI calls are ``funneled'' to the main thread).


Only one thread at the time do MPI calls.

The process may be multi-threaded, and multiple threads may make MPI calls, but only one at a time: MPI calls are not made concurrently from two distinct threads (all MPI calls are ``serialized'').


Multiple thread may do MPI calls.

Multiple threads may call MPI, with no restrictions.