cambiar a curso:   2019-20   2021-22


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2020-21

Diseño y despliegue de un clúster basado en Raspberry Pi


Tecnologías Específicas

Ingeniería de Computadores
 


Descripcion y Objetivos

La Raspberry Pi es un dispositivo pequeño y de bajo coste que tiene una gran potencia de cómputo. Cuando fue creado, el objetivo principal fue promover la enseñanza de conceptos básicos de computación en escuelas y colegios. Sin embargo, en la actualidad se utiliza para muchos propósitos diferentes: servidor multimedia, estación base para la automatización del hogar, estación meteorológica, servidor de disco en red para copias de seguridad, o como una simple computadora que puede ejecutar aplicaciones de Internet, juegos, automatización de oficinas, etc. Las múltiples posibilidades que ofrece este dispositivo y, por supuesto, su bajo precio, han dado lugar a un extraordinario crecimiento de sus ventas, así como de la comunidad de desarrolladores.

La Raspberry Pi 3 incorpora un procesador con arquitectura Arm, tiene soporte WiFi de doble banda y también soporte Gigabit Ethernet. Estas y otras características hacen que este dispositivo sea muy atractivo para obtener múltiples configuraciones que se ajusten a las necesidades de aplicaciones como las indicadas anteriormente. Una de estas configuraciones es un clúster formado por varias Raspberry Pi, que permite tratar con aplicaciones paralelas. 

El objetivo de este TFG es obtener un clúster con un número pequeño (entre 8 y 16) de estos dispositivos, y realizar diversas pruebas para comprobar su funcionamiento y rendimiento. 

Para lograr este objetivo general se deberán cubrir un conjunto de objetivos particulares:

- Conocer con detalle las características, componentes y funcionamiento de una Raspberry Pi.
- Aprender a diseñar, configurar y usar un pequeño clúster compuesto de varias Raspberry Pi.
- Analizar el rendimiento del clúster ejecutando varias aplicaciones paralelas MPI. 
 

 


Metodología y Competencias

Las tareas que deberán completarse para lograr el objetivo principal del trabajo se realizarán siguiendo la metodología utilizada habitualmente en este tipo de trabajos, que en general consiste básicamente en motivar y justificar la conveniencia de realizar un trabajo centrado en este tipo de dispositivos; estudiar en profundidad dicho dispositivo; mostrar los pasos en el desarrollo del sistema; configurar el hardware y software que se va a usar; y realizar un análisis de rendimiento, con un estudio comparativo son otras alternativas.

Al aplicar dicha metodología al caso particular de este Trabajo Fin de Grado, se obtienen las siguientes tareas principales a realizar:

1. Revisión de las características de una Raspberry Pi, con el propósito de conocer los aspectos necesarios para realizar el trabajo. Para realizar esta tarea se consultará la información oficial disponible en su web así como otros documentos si fuera necesario.

2. Estudio de los requisitos para montar y configurar correctamente un clúster con un número reducido (entre 8 y 16) de Raspberry Pi. Esta tarea incluye tanto aspectos más directamente relacionados con el hardware, como por ejemplo decidir la forma de conectar todos los componentes necesarios; como los que tienen que ver con el software, como la elección de la interfaz de paso de mensajes y la correspondiente librería de comunicaciones. Se consultarán diversas fuentes (webs y manuales, fundamentalmente) para realizar esta tarea.

3. Diseño o construcción del clúster y configuración del mismo. De las decisiones realizadas en la tarea anterior y del conocimiento extraído a partir de la diversa documentación revisada, se montará y configurará el clúster. En primera instancia, y para facilitar el desarrollo del trabajo, se trabajará con 2 o 3 dispositivos. Cuando todo funcione correctamente se montará y configurará el clúster completo.

4. Comprobación del correcto funcionamiento y análisis de rendimiento del clúster. Se elegirán varias programas paralelos y se ejecutarán en el clúster con un doble objetivo, por un lado comprobar el correcto funcionamiento del clúster; y por otro para estudiar su rendimiento, para lo cual se comparará con versiones secuenciales de dichos programas.


Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:

- [IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.

- [IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.

 


Medios a utilizar

Los recursos necesarios para el desarrollo de este TFG serán de fácil acceso para el alumno. Para las dos primeras tareas se requiere diversa documentación, toda ella accesible a través de Internet. Para realizar las otras dos tareas se proporcionará al alumno acceso a todo el material necesario (placas Raspberry Pi, cables, switch, etc.), y que se encuentra en el centro. El software necesario es de código abierto y por tanto totalmente accesible.

 


Bibliografía

- Raspberry Pi. https://www.raspberrypi.org/documentation/installation/noobs.md, 2020.

- Raspberry Pi Foundation. https://www.raspberrypi.org, 2020.

- G. Halfacree.  The official Raspberry Pi Beginner’s Guide. How to use your new computer. Raspberry Pi Press. 2018

- E. Upton, G. Halfacree. Raspberry Pi User Guide. Wiley Publishing, United Kingdom, 4e edition, 2016.

- B. Smith. Raspberry Pi Assembly Language Raspbian Beginners. CreateSpace Independent Publishing Platform, North Charleston, SC, USA, 3rd edition, 2016

- J. Lynx. A Simple Guide to Help You Get the Most Out of Your Raspberry Pi 3. CreateSpace Independent Publishing Platform, 2016.

- J.E. Roman, et. al. Ejercicios de programación paralela con OpenMP y MPI. UPV 2018.

- D.H.M. Spector. Building Linux Clusters, O'Reilly & Associates, 2000 

 


Tutores


ALFARO CORTES, FRANCISCO JOSÉ
SÁNCHEZ GARCÍA, JOSÉ LUIS
 

Alumno


ANDRÉS MANCEBO, PEDRO