Is there an easy way to get at "Attempting to use an MPI routine after finalizing MPI"? It is for sure being called by a logging message, possibly in a destructor, but I can't find the call.
Asked
Active
Viewed 2,055 times
1
-
Yeah it was a destructor. Don't do things in destructors fam – Carbon Oct 31 '17 at 20:44
-
Hi, I am facing the same error as you, but I do not have any destructores in my c program. Any ideas? – TonySalimi May 02 '18 at 13:21
-
1Try wrapping your calls to MPI functions and `cout`ing em if you're using raw MPI. Or write a `boost::mpi` wrapper, that saved me SO MUCH time. – Carbon May 02 '18 at 13:48
-
Well, I did that before. Everything seems to be fine till the wrapper for mpi_finalize() returns. But afterwards, I am getting these errors. – TonySalimi May 02 '18 at 14:16
-
You sure it's not process 1 ending while process 2 is still doing something? – Carbon May 02 '18 at 14:30
-
Yeah, I have a barrier right before the mpi_finalize(). – TonySalimi May 02 '18 at 14:34
-
Probably a pending listen or send getting cancelled. I'd walk through the processes to see which one is doing it – Carbon May 02 '18 at 16:06
-
If the program is otherwise behaving properly it's usually benign – Carbon May 02 '18 at 16:07
-
Well, I am writing some results to hdf5, but due to this problem, the files could not be opened. They seem to be damaged. – TonySalimi May 02 '18 at 17:38