Que
es un Cluster Beowulf?
Un
Beowulf es una clase de computador masivamente paralelo de altas prestaciones
principalmente construido a base de un cluster de componentes hardware estándard.
Un Beowulf ejecuta un sistema operativo de libre distribución como Linux
o FreeBSD, y se interconecta mediante una red privada de gran velocidad.
Generalmente se compone de un grupo de PCs o estaciones de trabajo dedicados
a ejecutar tareas que precisan una alta capacidad de cálculo. Los nodos
en el cluster de computadoras no se hayan en los puestos de trabajo de los
usuarios, sino que están totalmente dedicados a las tareas asignadas al
cluster. Generalmente, el cluster se haya conectado al mundo exterior por
un solo nodo.
El software puede ejecutarse más rápido en un Beowulf si se dedica algún
tiempo a reestructurar los programas. En general es necesario partirlos
en tareas paralelas que se comunican usando alguna librería como MPI o
PVM, o sockets o SysV IPC.
Tipos
de Configuraciones
Las computadoras en un cluster se comunican mediante una red de interconexión.
Existen distintos tipos de red disponibles. Un Hub ethernet es un dispositivo
de red que actúa como un bus broadcast, en el cual una señal de entrada
es amplificada y distribuida a todos los puertos. Sólo un par de computadoras
se pueden comunicar correctamente a la vez. Si dos o más computadoras
envían paquetes a la vez ocurrirá una colisión. Por tanto, el ancho de
banda de un Hub Ethernet es equivalente al ancho de banda del link de
comunicación, 10Mbps para estándard Ethernet, 100Mbps para Fast Ethernet,
y 1Gbps para Gigabit Ethernet. Un Switch Ethernet ofrece más ancho de
banda acumulado permitiendo múltiples comunicaciones simultáneas. Si no
hay conflictos en los puertos de salida, el Switch Ethernet puede enviar
múltiples paquetes simultáneamente. El coste por puerto de un Switch Ethernet
es aproximadamente cuatro veces más grande que un Hub Ethernet.
Objetivos
del Proyecto
El proyecto de construcción de un cluster tipo Beowulf se enmarca dentro de una
acción estratégica del Departamento de Arquitectura de Computadores (DAC) en la EPSC, que permita dotarlo de una infraestructura
básica de supercomputación paralela de bajo coste.
Las aplicaciones inmediatas de dicha infraestructura consistirían en aspectos tanto docentes como de
investigación.
El cluster en la
docencia
En el campo docente esta prevista la realización de diversos Trabajos de Final de Carrera (TFC) que incidan en aspectos como:
 |
la construcción del cluster, |
 |
su configuración usando diversas
topologías de red y sistemas de comunicación, |
 |
implantación de un sistema operativo distribuido, |
 |
programación paralela, etc. |
Como fruto de estos trabajos está previsto que a medio plazo puedan incorporarse ciertos temas de
supercomputación y de redes de computadores en algunas de las asignaturas que el DAC imparte en la EPSC, como: Sistemas Operativos, Laboratorio de
Programación II, Fundamentos de Sistemas Distribuidos, etc. Así como la posible
creación de asignaturas optativas.
El cluster en la
investigación
En el campo de investigación, parte de los trabajos realizados por los investigadores del DAC en la EPSC se centran en temas como: "grid computing", sistemas distribuidos y
verificación formal de sistemas concurrentes. Campos todos ellos, en los que se
requiere una infraestructura de red y/o capacidades de computación de altas prestaciones.
Trabajos
de final de carrera
Los tres TFCs propuestos inicialmente constan de una parte común que permita poner en marcha lo antes posible la
implantación del cluster, así como proporcionar a los alumnos una base de conocimiento
común. Más concretamente esta consistiría en:
 |
Estudio de la computación en cluster y sus diversas alternativas. En concreto se
dará una mayor importancia a todo lo referente al uso de clusters Linux tipo Beowulf. |
 |
Estudio básico de las necesidades de
comunicación entre los nodos del cluster. |
 |
Estudio de la implicaciones que a nivel de sistema operativo tiene la
implantación de una arquitectura tipo cluster. |
 |
Estudio básico de las diferentes alternativas de
programación paralela en tales arquitecturas. |
PFC 1: Construcción
de un cluster Linux tipo Beowulf
El PFC engloba todo lo referente a la construcción física del cluster,
así como la instalación y configuración del sistema operativo y las herramientas
de soporte a la programación paralela.
A grandes rasgos, los pasos a seguir para la realización de este PFC serian
los siguientes:
 |
Creación de la red con los equipos disponibles. |
 |
Instalación y configuración de los equipos de red. Esto incluye el soporte de red en el ordenador servidor y los nodos clientes del cluster. |
 |
Configuración del S.O. en el servidor y en los nodos clientes. En este caso se valoraran alternativas como la carga del sistema a
través de red (boot remoto), etc. |
 |
Instalación y configuración del software de soporte a la
programación paralela.
|
PFC 2: Evaluación
de las herramientas de programación paralela en cluster Beowulf
El PFC trata del estudio y evaluación de diferentes soluciones existentes
de soporte a la programación paralela. En particular se estudiaran en
profundidad las diferentes implementaciones de las librerías MPI. El objetivo
último será el desarrollo de una aplicación paralela demostrativa, que
permita comparar de forma practica las diferentes alternativas valoradas.
A grandes rasgos, los pasos a seguir para la realización de este PFC serían
los siguientes:
 |
Estudio comparativo de las librerías de soporte a la
programación paralela: PVM, MPI, ... |
 |
Comparación cualitativa de diversas
implementación de MPI: LAM, MPICH, ... |
 |
Desarrollo y evaluación del rendimiento de una
aplicación paralela demostrativa sobre MPI
|
PFC 3: Evaluación
de las comunicaciones en un cluster Beowulf
El objetivo de este PFC es el estudio de los diferentes parámetros de
rendimiento de las comunicaciones en el cluster. Tanto a nivel de la propia
topología de la red, como a nivel del equipo utilizado, etc.
A grandes rasgos, los pasos a seguir para la realización de este TFC serian los siguientes:
 |
Estudio de diferentes herramientas de
evaluación del rendimiento de la red en un cluster |
 |
Estudio de diferentes topologías de red en
función de los equipos de comunicación utilizados: hubs, switchs, ... |
 |
Evaluación de las topologías propuestas
|
Links
de interés
A continuación se incluyen algunos links de interés para
introducirse en el mundo del Cluster Computing.
Creación
de un Beowulf
Librerías
de procesado distribuido
|