Hello,

I used MPI RMA in my program, but the program stop at the MPI_Win_fence, I have a master process receive data from udp socket. Other processes use MPI_Get to access data.

master process:

MPI_Create(...)
for(...){
/* udp recv operation */

MPI_Barrier  // to let other process know data received from udp is ready

MPI_Win_fence(0, win);
MPI_Win_fence(0, win);

}


other processes:

for(...){

MPI_Barrier  // sync for udp data ready

MPI_Win_fence(0, win);

MPI_Get();

MPI_Win_fence(0, win);  <-- program stopped here

/* other operation */
}

I found that the program stopped at second MPI_Win_fence, the terminal output is:


===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions


Do you have any suggestions? Thank you very much!

--
Best Regards,
Sufeng Niu
ECASP lab, ECE department, Illinois Institute of Technology
Tel: 312-731-7219