Cómputo paralelo usando MPI:
Simulaciones de N-cuerpos en la
física
M.A. Rodríguez-Meza
Instituto Nacional de
Investigaciones Nucleares
Correo electrónico: [email protected]
http://www.astro.inin.mx/mar
Rock & Roll!!
18/08/09
UAEH
1
Sistemas operativos
• MS-DOS y similares: Un
usuario un proceso
• VMS: Multitask, multiusers, ...
• UNIX: igual
• ... y ¿Windows? Muli-CHAFA
2
Linux y el software libre
• Fue lo que hizo posible el bum del desarrollo de
cómputo científico barato y al “alcance de todos”.
• ¡Software libre y abierto!
• Pero, ..., ¡entiendale Uds a los códigos!
Siguiente paso: Código abierto y libre y te
enzeño como funciona
3
Nuestros intentos en Puebla (19941995)
• Linux, distribución Slackware
• MPI, distribución MPICH
• Cluster de 4 486 a 66 Mhz
(1995)
• La Jauria (2000): Alphas
4
Ekbek en el CINVESTAV
• 64 nodos Pentiums 2.5 Ghz
5
Tipos de clusters
• Memoria distribuida (Ekbek)
• Memoria compartida (ININ: draco 16
itanium)
• Clusters, Granjas y grids
• ¿Cúal es mejor?
6
Configuración física de un cluster
7
Ingredientes básicos
• Hardware: Maestro y esclavos, N-computadoras
• Computadora Maestra: CPU, teclado, ratón y monitor
(Aparentemente)
• Computadora esclava (de cómputo): CPU y ya (Aparentemente)
• Software ... Rocks and Rolls: Sistema operativo Linux, lenguages C y
Fortran, Visualización, Protocolo MPI, herramientas de
administración (el propio Rocks), monitoreo, más distribución y
administración de trabajos.
8
Rocks
9
Rocks and Rolls
• Kernel
• base
• Area51: Utilerias y servicios para analizar la integridad de los archivos y el kernel en
el cluster.
• ganglia: para monitorear al cluster. Un valor individual a ser monitoreado se llama
metric en el sistema Ganglia. Los metrics son medidos en los nodos del cluster y
Ganglia los comunica al nodo maestro.
• hpc: proveer con las herramientas configuradas que pueden ser usadas para correr
aplicaciones en paralelo en el cluster. Los siguientes paquetes son incluidos: MPI
sobre ambientes ethernet (OpenMPI, MPICH, MPICH2); PVM; Benchmarks (stream,
iperf, IOzone).
• sge: instala y configura el administrador de colas SUN Grid Engine.
• web-server
• java
• xen
• os disk 1
• os disk 2
10
Nodo Maestro
•
•
•
•
•
•
•
•
Inserte el CD Kernel/Boot Roll y arranque la máquina.
La máquina muestra una pantalla de bienvenida: Tecleé “build”.
Puede ser necesario configurar IPv4 o IPv6.
Seleccione los Rolls insertando y sacando los CD’s correspondientes. (Lo mínimo: kernel, base, webserver, os-1 y os-2).
Introduzca la info correspondiente a la configuración del Maestro: Host name (requerido), cluster
name, Latitude/Longitud (N19.20/W99.10), etc.
Configure la red, eth0 (local: 10.1.1.1) y eth1 (mundo exterior: (DHCP)).
Introduzca el password de root.
Configure el tiempo.
Establezca la partición del disco.
•
... (6:24 – 6:33 – 6:55 )
•
•
•
•
Inserte los CD’s de instalación como se le vayan pidiendo.
Comienza la instalación.
Al final se arranca la máquina de nuevo.
¡¡¡LISTO el NODO Maestro!!!
•
11
Nodos de cómputo
•
•
•
•
•
•
Haga login en el nodo maestro como “root”.
Corra el programa que captura las peticiones DHCP de los nodos de cómputo y que pone la
información en la base MySQL de Rocks:
# insert-ethers
Seleccione el tipo, en nuestro caso “Compute”, hago “OK” y ...
Arranque el primer nodo de cómputo. Antes cambie el orden de los dispositivos a: PXE, CD, HD.
(Pulse F2 al momento del arranque).
Cuando el nodo maestro recive la petición de DHCP hace la asignación en la base de datos y
actualiza los archivos de configuración (/etc/hosts, /etc/dhcpd.conf y el DNS).
En este momento se puede monitorear la instalación usando
–
•
•
rocks-console compute-0-0
Después de haber instalada todos los nodos de cómputo en el primer cabinete termine el proceso:
insert-ethers, tecleando F8.
Se puede agregar otro cabinete tecleando:
–
Insert-ehters –cabinet-1
•
Eso nombrará los nodos de cómputo como “compute-1-0, compute-1-1, …”
•
Y con esto hemos armado nuestro cluster “BOLAS” y ¡¡¡LISTO a trabajar!!!
12
Algunas tareas de administración en
Rocks
•
La ayuda se obtiene con:
# rocks list help
•
Corre un comando para un nodo:
# rocks run host compute-0-p “ls /tmp”
•
Alias a un nodo de cómputo:
# rocks add host alias compute-0-0 c-0-0
o de la siguiente manera:
•
La lista de nodos:
# rocks list host {alias}
•
Listado de las acciones de arranque:
# rocks list host boot
•
Listado de la partición de un nodo:
# rocks list host partition compute-0-0
•
Listado de la información de la red:
# rocks list network
•
Listado de los Rolls:
# rocks list roll
# ssh compute-0-0 “shutdown –r now”
•
Para sincronizar a los usuarios (/etc/passwd, /etc/shadow, ..., restart
autofs):
# rocks sync users
•
Para sincronizar servicios:
# rocks sync config
•
•
Apaga un nodo de computo:
# rocks run host compute-0-0 “shutdown –h now”
•
Para poner una acción al arranque de un nodo:
# rocks set host installaction compute-0-0 install
o
# rocks set host compute-0-0 action=install
•
Para remover un nodo:
# rocks remove host compute-0-1
# rocks sync config
13
Algunas tareas de administración en
Rocks
•
Un usuario se agrega con:
# useradd username
# rocks sync users
14
Agregando plplot
• ./configure –prefix=$HOME/local
• make
• make install
15
Un final casi final de esta parte del
curso sobre paralelización
• Tonatiuh dijo que Uds. al final del curso
saldrían corriendo ... en paralelo ... je!
16
Let´s rocks & rolls!!!
Ricardo
Francisco
Con el cuarteto del IAC ...
Mario
Miguel
17
Descargar

pachuca01_02_Rocks