Introduccion a MPI

2,396 views
2,165 views

Published on

Introduccion a MPI. Mayo 2010

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,396
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduccion a MPI

  1. 1. MPI Message Passing Interface Unai Lopez
  2. 2. Índice <ul><li>Introducción (¿Qué es?) </li></ul><ul><li>Funcionamiento (¿Cómo se usa?) </li></ul><ul><li>Demo (¿ Funciona ?) </li></ul><ul><li>OpenMP (¿Qué alternativa?) </li></ul><ul><li>Apuntes finales (¿Queda algo?) </li></ul><ul><li>Turno de preguntas </li></ul>
  3. 3. Introducción: Definiciones &quot;MPI is library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users&quot; ( http://www.mcs.anl.gov/research/projects/mpi ) &quot;MPI es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores.&quot; (http://es.wikipedia.org/wiki/MPI)
  4. 4. Introducción: Historia · Diseñado por un conjunto de compañías (IBM,Intel,..), laboratorios y universidades (Michigan, Yale, Edinburgo,..) http://www.mcs.anl.gov/research/projects/mpi/whodidmpitab.html · Actualmente en la versión MPI-2 · Implementaciones: MPICH, OpenMPI, Intel,.. &quot; &quot;
  5. 5. Introducción: El paso de mensajes · Técnica de sincronización de procesos · Elementos: emisor, mensaje y receptor · Tipos: - Síncrono (rendezvous) - Asíncrono
  6. 6. Introducción: Donde se usa Orientada a sistemas SIN memoria compartida
  7. 7. Introducción: Dónde se usa
  8. 8. Funcionamiento: Conceptos · Aplicación -> formada por procesos · Comunicador (communicator): representa un conjunto de procesos. Ej: Comm. World=incluye todos los procesos · Rango (rank): id. de cada proceso
  9. 9. Funcionamiento: Tipos de funciones 1· Gestión: Inicializar, administrar, finalizar 2· Comunicación 1 a 1 3· Comunicación 1 a N 4· Definición de datos por el usuario
  10. 10. Funcionamiento: Tipo 1 · MPI_Init: Inicia una sesión mpi · MPI_Comm_size: total proc. del comunicador · MPI_Comm_rank: id del proceso actual · MPI_Finalize: Termina una sesión mpi
  11. 11. Funcionamiento: Tipo 2 Comunicación síncrona · MPI_Send: Envía un mensaje (bloqueante) · MPI_Receive: Recibe un mensaje (bloqueante) Comunicación asíncrona · MPI_Isend: Envía un mensaje (no bloqueante) · MPI_Irecv: Recibe un mensaje (no bloqueante) · MPI_Test: Verifica si se ha realizado la operación · MPI_Wait: Bloquea hasta operación completada
  12. 12. Funcionamiento: Tipo 3 · MPI_Bcast: Envío a procesos de un comunicador · MPI_Barrier: Barrera de sincronización · ...
  13. 13. Funcionamiento: Tipo 4 · MPI_Type_struct: Define un tipo de dato · MPI_Pack: Empaqueta un dato · ...
  14. 14. Demo: OpenMPI · Implementación Open Source de MPI-2 · Multiplataforma · Rápido en ejecución y fácil de utilizar · Alternativa a MPICH: el más extendido
  15. 15. Demo: OpenMPI - Instalación Instalación en GNU/Linux 1· Descargar tar de www.open-mpi.org 2· Descomprimir en directorio al gusto 3· ./configure - -prefix=**RUTA INSTALACION** 4· sudo make all install Instalación en Mac OSX: · Incluido en XCode
  16. 16. Demo: OpenMPI - Comandos Para compilar los programas: · C/C++: mpicc / mpic++ · Fortran: mpi77 / mpi90 Ejecutar: · mpirun -parámetros aplicación
  17. 17. Demo: OpenMPI - Acción
  18. 18. OpenMP: Definición · Modelo de programación paralela · Sólo para sistemas con memoria compartida
  19. 19. OpenMP: Funcionamiento · Directivas de preprocesador · Comunicación mediante variables compartidas · Paralelización de bloques de código · Complementario a MPI !
  20. 20. OpenMP: Ejemplo
  21. 21. OpenMP vs MPI
  22. 22. Apuntes finales · Facil y eficaz · Mas allá de lo visto: - 1 a 1: Sondeos - 1 a N: Recolección, distribución,... · Compatible con gestores de trabajos: PBS, SGE,.. · MPI2 en 1997 – MPI3 en.. ¿?
  23. 23. Turno de dudas A rellenar por los asistentes
  24. 24. MPI Message Passing Interface Unai Lopez

×