You are on page 1of 4

CRUZ: un Clster porttil de bajo costo usando Raspberry Pi

CRUZ: a portable Cluster of low cost using Raspberry Pi


Csar Martn Cruz Salazar
Universidad Nacional de Ingeniera, Av. Tpac Amaru Rmac Lima.
Resumen
Este paper es sobre la construccin de un clster (agrupamiento de placas computadores) porttil formado de
11 nodos ms un nodo para el maestro. Utiliza en total 12 placas Raspberry pi que se unieron formando una
red con acceso de cada uno a Internet. El equipo en su conjunto se configur instalando software apropiado,
de tal forma que trabajen en colaboracin procesando una tarea particionada entre todos los nodos utilizando
libreras MPI. Permitiendo as desarrollar y probar programas en paralelo. El objetivo de este equipo es que
se utilice como una herramienta para la enseanza en los cursos de Programacin Paralela y Distribuida. Lo
que proporciona un punto de partida de bajo costo para inspirar y capacitar a los estudiantes a entender y
aplicar la computacin de alto rendimiento y manipulacin de datos para hacer frente a la ingeniera compleja
y los desafos cientficos.
Descriptores: clster, raspberry pi, programacin paralela, distribuida, MPI, hadoop, educacin bajo costo.
Abstract
This paper is about the construction of a cluster (grouping of computers boards) Portable formed of 11 nodos
plus the master node. It uses a total of 12 Raspberry Pi boards that joined to form a network with each access
to the Internet. The equipment as a whole was configured by installing appropriate software, so working in a
partitioned task processing in collaboration between all nodes using MPI libraries. Thus allowing developing
and testing parallel programs. The purpose of this equipment is to be used as a tool for teaching courses in
Parallel and Distributed Programming. Providing a starting point inexpensive to inspire and enable students to
understand and apply high performance computing and data handling to tackle the complex engineering and
scientific challenges.
Keywords: cluster, raspberry pi, parallel computing, distributed, MPI, hadoop, education low cost.
1 Introduccin
1.1 Contexto y trabajo relacionado
En los inicios del proyecto, empec revisando videos
en youtube [1] y [2] que me dieron ideas de cmo
construir un clster. Es as que en este artculo
presentamos nuestro clster "Cruz", que fue
montado usando 12 placas Raspberry Pi
interconectados con enlaces Ethernet de 100
Mbtis/s, uno de los racks de 7 placas se muestra en
la Figura 1. Comprende de 2 ventiladores para
refrigeracin que son necesarios porque cada placa
RPI se encuentra overclockeado a 1 Ghz. Estas
cualidades, junto con su peso ligero, pequeo
volumen, la hacen eminentemente adecuado para
una serie de aplicaciones que demandan la
programacin paralela y que ejecuta un clster
convencional que debido a sus altos costos y los
requisitos especiales de infraestructura su uso para
la enseanza resulta poco adecuado. Fue una gran
fuente de inspiracin el desarrollo de una
supercomputadora basado en RPI realizado por el
Prof. S. J. Cox en la Universidad de Southampton
del Reino Unido [3].

Considerar baja potencia, la computacin intensiva


de datos est llegando a ser una rea de gran
inters, tanto en lo acadmico como en la industria.
Aplicaciones ricas en datos son cada vez ms
corriente, los proveedores de infraestructura estn
prestando considerable atencin tanto a la energa
consumida por el hardware computacional y la
capacidad de enfriamiento que esto impone. La
industria del hardware est ofreciendo ms
servidores de bajo consumo energtico, a menudo
usando CPUs de bajo consumo, y existe un
creciente inters en el uso de chips de bajo consumo
de arquitecturas alternativas tales como ARM en el
centro de datos; empresas como Calxeda se han
fundado en torno a estos desarrollos. Por otra parte,
"Parallela: Un supercomputador para Todos" del
proyecto Adapteva [4], recientemente logr reunir
suficiente financiamiento comunitario que le permitir
lograr el objetivo de democratizar la computacin de
alto rendimiento mediante la produccin de placas
1

compactas basados en un conjunto escalable de


procesadores RISC sencillas acompaadas de una
CPU ARM.
En el centro de supercomputadoras de San Diego [5]
usan un clster METEOR basado en RPIs para la
enseanza de la programacin paralela.

permite su fcil manipulacin y son una clase de


computadores de una nica placa. Cuentan con 512
Mbytes de RAM, un sistema sobre un Chip
Broadcom BCM2835, que integra un procesador de
700MHz ARM1176JZF RISC, un GPU Broadcom
VideoCore IV con HDMI y salida de vdeo
compuesto, una DSP para audio, y un controlador
USB. Tambin, un adaptador para puerto Ethernet
externo de 10/100 Mbits, y un adaptador de dos
puertos USB 2.0.
El almacenamiento local se realiza a travs de una
tarjeta de memoria SD (Secure Digital) que se
coloca en una ranura acondicionada para la tarjeta
de memoria, y hay varios otras interfaces como
buses I2C y SPI, UART y ocho pines GPIO. Cada
placa RPI se alimenta con una fuente de 5 voltios
que son suministrados por una fuente switching de
computadora PC y adaptadores de voltaje cada uno
con dos sockets USB.

Fig1. Una de las torres del Clster Cruz


2 El presente trabajo
El clster que presentamos en este trabajo combina
los elementos no convencionales de la utilizacin de
procesadores ARM de bajo costo y de bajo consumo
de energa, conectados usando Ethernet, y
almacenamiento flash, disponiendo del apoyo
tradicional de tecnologas como MPI sobre la cual
muchas aplicaciones de supercomputacin son
construidas. Con un tamao global muy compacto,
peso ligero, nuestro clster es ideal para propsitos
educativos y de demostracin.
La estructura del trabajo es la siguiente: en la
Seccin 3 se dan las especificaciones del clster y
sus nodos, describiendo su hardware y software. En
la Seccin 4 dirigimos nuestra atencin a los
resultados de programas en paralelo ejecutados en
el clster. As como
otros programas muy
importantes para un clster.
Luego, finalmente escribimos la conclusin del
trabajo, agradecimientos y referencias.

Fig2. El Clster Cruz


3.2 Software
Corremos el sistema operativo Raspbian, que es una
versin optimizada de la distribucin Debian GNU /
Linux para la Raspberry Pi. Para ello hemos
preparado una tarjeta SD(MicroSD) con una imagen
descargada de la Fundacin Raspberry Pi, y
personalizamos esta instalacin aadiendo software
necesario para ejecutar programas en paralelo, esta
finalmente viene hacer la imagen del maestro.
Finalmente hemos clonado esta imagen "maestro", a
las tarjetas SD de los otros nodos. En una primera
oportunidad se siguieron los pasos mencionados en
la referencia [6] pero debido a que se cometieron
errores se prefiri seguir luego los pasos indicados
en el libro de Andrew K. Dennis [7].

3 Descripcin del Sistema.


Proporcionamos una descripcin de la arquitectura
del clster "Cruz", tanto en trminos de sus
componentes de hardware y de su entorno de
software.
3.1 Hardware
El Clster "Cruz" se compone de 11 Raspberry
Modelo B que actan como esclavos y un Raspberry
Pi modelo B+ que acta como maestro. Estas placas
son de tamao de una tarjeta de crdito, lo cual

3.2.1 NFS server


2

Se instal con el fin de poder compartir una carpeta


/mnt/clusterpi entre todos los nodos y el nodo
Maestro. Esta carpeta se utiliza para all colocar
nuestros programas que se van a ejecutar.
3.2.2 Creacin de un usuario sin derecho de sudo
Fig4. Ejecucin de otro programa MPI en el Clster
Cruz

Se cre un usuario: mcruz y password: mcruz para


que cualquier estudiante pueda ejecutar programas
en el clster sin que pueda borrar archivos del
sistema e instalar nuevo software en el clster.

4.2 Un simple gestor de colas


Para evitar ejecutar en el clster ms de un
programa de manera simultnea, es que se escribi
un script que chequea si el clster ya est corriendo
un proceso. Si fuera as el proceso siguiente que
quiere ejecutarse se pone en estado de espera
hasta que finalice el anterior proceso. Ver figura 5.

3.2.3 IPs estticos para todos los nodos


Se cambi el contenido del
/etc/network/interfaces por este otro:

archivo

en

auto lo eth0
#iface lo inet loopback
#iface eth0 inet dhcp
iface lo inet loopback
iface eth0 inet static
address 172.20.45.241
netmask 255.255.255.0
gateway 172.20.45.254
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

En todos los nodos.


4 Resultados y discusin

Fig5: Ejecutando a la vez en tres terminales el script


ejecuta_mpi
ejecuta_mpi 4 /mnt/clusterpi/cpi2

4.1 Ejecucin de un programa en paralelo

4.3 Programa de chequeo de conexin hecho con


Crontab y python

En la siguiente figura 3 se muestra como se ejecuta


un programa cpi2 de clculo del valor de y el
resultado obtenido considerando 11 nodos. El
archivo se encuentra en la carpeta compartida
/mnt/clusterpi. En la lnea de comando ingresar:

Un problema muy comn que apareci en el clster


fue la perdida de conexin de sus nodos. Entonces,
me plante desarrollar un programa en Crontab que
chequee cada 20 segundos la conexin en Red de
cada nodo. Que en caso pierda la conexin se
reconecte en forma automtica. El programa se hizo
el Python(checkInternet) y chequea la conexin con
Google, si se pierde manda a reiniciar el nodo.

mpiexec -f pifile -n 11 /mnt/clusterpi/cpi2

4.4 Programas adicionales desarrollados en Python


para monitoreo del clster.
En un clster es necesario saber si todos los nodos
se encuentran en red, antes de lanzar un programa
a ejecutar. Para ello se hizo el programa
conectados.py que chequea si los nodos se
encuentran en Red. Se necesita saber tambin la
temperatura de los nodos del clster, entonces se
desarroll temperaturas.py para poder tener esta
informacin.

Fig3. Ejecucin de un programa MPI en el Clster


Cruz
Ejemplo de ejecucin de otro programa icpi con su
resultado indicado, ver figura 4:

clsteres y al profesor Glen Rodrguez porque se


anim a probar el clster en su curso haciendo as el
control de calidad del mismo. A los estudiantes
Abraham Zamudio, Pavel Mendoza Villafane, Jean
Pierre Huaroto Chavez y Diego Berrocal Chinchay
porque en alguna etapa del desarrollo del Clster
tuvieron cada uno un aporte valioso. Finalmente a
mis alumnos del curso CC571 ciclo 2014 II, por la
ejecucin del proyecto de Crontab.
7 Referencias
Fig5. Ejecucin del programa conectados.py. en el
Clster Cruz

[1]

[2]

[3]
[4]

[5]
Fig5. Ejecucin del programa temperaturas.py. en
el Clster Cruz
[6]

5 Conclusiones

[7]

Es un equipo de mucha utilidad a pesar que no tiene


una gran potencia de procesamiento como se midi
en una oportunidad comparndolo con una Pc con
procesador Intel de ltima generacin. La utilidad
est en que adems de permitirnos ejecutar
programas en paralelo, observar la latencia y servir
para la enseanza, nos ha permitido poder
considerar otros programas desarrollados en Python
tambin importantes para un clster como de
monitoreo de su estado actual, monitoreo de las
conexiones de los nodos en la red, de temperaturas
de los nodos, etc. Se ha pensado en un futuro
enriquecer el clster con un software que permita ver
el estado actual del clster en la web. As como la
instalacin de un gestor de colas avanzado que es
ya motivo de otro artculo.

How To Make A Cluster Computer (Part 1)


https://www.youtube.com/watch?v=1R0UgIgcb
5g
How To Make A Cluster Computer (Part 2)
https://www.youtube.com/watch?v=lHmFRlETT
cQ
Simon Cox, raspberry pi iridis lego
supercomputer paper June 2013.
Parallella un supercomputador para todo el
mundo.
https://www.kickstarter.com/projects/adapteva/
parallella-a-supercomputer-for-everyone
SDSC Uses Meteor Raspberry Pi Cluster to
Teach Parallel Computing.
http://ucsdnews.ucsd.edu/pressrelease/sdsc_u
ses_meteor_raspberry_pi_cluster_to_teach_pa
rallel_computing
Steps to make a Raspberry Pi Supercomputer
http://www.southampton.ac.uk/~sjc/raspberrypi/
Andrew K. Dennis, Raspberry Pi Super Cluster
(Noviembre 2013) 1 - 59.

E-mail: ce.cruz@gmail.com

6 Agradecimientos
Quiero agradecer primero a Dios por permitirme
ejecutar este proyecto, a la UNI y a la Facultad de
Ciencias por el espacio otorgado. A los profesores
Fidel Jara, Carmen Eyzaguirre por el aliento dado
para terminar el proyecto. Al profesor Renato Tovar
por sus consejos y sus conocimientos sobre

El autor de este paper junto al Clster que construy

You might also like