Professional Documents
Culture Documents
Sistemas LAM/MPI
(Local Area Multicomputer /
Message Passing Interface)
Aitor Viana Snchez
Octavio Hombrados
Juan F. Ramos
Jess Lpez Bustos
Contenido
1.
2.
3.
4.
5.
6.
7.
8.
9.
Introduccin
Qu es MPI?
Caractersticas de MPI
Cundo usar MPI?
Portabilidad de los programas
Qu es LAM? (Local Area Multicomputer)
Caractersticas de LAM
Local Area Multiprocesor (LAM)
Arquitectura de LAM
Sistemas LAM/MPI
Contenido
10. Depurado en LAM
11. Implementacin MPI
12. Comunicadores
13. Algunos conceptos
14. Estructura genrica de programa MPI
15. Clases de llamadas MPI
16. Comunicacin punto a punto
17. Comunicacin colectiva
18. Comandos LAM
Sistemas LAM/MPI
1. Introduccin
Actualmente surge la necesidad de resolver problemas
cada vez ms complejos, que son inabordables con la
tecnologa y capacidad de computadores actual
La solucin?
Programacin distribuida
De qu tecnologas disponemos?
Llamadas a procedimientos remotos (RPC)
Invocacin de mtodos remotos (RMI)
Paso de mensajes (MPI)
Sistemas LAM/MPI
1. Introduccin
Uno de los mtodos tradicionales y usuales es el paso de
mensajes (MPI)
Se basa, como todos los anteriores en la posibilidad
descomposicin de los problemas en problemas ms
pequeos
Dos tipos de descomposicin:
descomposicin de dominio
descomposicin funcional
Sistemas LAM/MPI
2. Qu es MPI?
Es una implementacin de un estndar del modelo de
paso de mensajes
Atiende a una estructura SIMD
Imgenes del programa en cada mquina
Datos locales a cada maquina
3. Caractersticas de MPI
Principalmente dirigido a proveer portabilidad del cdigo
fuente. No esta totalmente alcanzado todava
Ofrece gran funcionalidad
Diferentes tipos de comunicaciones
Soporta gran cantidad de tipo de datos
Soporta datos definidos por el usuario
Sistemas LAM/MPI
Sistemas LAM/MPI
Sistemas LAM/MPI
10
11
7. Caractersticas de LAM
Completa implementacin del estndar MPI
Extensas herramientas de monitorizacin y depuracin
Aadido y borrado de nodos
Mltiples protocolos de comunicacin (TCP, UDP)
Sistemas LAM/MPI
12
13
14
15
9. Arquitectura de LAM
En cada mquina que compone la red LAM debe estar
arrancado un demonio
Proceso:
16
9. Arquitectura de LAM
Arrancar y cerrar LAM slo es necesario una vez por
sesin.
La compilacin de un programa puede hacerse
independientemente del entorno LAM
Cada demonio funciona como un nano-kernel que
proporciona paso de mensajes entre los procesos
Sistemas LAM/MPI
17
Sistemas LAM/MPI
18
context
tag
source rank
destination rank
19
12. Comunicadores
Proveen toda la informacin necesaria para el paso de
mensajes
Al enviar y recibir los comunicadores deben coincidir para
que tenga lugar la comunicacin
Son un argumento necesario para comunicaciones punto
a punto o colectivas
Con MPI una aplicacin ve su entorno como un grupo
esttico de procesos (world group)
Sistemas LAM/MPI
20
12. Comunicadores
A cada proceso se le asigna un numero (rank)
consecutivo empezando desde 0
21
12. Comunicadores
Para recibir un mensaje no siempre es necesario
especificar el rank de la fuente aunque si lo es para
enviarlo
context sirve para evitar conflictos entre el codigo de
diferentes programadores. Se aade automaticamente
MPI_COMM_SELF es un comunicador que solo engloba a
un solo miembro
MPI_COMM_PARENT engloba los grupos de un proceso y
de su proceso padre
Sistemas LAM/MPI
22
Nodo local
Nodo desde el que se invoca un comando
Proceso LAM
Proceso enganchado al demonio LAM
Booting LAM
Lanzar demonios de control de proceso, control de entorno y
paso de mensajes en cada nodo para crear entorno LAM/MPI
antes de usar aplicaciones MPI
Sistemas LAM/MPI
23
Esquema de aplicacin
Conjunto de aplicaciones que sern lanzadas en cada nodo
del multicomputador
Sistemas LAM/MPI
24
Definir variables
Inicializar entorno MPI
Cada procesador llama a rutina MPI de inicializacin
MPI_Init (int *argc, char **argv[]);
Sistemas LAM/MPI
25
Comunicacin colectiva
MPI_Bcast, MPI_Scatter, MPI_Gather, MPI_Reduce
Sistemas LAM/MPI
26
Sistemas LAM/MPI
27
Sistemas LAM/MPI
28
Sistemas LAM/MPI
29
Sistemas LAM/MPI
30
Sistemas LAM/MPI
31
Operacin gather
Paso inverso, se agrupan los datos de todos los procesos y se
envan a uno solo
MPI_Gather (void *sendbuf, int sendcount, MPI_Datatype
sendtype, void *recvbuf, int recvcount, MPI_Datatype
recvtype, int root, MPI_Comm comm);
Sistemas LAM/MPI
32
33
34
Sistemas LAM/MPI
35
mpirun.
36
37
38
39
Sistemas LAM/MPI
40