Mpi:
message
passing
interface

Páginas: 7 (1598 palabras) Publicado: 15 de agosto de 2010
MPI:
Message
Passing
Interface

Arquitectura
de
Computadores
II Ingeniería
en
Informática
(4º
Curso)
 Universidad
Carlos
III
de
Madrid

Definición


MPI es una interfaz de paso de mensaje que representa un esfuerzo prometedor de mejorar la disponibilidad de un software altamente eficiente y portable para satisfacer las necesidades actuales en la computación de alto rendimiento a travésde la definición de un estándar de paso de mensajes universal.
William D. Gropp et al.

¿Que es MPI?
  

Es un estándar de ley. Estándar para una biblioteca de paso de mensajes. Implementaciones de MPI:
 www-unix.mcs.anl.gov/mpi/mpich/  www.lam-mpi.org/



Otras direcciones:
 www-unix.mcs.anl.gov/mpi/  www.mpi-forum.org/

Introducción: Enfoque práctico


Imaginemos quequeremos ejecutar el siguiente programa en 4 máquinas distintas de forma paralela:
int main(){ printf(“Hola mundo\n”); } gcc –Wall hola.c –o hola ./hola



Una opción, es ir a las 4 máquinas, y ejecutar el programa en ellas (POCO EFICIENTE).

Introducción: Enfoque práctico


Otra opción es utilizar MPI, y desde una maquina, ejecutar el siguiente código (MÁS EFICIENTE)
Int main() {MPI_Init(&argc,&argv); printf(“Hola mundo\n”); MPI_Finalice(); } mpicc –o hola hola.c mpirun –n 4 hola

Generalidades
 

MPI 1.2 tiene 129 funciones Las funciones principales de MPI son:
 MPI_Init  MPI_Finalize  MPI_Comm_size  MPI_Comm_rank  MPI_Send  MPI_Recv

Proceso
    

La unidad básica en MPI son los procesos. Tienen espacios de memoria independientes. Intercambio deinformación por paso de mensajes. Introduce en concepto de comunicadores (grupo de procesos más contexto). Cada proceso se le asigna un identificador interno propio de MPI (rank).

Mi primer programa con MPI
#include #include “mpi.h” int main(int argc, char *argv[]) { int myrank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Comm_size(MPI_COMM_WORLD, &size);printf(“Hola soy el proceso %d de %d\n”, myrank, size); MPI_Finalize(); exit(0);

Comunicadores

  

MPI agrupa los procesos implicados en una ejecución paralela en comunicadores. Un comunicador agrupa a procesos que pueden intercambiarse mensajes. El comunicador MPI_COMM_WORLD está creado por defecto y engloba a todos los procesos.

MPI_Init, MPI_Finalize
int MPI_Init(int *argc, char **argv)  

Primera llamada de cada uno de los procesos MPI Establece entorno Un proceso solo puede hacer una llamada MPI_INIT Termina la ejecución en MPI Libera los recursos utilizados por MPI

int MPI_Finalize(void)
 

Identificación de procesos
MPI_Comm_rank (comm, &pid);
 Devuelve en pid el identificador del proceso



dentro del comunicador comm especificado  (ej.:MPI_COMM_WORLD).


MPI_Comm_size (comm, &npr);
 Devuelve en npr el número de procesos del

comunicador especificado.

Tipos de mensajes (I)


Punto a punto: 1 emisor -1 receptor
 Síncronos: El emisor se espera a que la

comunicación se produzca (o que el buffer del receptor este disponible). BLOQUEANTE
▪ Send, Recv, SendRecv, Bsend, Ssend, …

 Asíncronos: El emisor NO se espera a quela

comunicación se produzca y se comprueba más tarde si se ha producido. NO BLOQUEANTES
▪ Isend, Irecv, …

Tipo de mensajes (II)


Multipunto: 1 o N emisores- 1 o N receptores
 Bcast, Reduce, Barrier, Gather, Scatter,

AllReduce, AllAllgather, …

Ejemplo de comunicación
EMI REC

RTS RTR D

  

Petición de transmisión Aceptación de transmisión Envío de datos (de buffer deusuario a buffer de usuario

MPI_Send, MPI_Recv (I)

MPI_Send, MPI_Recv (II)

MPI_Send(buf, count, datatype, dest, tag, comm) MPI_Recv(buf, count, datatype, source, tag, comm)
   

buf: Dirección donde comienza el mensaje. count: número de elementos del mensaje. datatype: tipo del mensaje. dest/source: posición relativa del proceso fuente/ destino dentro del comunicador....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Message
  • message
  • Message
  • Interfaces
  • Interfaces
  • Interface
  • Interface
  • Interfaces

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS