0% encontró este documento útil (0 votos)
44 vistas5 páginas

Introducción a MPI y su Funcionamiento

MPI (Message Passing Interface) es una interfaz de comunicación entre dispositivos a través de una red que permite la comunicación eficiente y rápida. Funciona como middleware entre la capa de aplicación y el sistema operativo, abstraendo la lógica de comunicación en red. El paralelismo se logra aprovechando el procesamiento o memoria de múltiples dispositivos en la red mediante patrones como dividir y conquistar.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas5 páginas

Introducción a MPI y su Funcionamiento

MPI (Message Passing Interface) es una interfaz de comunicación entre dispositivos a través de una red que permite la comunicación eficiente y rápida. Funciona como middleware entre la capa de aplicación y el sistema operativo, abstraendo la lógica de comunicación en red. El paralelismo se logra aprovechando el procesamiento o memoria de múltiples dispositivos en la red mediante patrones como dividir y conquistar.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

¿Qué es MPI?

Siglas parra Message Passing Interface. Interfaz de comunicación entre distintos


dispositivos/up a través de una red de manera eficiente y rápido.

Es considerado como middleware. Es software que se encuentra entre la capa de


aplicación y el OS. Para abstraer todo el funcionamiento o lógica relacionada a la
comunicación en la red.

MPI High – level View

Capa aplicación
|
MPI
|
OS

¿Dónde está lo paralelo?


- Patrón divide and Conquer
- Usualmente en clusters
- Aprovechamos el procesamiento o memoria de múltiples dispositivos en la
red
Desventajas:
ALTA dependencia de la red
- Ancho de banda
- Limitaciones físicas
- Buses
- Redes de interconexión

Colaboradores de MPI
- AMD
- ARM
- Cisco
- Meta
- Fujitso
- IBM
- Intel
- Nvidia
- Oracle
Concepto básicos de mensajes
• Destino
• Fuentes / Origen
• Contenido
• Longitud
• Tipo

Organización de Programas en MPI

Encabezados mpi.h
Inicio ps
Inicialización del entorno
Tareas paralelas/ intercambio de mensajes
Terminación de entorno
Fin de PS

Grupos Comunicación (Comunication Domain)


Definir que procesos pueden comunicarse entre si
Ya se provee una estructura de datos
MPI_COMM_WORD

Ranks
Sirven como identificadores dentro de la red
MPI_Comm_rank()

Subrutinas básicas
MPI_Init(&argc, & argv)
MPI_Comm_size( comm, &size)
MPI_Finalize()
Subrutinas de comunicación

MPI_send()
MPI_Recv()

Tipos de mensajeria en Open MPI


• Punto a Punto
- Emisor
- Receptor
- Uso: envió de mensajes específicos
- Operaciones: Send, Recv

• Colectivos
- Múltiples emisores – 1 receptor
- Múltiples receptores – 1 emisor
- Uso: dividir el trabajo
- Operaciones: Send, Recv, Broadcast, Scatter, Reduce
Punto a punto
Tenemos requisitos para el envió y recepción de mensajes
Send Recv
• Buffer name • Buffer name
• Tipo • Tipo
• Comm name • Comm name
• Destinatario • remitente

Recepción flexible
Es posible recibir mensajes cuando no conocemos
- Remitente
- Tag
- Cantidad de mensajes
Los requisitos de send cambian cuando se tiene recepción flexible
Send Recv
• Destinatario • MPI_ANY_SOURCE
• Tag • MPI_ANY_TAG
• Buffer name • Buffer name
• Comm • comm

Punto a punto (Suma de #s consecutivos)


Array [1,2,3,4,5,6,7,8,9,10]
- Inicializar array, variable de acumulación
- Leer primer elemento del array
- Sumamos el valor a la variable
- Aumentar índice
- Repetir

¿Cuáles son los pasos a seguir?


- Identificamos las tareas
- Definir que proceso maneja cada tarea
- Identificar el rank
- Dependiendo del rank asignamos trabajo
Identificar tareas
1. Inicializar el array
2. Calcular el # de elementos a repartir
3. Definir subarrays
4. Repartir subarrays
5. Realizar las sumas parciales
6. Acumular los resultados

También podría gustarte