Beruflich Dokumente
Kultur Dokumente
Departamento Acadmico
Programa Acadmico
Plan de Estudios
Formato
ISIC-2010-224
SyC-01-2013-P
Asignatura
Clave de la Asignatura
Crditos SATCA
SCA-1026
No. de Prctica
P_SCA1026_02
Sistemas y Computacin
0-4-4
Semestre
4
Nombre de la Prctica
Configuracin de un clster usando LAM/MPI (3a. Parte)
Competencia de la Prctica
Administracin de las aplicaciones de un SO tipo Unix
1. INTRODUCCIN
Una de las ventajas del clster, es el cmputo de alto rendimiento mediante procesos en paralelo, que
consiste en realizar una misma tarea utilizando diferentes recursos simultneamente, en nuestro caso
del clster, empleando diferentes equipos.
MPI (message passing interface) es un protocolo de comunicacin estndar e independiente del
lenguaje de programacin utilizado. Es el modelo dominante en computacin de alto rendimiento
(supercmputo). MPI consiste de un conjunto de rutinas utilizables desde C, C++, Fortran, C#, Java o
Python. MPI proporciona la sincronizacin y comunicacin entre procesos que se encuentran en los
diferentes nodos, intercambiando datos y resultados, as como informacin para su administracin.
Existen varias implementaciones de MPI; utilizaremos LAM (Local Area Multicomputer), basada en
la biblioteca de software del laboratorio de Cmputo Cientfico de la University of Notre Dame,
Indiana, USA (https://www.nd.edu/ ) y del Argone National Laboratory (http://www.anl.gov/ )
2. REQUERIMIENTOS
Equipo, herramientas y material.
Cuaderno de la asignatura,
Pluma,
Computadora
Software
SO xNiX
lam-runtime
lam4-dev
3. DESCRIPCIN DE LA PRCTICA.
1) Instalar LAM/MPI en el nodo maestro del clster
2) Instalar programas de compilacin en el nodo maestro del clster
3) Probar la funcionalidad del clster
4) Compilar el programa fuente
Aplicacin
Descripcin
recon -v <lam.conf>
lamboot -v <lam.conf>
lamnodes
mpicc -g -c <programa.c>
mpiCC -g -c <programa.cc>
programas
de
10.9.26.186
10.9.26.235
10.9.26.170
Si el arranque del clster es correcto debemos ver un listado con los nodos dentro del mismo:
localhost:1:origin,this_node
ii)
#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank); // obtiene identificador
MPI_Comm_size(MPI_COMM_WORLD, &size); // obtiene No. procesos
printf("Hola Mundo! Soy el %d de %d\n", rank, size);
MPI_Finalize();
return 0;
}
Si dicho cdigo fuente se guarda con el nombre de archivo hola.c, el proceso de compilacin sera con
la siguiente instruccin desde terminal:
mpicc -g -c hola.c
El resultado de la compilacin (sino hay errores de sintaxis) ser un archivo en la misma carpeta con
el mismo nombre pero diferente extensin; as, podr verse el archivo hola
Nota: en caso de mostrarse errores de compilacin, editar nuevamente el archivo con las correcciones
apropiadas y compilar nuevamente.
Descripcin 5. Enlazar el programa objeto.
El programa objeto generado por la compilacin, puede requerir del uso de libreras, como por
ejemplo, de cmputo numrico, de graficacin, etc y estas se integran en el proceso de enlace. En
nuestro ejemplo, donde no empleamos libreras especializadas, las instrucciones para el enlace
seran:
mpicc -g hola.o -o holamundo
El resultado como se indica en la instruccin anterior, es un archivo ejecutable con el nombre
holamundo.
Descripcin 6 . Ejecutar la aplicacin en el clster
Para la ejecucin en el clster del programa holamundo, la instruccin podra ser (para otras opciones, ver
LAM/MPI User's guide)
mpirun -np 4 holamundo
Con esta instruccin se indica que se ejecutarn 4 copias del programa en los nodos del clster indicados
en el archivo de configuracin <lam.conf> que se emple en el arranque del clster.
4. FUENTES DE INFORMACIN.
1. LAM/MPI Installation Guide Version 7.1.2; The LAM/MPI Team, Open Systems Lab; Indiana
University, USA, March 10, 2006; http://lam.fries.net/download/files/7.1.2-install.pdf
2. LAM/MPI User's Guide Version 7.1.1; The LAM/MPI Team, Open Systems Lab; Indiana
University, USA, September 26, 2004; http://lavica.fesb.hr/~slap/VPR/7.1.1-user.pdf
3. Programas de ejemplo en lenguaje C;
http://geco.mines.edu/workshop/aug2011/examples/mpi/index.html