LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Ismael Farfán (sulfurfff_at_[hidden])
Date: 2012-09-14 12:18:32


Hello list

Let's say that I have 2 threads (Ti) per process (Pj):
T1: ( main() ) are doing _synchronous_ Send/Recv/Barrier/(all)Gather
operations among many other non MPI tasks.
T2: are running in a loop that will Abort the program if it detects
that it has been blocked for too long.

QUESTION:
Is there a function that I can call that tells me if my process is
waiting to receive a message and optionally the kind of message it is
waiting for (from the second thread)?

------------- Some more info: --------------
There are many reasons why my process can be stalled, P1 is waiting a
message from P2 which is waiting for P3 to release the lock on a
file... slow I/O, some bug :p etc.

My main threads (T1's) *have* to use synchronous messages.

The code is quite big, so I'd prefer no to use MPI_Irecv just to call
MPI_Wait immediately after so that T2 can access a global *request
variable and do it's thing.

Ismael

-- 
Do not let me induce you to satisfy my curiosity, from an expectation,
that I shall gratify yours. What I may judge proper to conceal, does
not concern myself alone.