es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenamiento de envío y recepción no bloqueante de MPI.

En un sistema de 2 núcleos, para el siguiente código:

if (rank == 0)
  {
    MPI_Isend(A) // a rango 1
    // Haz algo más.
    MPI_Isend(B) // a rango 1
    // Haz algo más.
    MPI_Wait(B se ha enviado)
    MPI_Wait(A se ha enviado)
  }
  else
  {
    MPI_Irecv(buffer1) // Escucha a rango 0
    // Haz algo más.
    MPI_Irecv(buffer2) // Escucha a rango 0
    // Haz algo más.
    MPI_Wait(buffer2 ha terminado de recibir)
    MPI_Wait(buffer1 ha terminado de recibir)
  }

¿Es garantía que el rango 1 recibirá A en el buffer 1, y B en el buffer 2?

¡Gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, se garantizaría que la clasificación 1 recibiera A en el búfer 1 y B en el búfer 2. Esto se debe a que las llamadas MPI_Wait aseguran que los mensajes se envíen y reciban en el orden en que se enviaron.

Comments are closed.