Hi,
I have difficulty catching std::bac_alloc in an MPI environment. The code
is attached. I'm uisng gcc 6.3 on SUSE Linux Enterprise Server 11 (x86_64).
mpich is built from source. The commands are as follows:
*Build*
g++ -I<mpich-3.3-opt/include> -L<mpich-3.3-opt/lib> -lmpi memory.cpp
*Run*
<mpich-3.3-opt/bin/mpiexec> -n 2 a.out
*Output*
0
0
1
1
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 16067 RUNNING AT <machine name>
= EXIT CODE: 9
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Killed (signal 9)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
If I uncomment the line //if (rank == 0), i.e., only rank 0 allocates
memory, I'm able to catch bad_alloc as I expected. It seems that I am
misunderstanding something. Could you please help? Thanks a lot.
Best regards,
Zhen