Hi,

I have a master/worker-type program where communications between the master and the worker go through MPI, while TCP is used for the user to communicate with the master. So I need the master to wait for the results of the workers using MPI_Recv (or post non-blocking recieves and wait on the request) and wait for commands from the user through the TCP.

Every solutions I can come up with involve setting the TCP socket to non-bvlocking and enter a busy loop (either internal to MPI if I use MPI generalized requests, or external if I alternate MPI_Test_any and try reading on the socket).

The only other solution I can imagine uses threads (1 thread blocking on MPI_Recv, 1 thread blocking on a TCP read).

Any other potential solutions?

Thanks,
Matthieu


Matthieu Dorier, PhD
Postdoctoral Appointee
Argonne National Laboratory, MCS
9700 S Cass Ave, Lemont, IL 60439
+1 630 252 1515