The problem is the following: I call several pairs of queries from root to slaves according to the following scheme:
MPI_isend -> MPI_irecv -> slave work -> MPI_wait_all At the MPI_isend stage, the MPI_isend sends the request also to itself, but at the MPI_wait_all stage the MPI_wait_all hangs on waiting for the processing of this request, if the slave work made from another thread.
Can anyone answer, is this a normal situation if the level of synchronization is set to MPI_THREAD_SERIALIZED ?