[Dune] DUNE_THROW behaviour in parallel

Aleksejs Fomins aleksejs.fomins at lspr.swiss
Tue Nov 8 10:27:12 CET 2016


Dear Dune,

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?


Best regards,

Aleksejs







More information about the Dune mailing list