Publication Details
Handling C++ Exceptions in MPI Applications
MPI, C++ Exceptions, Error Reporting.
Handling error states in C++ applications is managed by exceptions. In distributed applications, it is necessary to inform the other processes, that something wrong happened, and the application should either recover from the faulty state, or report the error and terminate gracefully. Unfortunately, the MPI standard does not provide any support for distributed error handling.
This poster presents a new approach for exceptions handling in MPI applications. The goals are to (1) report any faulty state to the user in a nicely formatted way by just a single rank, (2) ensure the application will never deadlock, (3) propose a simple interface and ensure interoperability with other C/C++ libraries. The code was tested with several injected errors into multiple ranks such as non existing input file, disk quota exceeded, wrong rank in the MPI call, and standard system exceptions. In all situations the code has worked properly.