miércoles, 14 de mayo de 2008

Implementación cluster de alto rendimiento para DIMAR-CIOH


El año pasado se presentó la oportunidad estelar de poder ensamblar y configurar un supercomputador para el Centro de Investigaciones Oceanográficas e Hidrográficas (CIOH) basado en cluster de alto rendimiento que permitiera avanzar y darle a la institución en el tema de modelación capacidades de computo nunca antes obtenidas que nos arrojaran resultados con alta resolución y calidad a la mayor brevedad.

Debido a la necesidad urgente de mejorar las capacidades de cómputo actuales en el CIOH, y al ser propuesto su implementación dentro del proyecto SPOA como novedad tecnológica, el pasado mes de junio del año 2007 se implementó por primera vez un supercomputador escalable de alto rendimiento diseñado a partir de nodos de computadoras interconectados entre sí con el fin de utilizar sus procesadores y memoria en tareas comunes y distribuidas entre ellos. De esta manera colaborativa y utilizando modelos numéricos adaptados a esa tecnología se alcanzaban rendimientos de computo realmente importantes frente a la ejecución serializada tradicional de un proceso, que lógicamente dependería acorde a las características técnicas del procesador o en su defecto el conjunto de procesadores dispuestos para tal proceso.

Dos años atrás, el Area de Oceanografía poseía diversos modelos numéricos con distintos fines cuyos resultados se obtenían en tiempos muy largos o extensos y que significaban demora en la entrega de sus productos o en caso tal que servían para cumplir el objetivo principal de la “conservación y preservación de la vida humana en el mar” y cuyos resultados carecían de eficiencia en su obtención al tener carácter urgente. De esta necesidad se concibe la idea de desarrollar un sistema computacional de altas prestaciones y que fuese escalable para poder facilitar mejoras en el tiempo y poder obtener capacidades de calculo acorde a las necesidades requeridas.

El cluster de alto rendimiento CIOH está basado en el proyecto Beowulf [1], el cual fue presentado por el Dr. Donald Becker en 1994 trabajando para CESDIS [2] (Entidad adscrita a la NASA) como un proyecto de investigación utilizando computadores comunes a bajo costo (COTS) con el auspicio gubernamental y que fuesen una alternativa viable frente a los computadores propietarios y costosos, de alto rendimiento de esa época.

Características Técnicas

El sistema consta actualmente de cinco (5) nodos HP DL360G5 con procesadores Intel Xeon Quadcore corriendo cada uno a 1.8 Gigahertz con un rendimiento total de cálculo aproximado de 57 GigaFLOPS acorde al resultado obtenido por la prueba HPL[3] o “High Performance Linpack, 20 Gigabytes de memoria en el conjunto de nodos. La estructura básicamente consiste en un nodo principal o master quien contiene el sistema operativo de código abierto “GNU/Linux”, distribución Gentoo [4] para arquitectura x86_64. Los demás nodos acceden por red al sistema operativo central servido por el nodo master quien posee (4) cuatro discos duros de 146GB unidos lógicamente bajo configuración RAID en nivel 1+0 al cual cada uno de ellos acceden a ellos gracias a la implementación del esquema de nodos diskless [5] o sin disco haciéndolo más fácil de administrar y manipular. En almacenamiento se tiene un servidor de arreglo de discos MSA60 con dos discos de 300GB bajo RAID 0, pero espera migrarse en la proxima actualización a nivel de RAID5 con redundancia distribuida. . La interconexión es llevada a cabo a través de dos (2) switches 3Com Gigabit Ethernet los cuales manejan dos tráficos, uno administrativo y el otro sólo para el intercambio de mensajes MPI entre los nodos.


Software implementado:

Modelos numéricos (hasta este momento): NedWAM_III, SWAN, WRF.
compiladores: GCC 4.x [6], GCC 3.x, Portland Group Inc. (PGI 7.1.5) ambos con soporte C,C++,Fortran 77 y 90,
Librería distribuida MPICH2 [7], pdsh [8] el cual permite la ejecución de comandos shell en paralelo. Sistema de archivos distribuido, escalable y con redundancia PVFSv2 [9] para distribuir el almacenamiento de los discos e integrarlo con el esquema de SAN1 HP próxima a implementarse.
Monitoreo del sistema con Ganglia [10]
Lenguaje Scripting: PERL 5.8 [11], Python 2.5.x [12], Ruby 1.8.x [13]

Mejoras en un futuro:

Se proyecta que más adelante se cuenten con mejores capacidades de cómputo entre las cuales se actualicen los switches Gigabit Ethernet por interconexiones Infiniband [14] con una latencia muy inferior a la ofrecida por la tecnología Ethernet, y acorde a las necesidades presentadas actualizar y/o incrementar el conjunto de nodos. Igualmente se espera tener la base para incursionar en computación Grid [15], como la evolución de los clusters, pero con características lógicas y tecnológicas mas robustas y actualizadas.

La implementación de este sistema computacional con herramientas basadas en su gran mayoría en software libre, ha colocado al CIOH a la vanguardia en los avances tecnológicos que permitan un mejor aprovechamiento de los recursos disponibles para el procesamiento masivo de información en alta calidad y que conlleven a mejorar la calidad en los productos ofrecidos actualmente y que optimicen en el tiempo aquellos productos existentes previamente, siendo esta tecnología con características de alto nivel científico e investigativo que servirá no sólo al CIOH sino a otras unidades de la DIMAR u Armada Nacional.

Referencias:

[1] http://www.beowulf.org/overview/index.html
[2]
http://ct.gsfc.nasa.gov/annual.reports/ess97/basic/cesdis.html
[3]
http://www.netlib.org/benchmark/hpl/
[4]
http://www.gentoo.org
[5]
http://www.gentoo.org/doc/en/diskless-howto.xml
[6]
http://gcc.gnu.org/
[7]
http://www.mcs.anl.gov/research/projects/mpich2/
[8]
http://sourceforge.net/projects/pdsh/
[9]
http://www.pvfs.org
[10]
http://ganglia.info
[11]
http://www.perl.org
[12]
http://www.python.org
[13]
http://www.ruby-lang.org
[14]
http://en.wikipedia.org/wiki/Infiniband
[15]
http://es.wikipedia.org/wiki/Grid_computing