Programación Con Mpi

Páginas: 9 (2021 palabras) Publicado: 10 de octubre de 2012
MPI - Personal

http://localhost/personal/index.php?title=MPI&printable=yes

MPI
De Personal En esta página se encuentran aspectos de la programación de programas paralelos con MPI utilizando la implementación mpich2.

Contenido
1 Aspectos Relevantes 1.1 Blocking 1.1.1 Implementaciones 1.1.2 Peligro de enviar un mensaje al proceso 0 usando MPI_Send 1.2 Uso de tag 1.3 Non Blocking 1.3.1Ejemplo 1.4 Comunicadores Colectivos 1.4.1 MPI_Reduce 1.4.2 BroadCast MPI_BCast 1.4.3 Scatter y Gather 2 Ejemplos 2.1 Ejemplo de MPI_Send y MPI_Recv 2.2 Ejemplo de MPI_Reduce 2.3 Ejemplo de MPI_Bcast 2.4 Ejemplo Scatter y Gather

Aspectos Relevantes
Blocking
This form of send and receive are “blocking”, which is a technical term that has the following meaning. for the send, it means that buf hasbeen read by the system and the data has been moved out as soon as the send returns. The sending process can write into it without corrupting the message that was sent. For the receive, it means that buf has been filled with data on return. (A call to MPI Recv with no corresponding call to MPI Send occurring elsewhere is a very good and often used method for hanging a message passingapplication.) (Traducción) Esta manera de enviar y recibir es "bloqueante", el cual es un término técnico que tiene el siguiente significado. Para el "send", significa que el "buf" ha sido leído por el sistema y los

1 de 7

10/10/2012 15:39

MPI - Personal

http://localhost/personal/index.php?title=MPI&printable=yes

datos se han movido afuera tan pronto como el "send" devuelve el control. Elproceso que hace el envío puede sobreescribir (el buf) sin corromper el mensaje que fue enviado. Para el "receive", significa que el "buf" ha sido llenado con los datos al momento en que devuelve el control. (Una llamada a un MPI_Recv si una correspondiente llamada a MPI_Send es una buen método para colgar una aplicación de paso de mensajes).

Implementaciones
Uso de un buffer del sistema y unproceso a parte se encarga de enviar los datos. MPI_Bsend. Esperar a un receptor, enviarles los datos y devolver el control al llamador. MPI_Ssend.

Peligro de enviar un mensaje al proceso 0 usando MPI_Send
El peligro de hacer un envío de la siguiente forma:
if (myrank == 0) for(dest = 0; dest < size; dest++) MPI_Send(sendbuf+dest*count, count, MPI_INT, dest, tag, MPI_COMM_WORLD);MPI_Recv(recvbuf, count, MPI_INT, 0, tag, MPI_COMM_WORLD, &stat);

radica en que si el sistema no tiene espacio suficiente el los "buffers" de salida, se bloquea hasta que el receive se ejecute. De modo que se cuelga.

Uso de tag
El tag nos permite diferenciar entre los mensajes. Por ejemplo, si queremos procesar datos de tipo entero y datos de dipo flotante, con el tag diferenciamos los mensajes para pasarlos distintos datos. No sirve sólo el tipo, porque el tipo no se envía en el "envelope" (envoltorio) del mensaje. Pueden haber problemas con los tags si utilizamos una librería de un tercero que utiliza los mismos tags. Para evitarlo, se pueden crear nuevos comunicadores:
void safe_library_routine(MPI_Comm oldcomm) { MPI_Comm mycomm; MPI_Comm_dup(oldcomm, &mycomm); MPI_Comm_free(&mycomm); }Non Blocking
Podemos hacer envíos y recepciones no bloqueantes. Cito y traduzco: "Nonblocking send and receive work this way. A nonblock send start call initiates a send but returns before the data are out of the send buffer. A separate call to send complete then blocks the sending process, returning only when the data are out of the buffer. The same two- phase

2 de 7

10/10/2012 15:39 MPI - Personal

http://localhost/personal/index.php?title=MPI&printable=yes

protocol is used for nonblocking receive. The receive start call returns right away, and the receive complete call returns only when the data are in the buffer." (Traducción) El "send" y "receive" no-bloqueante funcionan de esta manera. Un "send" no-bloqueante comienza a enviar pero devuelve el control antes de que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Manual mpi
  • Mpio De Puebla
  • Mpios Chiaàs
  • Vision mpi
  • red mpi
  • Comunicación Mpi
  • ECONOMIA MPIO TIBASOSA
  • Índice De Pobreza Multidimensional (Mpi)

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS