#include <Teuchos_ErrorPolling.hpp>
Static Public Member Functions | |
| void | reportFailure (const MPIComm &comm) |
| bool | pollForFailures (const MPIComm &comm) |
| void | enable () |
| void | disable () |
The two functions must be used in a coordinated way. The simplest use case is to embed a call to reportFailure() whenever an exception is detected at the top-level try/catch block, and then to do a call to pollForFailures() whenever it is desired to check for off-processor errors before proceeding. The macro
TEUCHOS_TEST_FOR_FAILURE(comm);
calls pollForFailures() and throws an exception if the return value is true.
Polling is a collective operation (an MPI_Reduce) and so incurs some performance overhead. It can be disabled with a call to
IMPORTANT: all processors must agree on whether collective error checking is enabled or disabled. If there are inconsistent states, the reduction operations in pollForFailures() will hang because some processors cannot be contacted.
Definition at line 70 of file Teuchos_ErrorPolling.hpp.
|
|
Call this function upon catching an exception in order to inform other processors of the error. This function will do an AllReduce in conjunction with calls to either this function or its partner, pollForFailures(), on the other processors. This procedure has the effect of communicating to the other processors that an exception has been detected on this one. Definition at line 34 of file Teuchos_ErrorPolling.cpp. |
|
|
Call this function after exception-free completion of a try/catch block. This function will do an AllReduce in conjunction with calls to either this function or its partner, reportFailure(), on the other processors. If a failure has been reported by another processor, the call to pollForFailures() will return true and an exception can be thrown. Definition at line 45 of file Teuchos_ErrorPolling.cpp. |
|
|
Activate error polling Definition at line 90 of file Teuchos_ErrorPolling.hpp. |
|
|
Disable error polling Definition at line 93 of file Teuchos_ErrorPolling.hpp. |
1.3.9.1