arquitecturas avanzadas sistemas lam/mpi (local area multicomputer / message passing interface)...

40
Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús López Bustos

Upload: vicenta-velazquez-lopez

Post on 23-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Arquitecturas Avanzadas

Sistemas LAM/MPI(Local Area Multicomputer /Message Passing Interface)

Aitor Viana SánchezOctavio Hombrados

Juan F. Ramos Jesús López Bustos

Page 2: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 2

1. Introducción2. ¿Qué es MPI?3. Características de MPI4. ¿Cuándo usar MPI?5. Portabilidad de los programas6. ¿Qué es LAM? (Local Area Multicomputer)

7. Características de LAM8. Local Area Multiprocesor (LAM)9. Arquitectura de LAM

Contenido

Page 3: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 3

10. Depurado en LAM11. Implementación MPI12. Comunicadores13. Algunos conceptos14. Estructura genérica de programa MPI15. Clases de llamadas MPI16. Comunicación punto a punto17. Comunicación colectiva18. Comandos LAM

Contenido

Page 4: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 4

1. Introducción

Actualmente surge la necesidad de resolver problemas cada vez más complejos, que son inabordables con la tecnología y capacidad de computadores actual

¿La solución? Programación distribuida

¿De qué tecnologías disponemos? Llamadas a procedimientos remotos (RPC) Invocación de métodos remotos (RMI) Paso de mensajes (MPI)

Page 5: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 5

1. Introducción

Uno de los métodos tradicionales y usuales es el paso de mensajes (MPI)

Se basa, como todos los anteriores en la posibilidad descomposición de los problemas en problemas más pequeños

Dos tipos de descomposición: descomposición de dominio descomposición funcional

Page 6: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 6

2. ¿Qué es MPI?

Es una implementación de un estándar del modelo de paso de mensajes

Atiende a una estructura SIMD Imágenes del programa en cada máquina Datos locales a cada maquina

Los datos se comparten por medio del paso de mensajes

Consiste en una serie de librerías C

Page 7: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 7

3. Características de MPI

Principalmente dirigido a proveer portabilidad del código fuente. No esta totalmente alcanzado todavía

Ofrece gran funcionalidad Diferentes tipos de comunicaciones Soporta gran cantidad de tipo de datos Soporta datos definidos por el usuario

Manejo de diferentes topologías

Page 8: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 8

4. ¿Cuándo usar MPI?

Necesidad de crear aplicaciones que necesiten una gran potencia de cálculo

Abordar problemas inabordables con un solo procesador

Escribir código paralelo portable

Alcanzar alto desarrollo de programación paralela

Page 9: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 9

5. Portabilidad de los programas

MPI se escribió con algunos puntos un poco perdidos

En teoría las aplicaciones MPI se pueden compilar con cualquier implementación MPI existente, pero es posible que el comportamiento sea ligeramente diferente

Necesidad de recursos que no estén garantizados por la implementación MPI

Como conclusión, no es totalmente portable

Page 10: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 10

5. Portabilidad de los programas II Aspectos a considerar debido a la variedad de

implementaciones MPI

Suponer buffering. No asumir que el envío de datos es tipo buffer

Suponer sincronización de barrera para llamadas colectivas. En MPI, la comunicación colectiva es bloqueante, pero el programa no debe depender del tipo de sincronización (en este caso barrera)

Ambigüedades en la comunicación. Los mensajes enviados son los que se espera recibir

Page 11: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 11

6. ¿Qué es LAM? (Local Area Multicomputer) Entorno de desarrollo de procesamiento paralelo

Pensado para redes de trabajo con computadores independientes

Es una implementación de la programación estándar de paso de mensajes (MPI)

LAM sólo corre sobre máquinas UNIX conectadas a través de una LAN

Page 12: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 12

7. Características de LAM

Completa implementación del estándar MPI

Extensas herramientas de monitorización y depuración

Añadido y borrado de nodos

Múltiples protocolos de comunicación (TCP, UDP)

Detección de fallo y recuperación de nodo

Page 13: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 13

8. Local Area Multiprocesor (LAM) Entorno y sistema de desarrollo para

procesamiento en paralelo que trabaja sobre redes formadas por procesadores independientes

Utiliza programación estándar de paso de mensajes (MPI)

LAM proporciona al usuario una librería API para el paso de mensajes entre diferentes nodos que colaboran para la realización de una aplicación paralela

Funciona en una gran cantidad de plataformas UNIX y permite trabajar con diferentes tipos de maquinas mezclados

Page 14: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 14

Las diferentes máquinas pueden conectarse a través de una red de área local o a través de Internet

Características: Completa implementación del estándar MPI Existen diversas herramientas de desarrollo Posibilidad de mezclar diferentes tipos de maquinas en

una misma red Es posible activar o desactivar nodos dentro de la red Si un nodo cae se detecta y es posible recuperarlo cuando

vuelva a funcionar Existen librerías adicionales MPI para la programación

LAM

8. Local Area Multiprocesor (LAM)

Page 15: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 15

La comunicación entre las aplicaciones se realiza de forma directa

Soporta diversos protocolos para realizar esta comunicación

Objetos básicos que forman un multicomputador LAM: Los computadores físicos o nodos Procesos, que identifican a las diferentes copias del

programa que se ejecutan en cada procesador Los mensajes, que son los datos que se transmiten

entre los procesos de diferentes procesadores

8. Local Area Multiprocesor (LAM)

Page 16: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 16

9. Arquitectura de LAM

En cada máquina que compone la red LAM debe estar arrancado un demonio

Proceso: ‘lamboot’ porta LAM a todos los nodos ‘mpirum’ para ejecutar los programas MPI ‘lamclean’ para limpiar el entorno. Comando opcional ‘wipe’ cierra LAM

Cada usuario debe abrir una cuenta en cada una de las maquinas y arrancar en ella un demonio

Page 17: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 17

9. Arquitectura de LAM

Arrancar y cerrar LAM sólo es necesario una vez por sesión.

La compilación de un programa puede hacerse independientemente del entorno LAM

Cada demonio funciona como un nano-kernel que proporciona paso de mensajes entre los procesos

Page 18: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 18

10. Depurado en LAM

Desde cualquier máquina que forme parte del entorno LAM es posible: Ejecutar, detener y reanudar programas residentes en

cualquier otra maquina Monitorizar mensajes Manipular el tamaño de los buffers Observar retardos y tiempos de ejecución

Estos servicios se pueden llevar a cabo mediante librerías o mediante aplicaciones que funcionan en cualquier shell

Page 19: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 19

11. Implementación MPI Sincronización mediante las variables:

context tag source rank destination rank

mpirun sincroniza el lanzamiento de todos los procesos MPI para que se localicen unos a otros antes de que se introduzca el código de usuario

Los programas MPI desarrollados con LAM son portables a cualquier otra plataforma que soporte MPI

Page 20: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 20

12. Comunicadores

Proveen toda la información necesaria para el paso de mensajes

Al enviar y recibir los comunicadores deben coincidir para que tenga lugar la comunicación

Son un argumento necesario para comunicaciones punto a punto o colectivas

Con MPI una aplicación ve su entorno como un grupo estático de procesos (world group)

Page 21: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 21

12. Comunicadores A cada proceso se le asigna un numero (rank)

consecutivo empezando desde 0

Un mismo procesador puede pertenecer a varios comunicadores diferentes, y su ‘rank’ sera diferente en cada uno de ellos

MPI_COMM_WORLD es un comunicador que engloba a todos los procesos

Los mensajes se marcan con una etiqueta o tag que sirve para distinguir entre diferentes tipos

Page 22: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 22

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 añade 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

Page 23: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 23

Nodo origen Nodo desde el que se invoca lamboot para portar LAM

a todos los procesadores 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

13. Algunos Conceptos

Page 24: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 24

Boot schema Descripción de un multicomputador donde se va a lanzar

LAM Lista de nombres de host en los que se portará LAM

Esquema de aplicación Conjunto de aplicaciones que serán lanzadas en cada

nodo del multicomputador

Request Progression Interface (RPI) Forma en que un mensaje progresa desde la fuente al

destino Tres maneras: TCP/IP, TCP/IP con memoria compartida con

cerrojos y TCP/IP con SYSV con semáforos

13. Algunos Conceptos

Page 25: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 25

Incluir ficheros de cabecera MPI Definiciones y prototipos de funciones específicas de MPI

Definir variables Inicializar entorno MPI

Cada procesador llama a rutina MPI de inicialización MPI_Init (int *argc, char **argv[]);

Funciones generales, llamadas a comunicaciones MPI

Cerrar comunicación MPI Cada procesador llama a rutina MPI de finalización MPI_Finalice (void);

14. Estructura genérica de programa MPI

Page 26: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 26

Inicializar, dirigir y finalizar comunicación Iniciar y finalizar comunicación Identificar número de procesos, qué proceso corre en

cada procesador y crear subgrupos de procesadores MPI_Init, MPI_Finalice

Comunicación punto a punto MPI_Send, MPI_Recv

Comunicación colectiva MPI_Bcast, MPI_Scatter, MPI_Gather, MPI_Reduce

Creación de tipos de datos MPI_Type_struct

15. Clases de llamadas MPI

Page 27: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 27

Un procesador envía y otro recibe Comunicación elemental en MPI Dos modos de comunicación

Bloqueante: La rutina de enviar o recibir no termina hasta que la operación se ha completado. Asegura que los datos llegan al receptor sin error.

No bloqueante: La función envía o recibe inmediatamente. El procesador puede hacer otras tareas durante el envío

Cuatro procedimientos para transmitir mensajes Estándar, síncrono, buffered y ready

16. Comunicación punto a punto

Page 28: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 28

MPI_Send (void *buf, int count, MPI Datatype dtype, int dest, int tag, MPI_Comm comm);

MPI_Recv (void *buf, int count, MPI_Datatype dtype, int source, int tag, MPI_Comm comm, MPI_status *status);

buf: localización en memoria de los datos count: Número de datos del tipo indicado enviados o

recibidos dtype: tipo de datos enviados o recibidos dest/source: procesador destino/fuente tag: etiqueta de comunicación comm: comunicador de envío o recepción status: código de retorno de la operación de recepción

16. Comunicación punto a punto

Page 29: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 29

Comunicaciones de un procesador a varios y de varios procesadores a uno

Se reduce la posibilidad de error Una llamada a una rutina colectiva reemplaza a varias

llamadas a rutinas punto a punto

Código fuente más fácil de leer Simplifica depuración y mantenimiento

Normalmente, la rutina colectiva es más rápida Está más optimizada que su equivalente expresada

por medio de rutinas punto a punto

17. Comunicación colectiva

Page 30: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 30

Operación broadcast Un único proceso envía copia de los mismos datos a

todos los procesos de un grupo MPI_Bcast (void *buf, int count, MPI_Datatype dtype,

int root, MPI_Comm comm); buf: localización en memoria de los datos count: Número de datos del tipo indicado enviados dtype: tipo de datos enviados root: procesador fuente comm: comunicador de envío

17. Comunicación colectiva

Page 31: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 31

Operación reduction Un único proceso recoge datos de todos los procesos de un

grupo y los combina según una operación aritmética MPI_Reduce (void *sendbuf, void *recvbuf, int count,

MPI_Datatype dtype, MPI_Op op, int root, MPI_Comm com); sendbuf: localización en memoria de los datos recvbuf: buffer donde se combinan los datos recibidos count: número de datos del tipo indicado recibidos dtype: tipo de datos recibidos op: operación aritmética que se aplica a los datos recibidos root: procesador destino com: comunicador de recepción

17. Comunicación colectiva

Page 32: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 32

Operación scatter Los datos de un procesador se dividen en N bloques

(N nº de procesos), y se envían a cada proceso según orden de rank

MPI_Scatter (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm);

Operación gather Paso inverso, se agrupan los datos de todos los

procesos y se envían a uno solo MPI_Gather (void *sendbuf, int sendcount,

MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm);

17. Comunicación colectiva

Page 33: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 33

Debemos establecer ciertas variables de entorno y caminos de búsqueda para el Shell, antes de correr LAM

Añadimos : Setenv LAMHOME <directorio instalación LAM> Set path = ($path $LAMHOME/bin)

Hay que tener en cuenta que el directorio donde estén los ejecutables de LAM necesitan estar en el path de todas la máquinas donde se vaya a usar LAM

18. Referencia de comandos LAM

Page 34: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 34

Crear fichero donde se listan las máquinas que participan en el cluster

A cada máquina se le da un nodo identificador (nodeid), que empieza con 0 para la primera máquina de la lista , 1 para la segunda, etc...

La herramienta reconv verifica los nodos del cluster

% reconv –v <boot schema>

18. Referencia de comandos LAM

Page 35: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 35

La herramienta lamboot inicializa LAM en el cluster especificado. La opción –v permite imprimir mensajes antes de cada paso dado.

% lamboot –v <boot schema>

Para comprobar que LAM está corriendo normalmente en el cluster:

% tping –c1 N

18. Referencia de comandos LAM

Page 36: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 36

La herramienta hcc invoca al compilador de C nativo (por ejemplo cc) y provee el path de los ficheros de cabecera, librerías y enlaces implícitos de LAM. La librería MPI se enlaza explícitamente:

% hcc –o progama programa.c -lmpi

Iniciamos una aplicación MPI invocando al comando mpirun. Este comando provee la información sobre los nodos e

identificadores de proceso necesarios para que los procesos se localicen entre si.

18. Referencia de comandos LAM

Page 37: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 37

La sintaxis para el comando mpirun es la siguiente

%mpirun –s <nodeid> <nodeids> -c<#> Programa

-s <nodeid> es el nodo donde se encuentra el ejecutable. Sin esta opción, LAM buscará el programa en el mismo nodo donde correrá.

<nodeids> son los nodos donde se ejecutará el programa. Sin esta opción, LAM usará todos los nodos.

-c <#> indica el número de procesos que se crearán. Programa es el fichero ejecutable (incluido el path para

llegar hasta el)

18. Referencia de comandos LAM

Page 38: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 38

Podemos monitorizar cierta información de los procesos MPI, en tiempo de ejecución, mediante los comandos:

Mpitask visualiza información sobre los procesos MPI, tal como los ranks (identificadores) de la fuente y el destino, el comunicador, y la función que se esta ejecutando

Mpimsg proporciona información sobre los mensajes que se envían, así como la cantidad y tipo de datos

18. Referencia de comandos LAM

Page 39: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 39

Mediante el comando lamclean, podemos eliminar todos los procesos y mensajes sin necesidad de abortar MPI.

% lamclean –v

Por último, la orden wipe elimina todos los procesos y demonios de LAM en las máquinas que estamos utilizando.

% wipe –v <boot schema>

18. Referencia de comandos LAM

Page 40: Arquitecturas Avanzadas Sistemas LAM/MPI (Local Area Multicomputer / Message Passing Interface) Aitor Viana Sánchez Octavio Hombrados Juan F. Ramos Jesús

Sistemas LAM/MPIAitor Viana, Octavio Hombrados, Jesús López, Juan F. Ramos 40

Gracias por vuestra atención