2012-08-30 17 views
5

tengo curiosidad por la falta de esta función en MPI:MPI no bloqueo de envío/recv

MPI_Isendrecv(...); 

es decir, un no-bloqueo de enviar y recibir, puede alguien decirme la razón de su omisión?

+0

Al mirar el borrador de la especificación MPI original en netlib.org, parece que la función solía incluirse, pero luego cayó en la especificación MPI 1.0 final. Ahora también tengo curiosidad sobre cuál fue el motivo. –

Respuesta

5

Mi opinión es que MPI_SENDRECV existe como una conveniencia para los programadores que desean usar la semántica de bloqueo, pero necesitan implementar una operación de cambio. Si te sientes cómodo con la semántica sin bloqueo, simplemente debes usar la existente MPI_ISEND y MPI_IRECV.

Curiosamente, MPI-3 agregará colectivos no bloqueantes (por ejemplo, MPI_IBARRIER), pero aún no MPI_ISENDRECV (consulte http://meetings.mpi-forum.org/draft_standard/mpi3.0_draft_2.pdf).