Dune Core Modules (2.5.0)
detects a thrown exception and communicates to all other processes More...
#include <dune/common/parallel/mpiguard.hh>
Public Member Functions | |
MPIGuard (bool active=true) | |
create an MPIGuard operating on the Communicator of the global Dune::MPIHelper More... | |
MPIGuard (MPIHelper &m, bool active=true) | |
create an MPIGuard operating on the Communicator of a special Dune::MPIHelper m More... | |
template<class C > | |
MPIGuard (const C &comm, bool active=true) | |
create an MPIGuard operating on an arbitrary communicator. More... | |
~MPIGuard () | |
destroy the guard and check for undetected exceptions | |
void | reactivate () |
reactivate the guard. More... | |
void | finalize (bool success=true) |
stop the guard. More... | |
Detailed Description
detects a thrown exception and communicates to all other processes
You create a MPIGuard object. If an exception is risen on a process the MPIGuard detects the exception, because the finalize method was not called. when reaching the finalize call all other processes are informed that an error occurred and the MPIGuard throws an exception of type MPIGuardError.
- Note
- You can initialize the MPIGuard from different types of communication objects:
- MPIHelper
- CollectiveCommunication
- MPI_Comm
Constructor & Destructor Documentation
◆ MPIGuard() [1/3]
|
inline |
create an MPIGuard operating on the Communicator of the global Dune::MPIHelper
- Parameters
-
active should the MPIGuard be active upon creation?
◆ MPIGuard() [2/3]
|
inline |
create an MPIGuard operating on the Communicator of a special Dune::MPIHelper m
◆ MPIGuard() [3/3]
|
inline |
create an MPIGuard operating on an arbitrary communicator.
Supported types for the communication object are:
- MPIHelper
- CollectiveCommunication
- MPI_Comm
- Parameters
-
comm reference to a communication object active should the MPIGuard be active upon creation?
Member Function Documentation
◆ finalize()
|
inline |
stop the guard.
If no success parameter is passed, the guard assumes that everything worked as planned. All errors are communicated and an exception of type MPIGuardError is thrown if an error (or exception) occurred on any of the processors in the communicator.
- Parameters
-
success inform the guard about possible errors
References DUNE_THROW.
Referenced by reactivate(), and ~MPIGuard().
◆ reactivate()
|
inline |
reactivate the guard.
If the guard is still active finalize(true) is called first.
References finalize().
The documentation for this class was generated from the following file:
- dune/common/parallel/mpiguard.hh