SlideShare a Scribd company logo
1 of 24
MPI Message Passing Interface Unai Lopez
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción: Definiciones "MPI is library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users" ( http://www.mcs.anl.gov/research/projects/mpi ) "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." (http://es.wikipedia.org/wiki/MPI)
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,.. " "
Introducción: El paso de mensajes · Técnica de sincronización de procesos · Elementos: emisor, mensaje y receptor · Tipos:  - Síncrono (rendezvous)   - Asíncrono
Introducción: Donde se usa Orientada a sistemas SIN memoria compartida
Introducción: Dónde se usa
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
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
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
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
Funcionamiento: Tipo 3 · MPI_Bcast:  Envío a procesos de un comunicador · MPI_Barrier:  Barrera de sincronización · ...
Funcionamiento: Tipo 4 · MPI_Type_struct: Define un tipo de dato · MPI_Pack: Empaqueta un dato · ...
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
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
Demo: OpenMPI - Comandos Para compilar los programas: · C/C++: mpicc / mpic++ · Fortran: mpi77 / mpi90 Ejecutar: · mpirun -parámetros aplicación
Demo: OpenMPI - Acción
OpenMP: Definición · Modelo de programación paralela · Sólo para sistemas con memoria compartida
OpenMP: Funcionamiento · Directivas de preprocesador · Comunicación mediante variables compartidas · Paralelización de bloques de código · Complementario a MPI !
OpenMP: Ejemplo
OpenMP vs MPI
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.. ¿?
Turno de dudas A rellenar por los asistentes
MPI Message Passing Interface Unai Lopez

More Related Content

What's hot (11)

Los copiladores en c++
Los copiladores en c++Los copiladores en c++
Los copiladores en c++
 
Realidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirRealidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapir
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Roger1 libreria
Roger1 libreria Roger1 libreria
Roger1 libreria
 
Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322Parcial II de Sistema de Operación – Semestre 201322
Parcial II de Sistema de Operación – Semestre 201322
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Introducción - Arquitectura .NET
Introducción - Arquitectura .NETIntroducción - Arquitectura .NET
Introducción - Arquitectura .NET
 
unidad 2
unidad 2unidad 2
unidad 2
 
Actividad N° 1 Unidad 4
Actividad N° 1   Unidad 4 Actividad N° 1   Unidad 4
Actividad N° 1 Unidad 4
 
Informatica
InformaticaInformatica
Informatica
 
Open mpi windows
Open mpi windowsOpen mpi windows
Open mpi windows
 

Viewers also liked

Ma raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatlaMa raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatla
Ma. Raquel Maizoub G.
 

Viewers also liked (18)

Scheduling for Parallel and Multi-Core Systems
Scheduling for Parallel and Multi-Core SystemsScheduling for Parallel and Multi-Core Systems
Scheduling for Parallel and Multi-Core Systems
 
Ma raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatlaMa raquel maizoub modulo academico mpi fatla
Ma raquel maizoub modulo academico mpi fatla
 
Perl mpi
Perl mpiPerl mpi
Perl mpi
 
Intro Mpi
Intro MpiIntro Mpi
Intro Mpi
 
Ch14. feedback and filpflop
Ch14. feedback and filpflopCh14. feedback and filpflop
Ch14. feedback and filpflop
 
Manual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en DebianManual de configuracion de un cluster en Debian
Manual de configuracion de un cluster en Debian
 
How to Use OpenMP on Native Activity
How to Use OpenMP on Native ActivityHow to Use OpenMP on Native Activity
How to Use OpenMP on Native Activity
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
HPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMPHPC course on MPI, PETSC, and OpenMP
HPC course on MPI, PETSC, and OpenMP
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELA
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 
Intel® MPI Library e OpenMP* - Intel Software Conference 2013
Intel® MPI Library e OpenMP* - Intel Software Conference 2013Intel® MPI Library e OpenMP* - Intel Software Conference 2013
Intel® MPI Library e OpenMP* - Intel Software Conference 2013
 
What is [Open] MPI?
What is [Open] MPI?What is [Open] MPI?
What is [Open] MPI?
 
Pram
PramPram
Pram
 
El sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de AltasEl sistema NWP HARMONIE: Introducción a la Computación de Altas
El sistema NWP HARMONIE: Introducción a la Computación de Altas
 
Introduction to MPI
Introduction to MPI Introduction to MPI
Introduction to MPI
 

Similar to Introduccion a MPI

Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
Abimael hernandez
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
DavidGarca147527
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
Karol Moreno
 
Keynote comunicadores
Keynote comunicadoresKeynote comunicadores
Keynote comunicadores
viringas
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
Karol Moreno
 
PID11041
PID11041PID11041
PID11041
ecoran
 
Gprocesos
GprocesosGprocesos
Gprocesos
daniela
 

Similar to Introduccion a MPI (20)

SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
 
Evolucion Historica De Los Sistemas Operativos
Evolucion Historica De Los Sistemas OperativosEvolucion Historica De Los Sistemas Operativos
Evolucion Historica De Los Sistemas Operativos
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
Parallel Python sistemas operativos avanzados
Parallel Python sistemas operativos avanzadosParallel Python sistemas operativos avanzados
Parallel Python sistemas operativos avanzados
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Presentación1
Presentación1Presentación1
Presentación1
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
Ejclase mpi
Ejclase mpiEjclase mpi
Ejclase mpi
 
Diap 01
Diap 01Diap 01
Diap 01
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
Programador Jr. para Python Primera Parte
Programador Jr. para Python Primera ParteProgramador Jr. para Python Primera Parte
Programador Jr. para Python Primera Parte
 
Keynote comunicadores
Keynote comunicadoresKeynote comunicadores
Keynote comunicadores
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
PID11041
PID11041PID11041
PID11041
 
Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzados
 
Gprocesos
GprocesosGprocesos
Gprocesos
 
OpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paraleloOpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paralelo
 
Presentación Lengua C
Presentación Lengua CPresentación Lengua C
Presentación Lengua C
 
Procesadores de Lenguaje
Procesadores de LenguajeProcesadores de Lenguaje
Procesadores de Lenguaje
 
Programacion
ProgramacionProgramacion
Programacion
 

More from Unai Lopez-Novoa

More from Unai Lopez-Novoa (8)

Exploring performance and energy consumption differences between recent Intel...
Exploring performance and energy consumption differences between recent Intel...Exploring performance and energy consumption differences between recent Intel...
Exploring performance and energy consumption differences between recent Intel...
 
A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...
A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...
A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...
 
Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...
Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...
Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...
 
Introducción a la Computación Paralela
Introducción a la Computación ParalelaIntroducción a la Computación Paralela
Introducción a la Computación Paralela
 
Harnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern CoprocessorsHarnessing OpenCL in Modern Coprocessors
Harnessing OpenCL in Modern Coprocessors
 
Computación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de RendimientoComputación Heterogénea: Aplicaciones y Modelado de Rendimiento
Computación Heterogénea: Aplicaciones y Modelado de Rendimiento
 
Introduction to OpenCL
Introduction to OpenCLIntroduction to OpenCL
Introduction to OpenCL
 
Exploring Gpgpu Workloads
Exploring Gpgpu WorkloadsExploring Gpgpu Workloads
Exploring Gpgpu Workloads
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (12)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Introduccion a MPI

  • 1. MPI Message Passing Interface Unai Lopez
  • 2.
  • 3. Introducción: Definiciones "MPI is library specification for message-passing, proposed as a standard by a broadly based committee of vendors, implementors, and users" ( http://www.mcs.anl.gov/research/projects/mpi ) "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." (http://es.wikipedia.org/wiki/MPI)
  • 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,.. " "
  • 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. Introducción: Donde se usa Orientada a sistemas SIN memoria compartida
  • 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. 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. 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. 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. Funcionamiento: Tipo 3 · MPI_Bcast: Envío a procesos de un comunicador · MPI_Barrier: Barrera de sincronización · ...
  • 13. Funcionamiento: Tipo 4 · MPI_Type_struct: Define un tipo de dato · MPI_Pack: Empaqueta un dato · ...
  • 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. 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. Demo: OpenMPI - Comandos Para compilar los programas: · C/C++: mpicc / mpic++ · Fortran: mpi77 / mpi90 Ejecutar: · mpirun -parámetros aplicación
  • 17. Demo: OpenMPI - Acción
  • 18. OpenMP: Definición · Modelo de programación paralela · Sólo para sistemas con memoria compartida
  • 19. OpenMP: Funcionamiento · Directivas de preprocesador · Comunicación mediante variables compartidas · Paralelización de bloques de código · Complementario a MPI !
  • 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. Turno de dudas A rellenar por los asistentes
  • 24. MPI Message Passing Interface Unai Lopez