Nociones basicas de MPI
Datos
Mensajes
Comunicadores
Comprender un programa simple
Paradigma de Transferencia de Mensajes
Cada procesador corre un programa
Todas las variables son privadas
La comunicación se realiza a través de subrutinas especiales
Idea SPMD: Single Program/Multiple Data
Todos los procesadores trabajan con el mismo programa, pero los datos pueden ser diferentes.
Como asignar tareas diversas con datos diversos?
MAIN
IF (el proceso sera el controlador) THEN
CALL CONTROLADOR ( /* Argumentos /* )
ELSE
CALL WORKER ( /* Argumentos /* )
ENDIF
END
Idea SPMD: Single Program/Multiple Data
Todos los procesadores trabajan con el mismo programa, pero los datos pueden ser diferentes.
Como asignar tareas diversas con datos diversos?
MAIN
IF (el proceso sera el controlador) THEN
CALL MASTER ( /* Argumentos /* )
ELSE
CALL SLAVE ( /* Argumentos /* )
ENDIF
END
Nota:
procesos vs. procesadores
Conceptos basicos
Mensajes
Acceso
Direcciones
Comunicaciones punto a punto
Comunicaciones colectivas
Conceptos basicos
Acceso
Definicion de maquinas que participan en el calculo (ej: de los 40 nodos, cuales uso)
Defino procesos
Varios procesos pueden correr en la misma maquina
Conceptos basicos
Mensajes
Quien lo manda
Donde esta el dato
Que tipo de dato es
Cuantos son
Quien lo recive
Donde debe quedar en el receptor
Cuantos datos el receptor esta preparado para recibir (tamaño del buffer)
Conceptos basicos
Direcciones
– Los mensajes necesitan una direccion, asignar a cada maquina (proceso) una direccion (numero)
Conceptos basicos
Comunicaciones punto a punto
Asincronica (carta)
se cuando sale, ignoro cuando llega
Sincronica (fax)
se cuando sale, se cuando llega
Bloqueante (fax comun)
No bloqueante (fax con memoria)
Conceptos basicos
Comunicaciones colectivas
Barreras
Los procesos llegan a un punto y paran, esperando hasta la llegada de todos. Luego continuan.
Broadcast (emision de radio)
Una maquina le pasa un dato a todas las otras
Reduccion
Como en una votacion, todas las maquina le aportan un dato a una dada y esta reduce todos los datos a uno solo
MPI (Message Passing Interface)
? Una colección de rutinas adecuadas para facilitar la comunicación (intercambio de datos y sincronización de tareas) entre distintos procesadores.
MPI : 1994 / MPI 2 : 1997
Existen bibliotecas para C y Fortran (C++ y F90).
Características:
Es estándar (por consenso, no por normativa)
Portable
Flexible (~ 125 rutinas) y expandible
Simple (con las 6 rutinas básicas se puede hacer mucho!)
Página siguiente |