Enumeration describing the level of threading support provided by the MPI implementation.
The MPI environment should be initialized with the minimum threading support required
for your application, because additional threading support can have a negative impact
on performance.
The four options providing monotonically-increasing levels of freedom for the MPI
program. Thus, a program implemented based on the Threading.Single semantics
will work perfectly well (although perhaps less efficiently) with Threading.Multiple.
Namespace:
MPIAssembly: MPI (in MPI.dll)
Version: 1.0.0.0 (1.0.0.0)
Syntax
| C# |
|---|
public enum Threading |
| Visual Basic (Declaration) |
|---|
Public Enumeration Threading |
| Visual C++ |
|---|
public enum class Threading |
Members
| Member name | Description | |
|---|---|---|
| Single |
The program is single-threaded, and does not ever create additional threads
(even those that don't use MPI).
| |
| Funneled |
The program is multi-threaded, but only one of those threads (the main thread)
will make calls into the MPI library. Thus, all of the MPI calls are "funneled"
into that one thread. One can determine if the currently-executing thread is
the main thread via IsMainThread.
| |
| Serialized |
The program is multi-threaded, and more than one thread will make calls into
the MPI library. However, these calls into MPI are "serialized", in that
no two threads will call the MPI library at the same time. This mode essentially
requires the user program to have the equivalent of a global lock around all calls
to MPI.
| |
| Multiple |
The program is multi-threaded, and more than one thread will make calls into
the MPI library. The program is free to call the MPI library routines from
any thread at any time, including having multiple threads calling MPI
concurrently. Note that this level of threading is not supported by MS MPI.
|