[MPICH] question on progress engine in MPICH2
Guillaume Mercier
mercierg at mcs.anl.gov
Fri Jan 20 08:49:02 CST 2006
Hello,
> But it is unclear to me that where these functions are used. As for
> MPID_CH3_Progress_wait, using grep, I only found it used in
> MPID_Probe. How is the progress engine used for MPID_Send,
> MPID_Recv etc?
The progress engine code isn't used in MPID_Recv but in MPI_Recv.
(src/mpi/pt2pt/recv.c). Here is how it is used :
if ((*(request_ptr)->cc_ptr) != 0)
{
MPID_Progress_state progress_state;
MPID_Progress_start(&progress_state);
while((*(request_ptr)->cc_ptr) != 0)
{
mpi_errno = MPID_Progress_wait(&progress_state);
if (mpi_errno != MPI_SUCCESS)
{
/* --BEGIN ERROR HANDLING-- */
MPID_Progress_end(&progress_state);
goto fn_fail;
/* --END ERROR HANDLING-- */
}
}
MPID_Progress_end(&progress_state);
}
MPI_Recv calls MPID_Recv that returns a request object.
This request is then completed in the above code.
I hope this helps.
Best Regards,
Guillaume Mercier
More information about the mpich-discuss
mailing list