[Dune] DUNE_THROW behaviour in parallel

Jö Fahlke jorrit at jorrit.de
Tue Nov 8 10:58:52 CET 2016


Am Tue,  8. Nov 2016, 10:27:12 +0100 schrieb Aleksejs Fomins:
> In my experience DUNE_THROW (or the way I am using it) is working imperfectly in parallel.
> 
> It is frequent that an exception is thrown on one or two of the many processes that are running my code. However, this does not terminate the entire code, as the other processes continue running. Further, if some of the processes start MPI communication at the same time, this causes a deadlock, and the program never crashes, as the remaining processes are waiting for the processes already crashed. As a result, if I am starting a large calculation and miss one line of error text in the output, I end up waiting in vain.
> 
> I am not an expert in MPI, so perhaps some of you could advise me:
> 
> Is it possible to throw an exception in such a way, that all processes running the job would crash, not just one of them?

This is a messy problem and I don't think there is a general solution possible
on the Dune side.  But have a look at MPIGuard[1], which may help you in some
cases.

Regards,
Jö.

[1] https://dune-project.org/doxygen/master/classDune_1_1MPIGuard.html

-- 
Jorrit (Jö) Fahlke, Institute for Computational und Applied Mathematics,
University of Münster, Orleans-Ring 10, D-48149 Münster
Tel: +49 251 83 35146 Fax: +49 251 83 32729

This is the first age that's paid much attention to the future, which
is a little ironic since we may not have one.
-- Arthur C Clarke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 811 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20161108/954dd671/attachment.sig>


More information about the Dune mailing list