Subido por diefejaca

xdoc.mx-instalacion-configuracion-y-puesta-en-produccion-de-un-cluster-rocks

Anuncio
Instalación, configuración y puesta en producción
de un clúster Rocks
Eduardo Rodriguez Gutiez
Verónica Barroso Garcı́a
19 de septiembre de 2014
Índice
1. Introducción
2
2. Instalación
2.1. Instalación del frontend . . . . . . . . . . . .
2.2. Instalación de los nodos . . . . . . . . . . . .
2.2.1. Error “Reboot and Select proper Boot
2.2.2. Algunos comandos útiles en Rocks . .
. . . . .
. . . . .
device”
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
14
17
19
3. Instalación de las librerı́as de cálculo
22
3.1. Basic Linear Algebra Subprograms (BLAS) . . . . . . . . . . 23
3.2. Linear Algebra Package (LAPACK) . . . . . . . . . . . . . . 23
3.2.1. Verficando que la carpeta compartida es visible . . . . 24
3.3. Fastest Fourier Transform in the West (FFTW) . . . . . . . . 26
3.4. Automatically Tuned Linear Algebra Software (ATLAS) . . . 26
3.5. Intel Math Kernel Library (MKL) e Intel Parallel Studio . . . 32
3.5.1. Instalación de Intel Math Kernel Library . . . . . . . 32
3.5.2. Desinstalación de Intel Math Kernel Library . . . . . 36
3.5.3. Instalación de Intel Parallel Studio . . . . . . . . . . . 36
3.5.4. Configuración de las variables de entorno . . . . . . . 37
3.5.5. Compilación de las bibliotecas . . . . . . . . . . . . . 38
3.6. Large-scale Atomic/Molecular Massively Parallel Simulator
(LAMMPS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.1. Obtención del sistema MPI instalado en el sistema . . 40
3.6.2. Configuración del Makefile de LAMMPS . . . . . . . . 42
3.6.3. Creación del usuario para aplicaciones . . . . . . . . . 45
3.6.4. Lanzamiento de aplicaciones en paralelo . . . . . . . . 45
1
1.
Introducción
Figura 1: Imagen general del cluster en el laboratorio 1L022
El propósito del presente trabajo consiste en montar un clúster para
la asignatura “Infraestructuras para el desarrollo de aplicaciones de computación de altas prestaciones” del Máster en Ingenierı́a Informática, con el
objetivo de ejecutar aplicaciones que sean intensivas respecto al cálculo y
que admitan paralelización; en este caso, esta aplicación será el simulador
de dinámica atómica y molecular LAMMPS.
Para ello se dispone de los siguientes equipos, todos ubicados, a fecha de
redacción, en el laboratorio 1L022 del Edificio de Tecnologı́as de la Información y las Telecomunicaciones:
16x Intel Pentim 4 640 (3.2 GHz), 2-4GB RAM, 1TB HDD
5x Intel Pentim D 840 (3.2 GHz, dual core), 4GB RAM, 1TB HDD,
NVidia GTX650Ti-2GBDDR5
2x Intel Xeon X3210 (2.13 GHz, quad core), 4GB RAM, 160 GB HDD
1x Intel Xeon X3220 (2.4 GHz, quad core), 4GB RAM, 250 GB HDD
En esta lista se pueden crear tres tipos de ordenadores de acuerdo a sus
caracterı́sticas, agrupando los dos últimos; para empezar, los primeros, que
tienen como procesador un Pentium 4, serán utilizados tanto como nodos
de cálculo (los que residen en la balda superior, en la mesa), como frontend
(uno de los que está en la parte inferior de la mesa), y aquellos empleados
2
como nodos de cálculo se denominarán normales. A continuación, los equipos
con un Pentium D se denominarán con gráfica o gráficos, ya que tienen una
tarjeta nVidia GTX650 Ti, lo cual permite que, además de ser doble núcleo,
mediante la utilización de CUDA para realizar cálculos paralelos utilizando
la gráfica, dispongan de una mayor potencia de cálculo, y por último, los
tres ordenadores tipo Xeon, dado que están en el armario enracable y tienen
unas caracterı́sticas de procesador muy similares (8 MB de caché, 1066 MHz
FSB, quad core, etc., siendo la única diferencia entre sus modelos, X3210 y
X3220, la velocidad máxima de reloj; 2.13 y 2.4 GHz, respectivamente) y la
misma cantidad de RAM, se denominarán enracables.
Como puede apreciarse, esta clasificación de los nodos de cómputo está hecha
en base a las caracterı́sticas del procesador, la capacidad de cómputo del ordenador, y el factor de forma (enracable o semitorre ATX).
2.
Instalación
El proceso de instalación del sistema operativo en los equipos o hosts
tiene dos partes bien diferenciadas: la instalación del front-end, que será el
equipo desde el que se administre el clúster (en cuyo ámbito entran tareas
como lanzamiento de trabajos, instalación de librerı́as y programas, obtención de resultados, gestión de usuarios, gestión de colas, etc.) y se acceda
al resto de los host que conforman éste; y los nodos de cómputo, que se
encargan de realizar los cálculos necesarios, bien únicamente a través de los
núcleos de sus CPUs, bien utilizando aceleradores y GPUs.
En esta sección veremos estos dos pasos de instalación, empezando por el
frontend, ya que será éste el que posteriormente detecte e instale los nodos a
través de red, usando PXE y mandando las imágenes de disco de instalación
necesarias.
2.1.
Instalación del frontend
El ordenador elegido como frontend, de los dos que existen en la parte
inferior de la mesa, es el que está más cerca del armario enracable.
En primer lugar, ha de conocerse si los procesadores que forman parte
del clúster (nodos de cómputo y front-end) soportan instrucciones de 64 bits
o únicamente de 32. En este caso, dado que se conocen los modelos de los
microprocesadores, puede accederse a la página del fabricante para conocer
este detalle1 Para los equipos que formarán parte del clúster, estos datos ya
han sido buscados y las respectivas páginas con las especificaciones están
enlazadas en la lista de equipos del laboratorio de la Sección 1, y todos los
procesadores soportan el conjunto de instrucciones de 64 bits.
1
En nuestro caso, dado que los procesadores son de Intel, puede utilizarse el buscador
de productos Intel ARK en http://ark.intel.com/.
3
En caso de desconocerse el modelo de procesador, puede grabarse un
live DVD de alguna distrubución de Linux, por ejemplo Ubuntu, e iniciarle
en modo live, ya que el propósito no será instalar Ubuntu sino conocer
los detalles del procesador. Una vez iniciado el escritorio, basta con lanzar
un terminal y utilizar el comando sudo lshw para conocer los detalles del
hardware:
ubuntu@Ubuntu : ˜ $ sudo lshw
d e s c r i p t i o n : Computer
width: 64 bits
c a p a b i l i t i e s : smbios −2.3 dmi −2.3 v s y s c a l l 6 4 v s y s c a l l 3 2
c o n f i g u r a t i o n : boot=normal uuid=59CF9F6A−DD82−11D9−97D9−00E018EB099A
∗− c o r e
d e s c r i p t i o n : Motherboard
p r o d u c t : D915GUX
vendor : I n t e l C o r p o r a t i o n
physical id : 0
v e r s i o n : NNNNNNNN−NNN
s e r i a l : LLLLNNNNNNNN
[...]
∗−cpu
d e s c r i p t i o n : CPU
p r o d u c t : I n t e l (R) Pentium (R) 4 CPU 3 . 2 0GHz
vendor : I n t e l Corp .
physical id : 4
bus i n f o : cpu@0
v e r s i o n : I n t e l (R) Pentium (R) 4 p r o c e s s o r
s e r i a l : To Be F i l l e d By O. E .M.
s l o t : J2E1
s i z e : 3200MHz
c a p a c i t y : 3200MHz
width: 64 bits
c l o c k : 200MHz
c a p a b i l i t i e s : fpu f p u e x c e p t i o n wp vme de p s e
t s c msr pae mce cx8 a p i c s e p mtrr pge mca cmov pat p s e 3 6
c l f l u s h d t s a c p i mmx f x s r s s e s s e 2 s s ht tm s y s c a l l nx
x86-64 c o n s t a n t t s c p n i monitor d s c p l e s t c i d cx16 x t p r
cpufreq
[...]
Listing 1: Salida del comando list hardware (lshw) para el frontend
Otro comando que permite conocer esta información es sudo lscpu, o
utilizar el software Intel Processor Diagnostic Tool, que tiene una versión
ejecutable desde un live USB con Fedora2 . No obstante, es bueno disponer, si
aún no se ha montado el procesador en la placa base o hace falta cambiar la
pasta térmica, de la referencia que aparece marcada a láser sobre la cubierta
metálica del procesador. De esta forma, se puede saber si el chip es la variante
Extreme Edition de alguna de las arquitecturas, detalle que será útil a la
hora de configurar la biblioteca ATLAS.
2
Ver http://www.tcsscreening.com/files/users/IPDT_LiveUSB/index.html.
4
Una vez conozcamos si el procesador soporta instrucciones de 64 bits o
únicamente 32, accederemos a la página de descargas del proyecto Rocks
Clusters3 para descargar los discos de instalación. Dado que el ordenador
seleccionado como frontend dispone de una unidad de DVD y que el procesador es x86 64, se ha optado por bajar y grabar la versión Jumbo (DVD)
x86 64 (que resulta más cómoda que descargarse el conjunto de 4 CDs) de la
versión 5.5 de Rocks. Esta versión ha sido elegida por ser la antepenúltima
versión a fecha de inicio de las prácticas, lo que en el mundo de la informática
suele contribuir a la existencia de mayor documentación y un menor número
de errores.
Una vez iniciado el ordenador que actuará como frontend e insertado el
DVD de Rocks en la unidad lectora, conviene acceder a la BIOS (generalmente pulsando la tecla F2 del teclado) para verificar que en el orden de
arranque se sitúe antes la unidad lectora que el disco duro.
Al iniciar el instalador, saldrá durante un breve instante (del orden de
unos pocos segundos) el prompt boot:, que a menos que se reciba una
pulsación de teclado pasará a la siguiente pantalla. Para que el instalador
sepa que en ese ordenador ha de configurarse el frontend ha de escribirse
en este prompt los parámetros build ksdevice=p2p1 asknetwork. build
sirve para indicar al instalador que ese ordenador hará de frontend (de lo
contrario asumirá que es un nodo de cálculo) y ksdevice=p2p1 asknetwork
se utiliza para solicitar por pantalla la configuración de la red, paso que
será necesario dadas las caracterı́sticas de la red del laboratorio. En resumen
e incluyendo el prompt, la pantalla quedarı́a ası́:
boot: build ksdevice=p2p1 asknetwork
En caso de omitir esta lı́nea a la hora de instalar el frontend, aparecerá el
error “Failed to connect to HTTP server” (que se puede ver en la Figura 2)
en un paso posterior de la instalación, ya que, como se ha comentado anteriormente, el programa de instalación habrá asumido que el nodo actual se
está instalando como nodo de cálculo y estará intentando obtener la imagen
desde algún ordenador de la red externa al laboratorio (pero interna al edificio), que la instalación habrá identificado como probable frontend, pero que
evidentemente no lo es, en vez de buscar la imagen a instalar desde el DVD.
Si eso llega a suceder, basta con reiniciar el ordenador utilizando el botón
correspondiente del panel frontal, o pulsando el botón de arranque durante
más de cinco segundos para forzarle a apagarse, soltar, y pulsar de nuevo el
de arranque para que vuelva a iniciarse.
La página web del proyecto Rocks Clusters dispone de una guı́a de instalación que puede encontrarse en [6] y es la que se ha seguido en este paso,
aunque con las particularidades que se comentan a continuación.
3
http://www.rocksclusters.org/wordpress/?page_id=80 o accediendo a http://
www.rocksclusters.org/ y pulsando con el ratón sobre la sección [Downloads >>] del
menú principal.
5
Figura 2: Pantalla que aparece al no insertar la lı́nea de configuración en el
arranque durante la instalación del frontend
Selección de interfaz de red externa Una de las primeras pantallas que
aparecen pregunta sobre qué interfaz de red desea instalarse Rocks; para ser
más especı́fico pregunta por la interfaz de salida a la red externa, no al
clúster. En la mayorı́a de los frontends suele haber dos interfaces; una que
se dirige a un switch o router que interconecta todos los nodos entre sı́ y con
el frontend, y otra que sale del frontend a la red externa (internet). Generalmente (y este es el caso para la red del clúster del laboratorio) la tarjeta con
mayor ancho de banda se suele dejar para la conexión con el clúster (ya que
seguramente sea necesario mover ficheros de datos voluminosos con los datos
iniciales o resultados, que además estarán compartidos mediante un sistema
de ficheros en red). Con lo cual Eth0, que soporta ethernet 10/100 será la
de salida hacia internet y Eth1 (que soporta Gigabit Ethernet y además es
PCI Express, ya que pone PCI-E) es la que lleva hacia la red interna. No obstante, utilizando los datos que aparecen en pantalla (como ya hemos dicho,
Eth1 es una tarjeta PCI Express, con lo que estará en una de las ranuras de
expansión, y además posee capacidad de Gigabit, lo que hace muy probable
que tenga dos LEDs, uno para indicar 10/100 y otro para Gigabit, y de la
otra no se dice su tipo pero se puede buscar en internet), conviene verificar
hacia dónde va cada tarjeta, mirando si el latiguillo4 conectado a Eth0 lleva
al router o switch que sale a internet o al que va hacia el router, haciendo lo
mismo con Eth1 y anotando estos datos, ya que nos serán solicitados más
adelante de nuevo durante el proceso de instalación del frontend de Rocks.
4
El término latiguillo se utiliza en informática y telecomunicaciones para referirse a los
cables para transmisión de datos que acaban, en cada extremo en un conector, generalmente RJ45. En inglés se denominan patch cord. Ver http://en.wikipedia.org/wiki/
Patch_cable.
6
Por tanto ya que ha de seleccionarse la interfaz de salida a la red externa,
y para la configuración del laboratorio, elegiremos Eth0 y pulsaremos Intro,
como puede verse en la Figura 3.
Figura 3: Pantalla de selección de la interfaz hacia la red externa
Select Your Rolls En esta pantalla pulsaremos sobre el botón CD/DVDbased Roll que aparece en la sección “Local Rolls”. La bandeja de la unidad
lectora de CD/DVD expulsará el DVD y la pantalla mostrará el mensaje
Insert the Roll CD/DVD; basta con volver a introducir la bandeja de la
unidad lectora con el disco y pulsar sobre el botón Continue.
El programa de instalación de Rocks leerá entonces el disco y buscará los
rolls existentes en el disco, que, al tratarse del DVD son todos los disponibles.
Para nuestro caso particular debemos marcar las casillas de area51, base,
ganglia, hpc, java, kernel, os, perl, python, sge y web-server es decir, para
nuestro propósito hemos de marcar todas las casillas menos bio, y condor y
xen-5.5.
Durante la realización de este trabajo se utilizará sge para proporcionar
control de colas de trabajos; ganglia permitirá la monitorización de todos
los hosts que forman parte del clúster y obtener estadı́sticas como la carga
de red, la carga de CPU, el porcentaje de memoria ocupada, etc.; web-server
instalará el servidor web Apache, que resulta útil ya que, una vez instalado el
frontend, pueden verse los resúmenes proporcionados por gangila accediendo
desde el servidor a http://localhost/ganglia. El roll hpc instala entornos
de paso de mensajes tales como OpenRTE, MPI y MPICH, además de ciertos
7
benchmarks como stream 5 o IOzone 6 , y el software PVM 7 , que permite
utilizar un conjunto heterogéneo (tanto en software como en hardware) de
máquinas fı́sicas unidas por red como si se tratara de un ordenador paralelo.
Una vez seleccionados estos rolls para su instalación, ha de pulsarse con
el ratón sobre el botón Submit para avanzar hacia la siguente pantalla, donde
el instalador mostrará, a la izquierda, los rolls marcados en la anterior. Para
aceptar la selección realizada, esta vez ha de pulsarse el botón Next, situado
en la mitad derecha.
En caso de que haber cometido algún error a la hora de haber marcado
las casillas de los rolls a instalar, basta con pulsar, en lugar de Next, el botón
Insert the Roll CD/DVD, y el programa vuelve a la pantalla de selección.
Cluster Information El formulario que aparece en esta pantalla sirve
para indicar al programa de instalación algunos detalles sobre el clúster.
Según la ayuda que aparece al margen, el único campo obligatorio es el
primero, el Fully qualified domain name o FQDN 8 , que consiste en el nombre
de la máquina que hará de frontend (la que estamos instalando) seguida
del nombre de dominio en el que se encuentra el frontend. Por ejemplo,
si la máquina se llama moonstone, y estamos en el dominio de electrónica
(ele.uva.es), en este campo se debe escribir moonstone.ele.uva.es. En la
Figura 4 este campo (que en el formulario aparece como Fully-Qualified
Host Name) es erróneo, ya que únicamente aparece la parte del nombre
de dominio. Esto provocarı́a que el programa de instalación asumiera que el
nombre del ordenador que hace de frontend es ele y está en el dominio uva.es,
lo cual, como hemos comentado anteriormente, es incorrecto. Es importante
no cometer este error.
Los otros campos que se pueden rellenar son el nombre que tendrá el
clúster entero (en nuestro caso se ha decidido llamar HPCInformática, abreviatura del nombre de la asignatura); la organización (UVa, abreviatura de
Universidad de Valladolid); y los datos sobre la ubicación fı́sica del clúster,
que son: el nombre de la ciudad (Valladolid), la provincia (Valladolid ), las
siglas del paı́s (ES para España), y la latitud y longitud (en el caso del laboratorio 1L022 estos datos son N41.662371 W04.705688 ). También se puede
introducir el correo electrónico del administrador del clúster en el campo
Contact y la URL, si es que tuviera alguna. En nuestro caso, hemos preferido dejar algunos de estos campos con los valores por defecto en vez de en
5
Ver
https://www.nersc.gov/users/computational-systems/
nersc-8-system-cori/nersc-8-procurement/trinity-nersc-8-rfp/
nersc-8-trinity-benchmarks/stream/.
6
Benchmark diseñado para medir el rendimiento de un sistema de ficheros respecto
a operaciones de lectura, escritura, relectura, reescritura, y varoas funciones de C. Ver
http://www.iozone.org/.
7
Ver http://www.csm.ornl.gov/pvm/.
8
Ver http://es.wikipedia.org/wiki/FQDN.
8
blanco.
Figura 4: Formulario para entrada de información sobre el clúster. El primer
campo es erróneo, deberı́a ser moonstone.ele.uva.es
Ethernet Configuration for Public Network Aquı́ ha de seleccionarse
la interfaz de red hacia internet, para lo que son necesarios los datos y
la explicación del párrafo ‘Selección de interfaz de red externa’ en la Sección 2.1. Si en este paso, mirando la ubicación de los conectores, los datos
que aparecieron en pantalla, y el router o switch al que conecta el latiguillo que une cada tarjeta, se determinó que la interfaz hacia la red externa
(“internet”) es eth0 (como resulta en nuestro caso), ha de selecionarse ésta
en la caja desplegable Public Network Interface. En el campo IP address
ha de introducirse la dirección IP del frontend en la red externa; en el caso
del ordenador del laboratorio, esta IP ha sido proporcionada por el profesor de la asignatura, como puede verse en la Figura 5. Por último, en el
campo Netmask ha de escribirse la máscara de subred para la red externa a la que pertenece el frontend. Para el caso de la UVa, que tiene todo
el rango de direcciones que comienza por 157.88.XXX.YYY (lo que en el
ámbito de las redes se conoce como red de clase B, donde los dos primeros
octetos son fijos, y se permite direccionar hasta 65534 equipos diferentes9 ),
cada dirección XXX se asigna a un grupo, departamento o edificio diferente.
Por ejemplo, hasta hace poco tiempo, el Grupo Universitario de Informática
disponı́a de todas las IP que comenzaran por 157.88.36.YYY, el departamento de electrónica todos los que empezaran por 157.88.110.YYY, etc. (en
una idea similar a la de un rango de clase C), aunque es posible que algunos
departamentos dispongan varios rangos .
9
Ver http://es.wikipedia.org/wiki/Direccion_IP.
9
Las máscaras de subred se forman, si las vemos como un número binario,
con “1” en la parte que identifica la red, y “0” en la parte que identifica al
host, esto es, la parte YYY de las direcciones IP escritas anteriormente. Por
tanto, la máscara de subred para el departamento de Electrónica deberá ser
255.255.255.0.
Figura 5: Formulario para introducir la configuración de la red externa
Ethernet Configuration for Private Network Al igual que en el apartado anterior sobre configuración ethernet para la red externa, en este caso se
elige en la caja desplegable la interfaz cuyo latiguillo conecta con el router
(o switch) que a su vez está conectado con los nodos de cálculo. Ya que en
nuestro caso, únicamente existen dos tarjetas de red en el frontend y eth0
es la que va hacia la red externa, eth1 es, por descarte la que conecta con la
red de nodos del clúster y es la que debe seleccionarse. El resto de valores se
han dejado tal y como vienen por defecto, es decir, 10.1.1.1 como dirección
IP y 255.255.0.0, lo que permite añadir hasta 65534 nodos al clúster. Esto
puede verse en la Figura 6.
La guı́a de instalación oficial de Rocks para el frontend en [6] recomienda
no cambiar estos valores por defecto salvo que se den circunstancias especiales que obliguen a elegir otros valores diferentes, y añade que, aunque el
programa de instalación permite elegir la misma interfaz de red tanto para
la red interna como para la externa, elegir la misma en ambos formularios es
un error. Cuando la instalación detecta que únicamente existe una tarjeta
de red crea una interfaz de red virtual del estilo a eth0:0.
Para continuar hacia la siguiente pantalla ha de pulsarse con el ratón
sobre el botón Next.
10
Descargar