Universidad Nacional Autónoma de México
Dirección General de Servicios de Cómputo Académico
Año 7 Núm. 74, Publicación Mensual, 27 de Noviembre de 2008

ARTÍCULOS

 

Año 3, Número 27, Marzo de 2004

Diez años de computación con clusters

José Luis Gordillo Ruiz

 

Este año se cumple una década de la presentación de Beowulf, el primer proyecto de cluster ampliamente difundido entre la comunidad de cómputo científico. Lo que en un principio parecía un experimento interesante, se ha convertido en una de las tecnologías más importantes y con más perspectivas de desarrollo en el ámbito del supercómputo.

Dos de las aportaciones principales de las tecnologías de clusters son el haber proporcionado una arquitectura de cómputo que permitiera consolidar los conceptos de programación paralela desarrollados durante los años previos y que, a la vez, sirviera como herramienta para continuar con la investigación en este campo; por otro lado, el mostrar a las comunidades académicas e instituciones de investigación, facultades, etc., la viabilidad tecnológica y económica de construir sus propias computadoras paralelas, tanto para hacerse de una herramienta de investigación como para incentivar su espíritu de innovación.

Gracias a ello, se produjeron innovaciones en las tecnologías de clusters que retroalimentaron el interés en su desarrollo, conformando un proceso de innovación / incentivo / innovación que, en buena medida, explica el éxito y desarrollo de esta tecnología.

Definición

Un cluster es un tipo particular de computadora paralela, es decir, un conjunto de computadoras que pueden trabajar de manera coordinada en la solución de un mismo problema. Aunque no existe un acuerdo general en cuanto a la definición exacta de lo que significa un cluster, y muchas computadoras diferentes pueden llegar a ser clasificadas como tales, dos de las características más aceptadas de estos equipos y quizás las que más han influido en su rápido desarrollo son que se construyen a partir de componentes que pueden encontrarse en el mercado común de cómputo, lo que en EU se conoce como “commodity of the shelf” (COTS), y que se desarrollan bajo el esquema de “hágalo usted mismo”.

Estas características implican que para construir un cluster no es necesaria la intervención de personal altamente especializado de alguna compañía constructora de computadoras; por el contrario, prácticamente todos los clusters que han aportado un avance a estas tecnologías han tenido un carácter académico no necesariamente en su uso, pero sí en el proceso de configuración, implementación y operación; por ejemplo, Beowulf fue construido por Donald Becker y Thomas Sterling, investigadores de la NASA y el Tecnológico de California, respectivamente; mientras que el proyecto Cluster X (también conocido como Terascale Cluster) fue dirigido por Srinidhi Varadarajan y Jason Lockhar, ambos académicos del Tecnológico de Virginia.

Antecedentes

Como muchos otros proyectos exitosos, los clusters son una síntesis de un conjunto de elementos preexistentes. Las condiciones que dieron origen al proyecto Beowulf fueron el éxito general de las computadoras personales, el surgimiento de Linux como alternativa viable de sistema operativo tipo Unix para computadoras personales y la estandarización de las prácticas comunes de programación paralela.

El éxito de las computadoras personales propició un fenómeno de retroalimentación positiva que produjo procesadores cada vez más rápidos y baratos; dicha situación permitió la existencia de computadoras personales con una capacidad de cómputo numérico suficiente como para ser consideradas útiles en el ámbito del cómputo científico.

Asimismo, la existencia de un sistema operativo sólido, confiable y compatible con el Unix tradicional permitió la traslación transparente a las computadoras personales de conceptos y herramientas ya bien conocidos e implementados en otro tipo de equipos; sin duda, el hecho de que Linux es gratuito, también fue un factor decisivo en el éxito del proyecto Beowulf.

Finalmente, la estandarización de las prácticas comunes de programación paralela mediante el surgimiento del estándar MPI (Message Passing Interface) y la popularización de la biblioteca PVM (Parallel Virtual Machine) proporcionaron las herramientas necesarias para la construcción de programas paralelos en computadoras como Beowulf; nuevamente, el hecho de que existieran implementaciones gratuitas tanto de MPI como de PVM, representaron un factor decisivo en la popularización de los clusters.

Evolución

Como se mencionó, en 1994 se presentó Beowulf, el primer cluster ampliamente conocido por la comunidad de cómputo científico. Beowulf fue una máquina construida a partir de 16 computadoras personales con procesadores Intel DX4 (486) a 200 MHz, conectadas mediante un switch ethernet con un ancho de banda de 10 Mbps (millones de bits por segundo); tenía un rendimiento teórico de 3.2 Gflop/s (miles de millones de operaciones aritméticas por segundo) y fue utilizada como una “computadora paralela personal”; el sistema operativo se instalaba manualmente en cada máquina y el usuario debía contar con experiencia en el uso de herramientas para iniciar procesos en paralelo.

El siguiente cluster importante fue Avalon, construido en el Laboratorio Nacional de Los Alamos, en los años 1997-98; fue el primero en entrar a la famosa lista de las 500 computadoras más rápidas del mundo (http://www.top500.org) donde ocupó el lugar 315 de la lista en el primer semestre de 1998, hecho de gran importancia, pues comprobó que los clusters, además de ser baratos, podían competir en rendimiento, por lo menos en algunas aplicaciones, con las computadoras paralelas de los fabricantes más reconocidos del mundo.

En la etapa inicial de Avalon se conectaron 70 computadoras a través de un switch fast ethernet (100 Mbps), cada una con un procesador Alpha a 533 MHz, 128 MBytes de RAM y 3.2 GBytes de disco duro (casi 9 GBytes de RAM y más de 200 GBytes de almacenamiento en total). En la segunda etapa, Avalon creció a 140 procesadores y llegó a ocupar el lugar 113 en el Top500 durante el segundo semestre de 1998.

Con el Cplant (Computational plant), construido en el Laboratorio Nacional Sandia, se dio un paso importante en la evolución de los clusters. Cplant no es solamente un tipo de máquina paralela, sino todo un proyecto que contempla la manera en que un equipo de esta naturaleza puede crecer y renovarse de manera continua. La primera versión del Cplant, que entró al Top500 (en el primer semestre de 1999), contaba con 150 procesadores Alpha conectados a través de un switch myrinet; sin embargo, el paso importante se dio en el segundo semestre de ese mismo año cuando Cplant pasó de 150 a 580 procesadores, para ocupar el lugar 44 del Top500.

Para utilizar de forma eficiente un número tan grande de procesadores, en este sistema se llevó a cabo un diseño mucho más sofisticado, organizando sus componentes en dominios, cada uno de los cuales tenía una función específica (login, procesamiento, almacenamiento, etc.), a la vez que se adaptaron sistemas de administración de recursos propios de otras máquinas masivamente paralelas, como la Intel Paragon. Durante los últimos años, Cplant ha crecido hasta los 1590 procesadores.

Otro cluster relevante es Score, instalado en el Centro de Investigación de Tsukuba, ya que fue el primero con más de 1000 procesadores (1024) lo que lo llevó a ocupar el lugar 36 en el Top500 del primer semestre de 2001.

En la actualidad, el cluster más grande del mundo es el Cluster X, construido en el Tecnológico de Virginia en 2003. Este cluster se compone de 2200 procesadores G5 a 2.0 GHz, conectados a través de dos redes diferentes: infiniband para las comunicaciones entre procesos y Gigabit Ethernet para la administración; esta computadora posee un total de 4 TeraBytes (¡más de cuatro mil GBytes!) de RAM y más de 176 TeraBytes (176 mil Gbytes) de almacenamiento secundario. Es la tercera computadora más rápida del mundo y en el comunicado de prensa de su lanzamiento se enfatiza el hecho de que la instalación de los nodos fue realizada en su totalidad por estudiantes del Tecnológico de Virgina. Hoy por hoy, son más de 30 los clusters que están incluidos en el Top500.

Clusters en la industria

Aunque el uso tradicional de los clusters es el cómputo numérico, este concepto se ha trasladado también a aplicaciones de otro tipo como son servidores de correo electrónico, Web y otros servicios electrónicos similares. Quizá el ejemplo más representativo es el buscador de información google, el cual procesa las peticiones de los usuarios a través de un cluster de miles de procesadores.

Clusters en México y en la UNAM

Alan Aspuru (Fac. de Química, UNAM), Luis Aguilar (Inst. de Astronomía, UNAM) y Alberto Vela (CINVESTAV) iniciaron de forma individual los primeros proyectos de clusters en México, a finales de la década de los 90.

En la UNAM, existen actualmente diversos clusters en diferentes dependencias e institutos de investigación y uno de los más grandes es Mixbaal, instalado en la Dirección General de Servicios de Cómputo Académico, el cual tiene 48 procesadores, 24 Gbytes de RAM y 600 Gbytes de almacenamiento.

Posee, además, un sistema de archivos paralelo que puede incrementar hasta en seis veces el ancho de banda de lectura/escritura de archivos; un sistema de calendarización de carga que permite a varios usuarios compartir los recursos del cluster, y bibliotecas numéricas y de programación paralela. En Mixbaal se llevan a cabo simulaciones correspondientes a investigaciones en astronomía, química y genómica, entre otras.

Además del Mixbaal de la DGSCA, en la UNAM existen clusters dedicados a la investigación científica en los Institutos de Astronomía, Física, Investigaciones de Materiales y Matemáticas Aplicadas y Sistemas, por mencionar algunos; estos clusters están basados en modelos alternativos al Beowulf, por ejemplo, Brodix es un cluster del Instituto de Física que está basado en el modelo mosix, el cual permite distribuir de manera automática un conjunto de procesos seriales entre varias computadoras.

Conclusiones

Es indudable que los clusters pueden ser una herramienta muy valiosa para diversos trabajos de investigación que requieren mucha capacidad de cómputo.

El proyecto Beowulf disparó el interés en los clusters de forma relevante pues la presencia de este tipo de computadoras en el Top500 pasó de 0 a 30 en sólo cuatro años. No menos importante, Beowulf mostró la manera en que entidades pequeñas podían hacerse de una máquina paralela, ya fuera para fines de investigación y educación en cómputo o para la realización de simulaciones numéricas.

La investigación en clusters ha sido tal, que hoy en día pueden competir con las máquinas más grandes del mundo, aunque es importante señalar que todavía tienen algunas desventajas frente a las computadoras paralelas comerciales; una de las principales es el hardware y software especializado con que cuentan estas últimas para proporcionar a la computadora paralalela una “imagen única del sistema”, lo que facilita tanto la administración como la utilización del equipo.

Para mayor información:

http://clusters.unam.mx

http://www.beowulf.org

http://cnls.lanl.gov/avalon

http://www.cs.sandia.gov/cplant

http://computing.vt.edu/research.computing/terascale

http://www.super.unam.mx/mixbaal/index.php

http://www.super.unam.mx/clusters/index.php

Inicio | Contacto |