| Home | Libraries | People | FAQ | More

## Type level

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

## Synopsis

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

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

## Description

Based on MPI 2 standard/8.7.3

`single`

  Only one thread will execute.

`funneled`

  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).

`serialized`

  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`

  Multiple thread may do MPI calls.

  Multiple threads may call MPI, with no restrictions.