Sei sulla pagina 1di 9

!

Caracterizacin de un sistema multicluster HPC basado en un


middleware de clusters de estaciones de trabajo
1

A. Rodrguez-Len , Marco A. Romo-Medina , G. Ovando-Chaco , Pedro Moreno-Bernal


Instituto Tecnologico de Veracruz Calzada Miguel Angel de Quevedo 2779, Veracruz, Mexico.
2
Posgrado en Ingeniera y Ciencias Aplicadas UAEM. Av. Universidad 1001, Cuernavaca, Morelos.
1

*{arleon, romo}@itver.edu.mx, ovachag@hotmail.com, pmoreno@uaem.mx


rea de participacin: Sistemas Computacionales.

Resumen
En la actualidad las plataformas que dan soporte al cmputo intensivo se han visto superadas por la
complejidad de los problemas que en ellas corren, esto quiere decir que en muchas ocasiones no alcanzan a
cubrir todo el poder de computo que los problemas requieren.
Una solucin que se haba venido utilizando es la tecnologa Grid, sin embargo la utilizacin de esta
tecnologa necesita una infraestructura (hardware y software) ms compleja que la de computacin de alto
desempeo (HPC). Otra limitante en esta tecnologa es que no se pueden ejecutar programas paralelos
multisites. En el presente artculo se muestra una alternativa que puede resolver estos problemas y la llamamos
MulticlusterHPC, esta alternativa permite la ejecucin de programas paralelos multisite sin la limitacin de la
grid. Esto se logra con la unin de varias Clusters cada uno con su respectivo middleware unidos por una VPN.
Palabras clave: Grid, Programas paralelos multisites, HPC.

Abstract
Introduccin
Hablar de cmputo intensivo es hablar de Supercomputadoras, Clusters y Grids. En los inicios del computo
intensivo la nica manera de obtener gran capacidad de poder de computo era mediante las
Supercomputadoras, las cuales son el tipo de computadoras ms rpidas y potentes que existen en un lapso de
tiempo determinado, teniendo como principal caracterstica que pueden procesar enormes cantidades de
informacin en poco tiempo [TR09].
Una evolucin natural de las supercomputadoras se dio con los Clusters los cuales segn [JD04] se definen
como un conjunto de computadoras (personales o servidores) interconectadas por una red de alta velocidad y
software especializado (Middleware), que funcionan como si fuera una sola supercomputadora. Los Clusters se
han convertido en el sustituto de las supercomputadoras, ya que alcanzan el mismo poder de computo pero a
costos mucho ms bajos y con la ventaja adicional de una escalabilidad progresiva. Existen 3 diferentes tipos
de Cluster segn el servicio que prestan:
Cluster de Alto Rendimiento (HPC).
Cluster de Alta Disponibilidad (HA).
Cluster de Alta Productividad (HTC).
La Computacin Grid es el siguiente nivel de tecnologa de uso de recursos distribuidos. Una Grid es la
tecnologa que permite utilizar diferentes recursos como lo son computo (supercomputadoras y Cluster),
almacenamiento (BD y RAIDS) y aplicaciones especificas, que no estn centralizadas geogrficamente [JD04].
Sin embargo la utilizacin de una Grid conlleva una serie de conocimientos adicionales para su administracin
as como su utilizacin, lo que ha creado cierto conflicto con algunos usuarios ya que, tienen que prestar un

poco ms de tiempo para poder realizar sus pruebas en la infraestructura Grid, en vez de dedicar ese tiempo
para la solucin de los problemas de sus proyectos.

Problemtica.
El uso de clusters para cmputo intensivo y paralelo ha ido en crecimiento en los ltimos aos. En la actualidad
hay una gran cantidad de clusters de produccin en los que corre software paralelo. Al hablar de clusters
paralelos no se puede dejar de mencionar el modelo de programacin por pasos de mensajes, ya que estas dos
tecnologas van de la mano.
Dentro de las bibliotecas de paso de mensajes ms populares se encuentran PVM (Parallel Virtual
Machine) y MPI (Message Passing Interface), esta ltima se convirti rpidamente en uno estndares para el
desarrollo y ejecucin de programas paralelos. El xito inicial de esta biblioteca se debe en gran medida a su
versin libre, en dos implementaciones: MPICH[Mpich14] y OPENMPI[OpenMPI14] (antes LAM MPI).
Un factor importante tambien es la creacin y fortalecimiento de una infraestructura de red de datos de alta
velocidad para cmputo intensivo, que involucra la formacin de recursos humanos altamente capacitados.

Estado del arte


Haciendo una revisin de los trabajos relacionados con la problemtica planteada, se encontraron que
bsicamente se cuenta a 2 soluciones. Una de ellas nos lleva por el uso de la tecnologa grid y la otra por el uso
de las capacidades ampliadas de los cluster a travs de multicluster.
Grid.
Para [TR09] Grid se define como es un tipo de sistema paralelo y distribuido geogrficamente que
permite la comparticin de recursos de forma dinmica en tiempo de ejecucin en funcin de su disponibilidad,
capacidad, rendimiento, costo y usuarios con requerimientos de calidad para sus servicios
La computacin Grid permite compartir recursos sobre una red de sistemas heterogneos utilizando
estndares abiertos, con el fin de optimizar los resultados, esto significa que se cuenta con mayor poder de
CPU, almacenamiento, memoria y recursos de red, con la finalidad de que el usuario pueda acceder cuando
fuese necesario sin importar la ubicacin geogrfica en la que se encuentre.
Las grid se usan principalmente para servicios y minera de datos completar .
Multicluster
Para [FL07] en general, las bibliotecas de paso de mensajes resuelven bsicamente dos problemas
tcnicos para poder ser utilizadas:

Identificacin nica de procesos. Los programas paralelos son un conjunto de procesos que se

pueden identificar de manera univoca, independientemente de que se ejecuten en un ambiente de


memoria compartida o distribuida.

Transferencia de datos entre los procesos. Se reconoce que las primitivas bsica de comunicacin
son del tipo punto a punto (send() y receive()) entre dos procesos, tambin se suelen incluir otras
variantes como las comunicaciones colectivas (del tipo de broadcast(), por ejemplo).
En este sentido, en cualquier plataforma (hardware) que pueda resolver estos problemas se podra utilizar
una implementacin de paso de mensajes como lo es MPI. Los clusters han adoptado de manera satisfactoria

estas libreras ya que estos dos problemas lo resuelven de una manera sencilla. Adicionalmente, todo lo
relacionado con la transferencia de datos y comunicaciones lo resuelve el middleware de los cluster con
protocolos estndares como lo es TCP/IP.
Lo antes mencionado se complica si se tiene la idea de ejecutar programas paralelos en ms de un Cluster
o lo que es lo mismo ejecucin MULTICLUSTERS. Algunos problemas que se tienen al ejecutar programas
paralelos MULTICLUSTERS son los siguientes:

No se puede asumir que las todas comunicaciones punto a punto tiene el mismo rendimiento,
puesto que un proceso puede enviar datos a dos procesos, uno ubicado en un nodo dentro del
mismo Cluster y el otro en un nodo de un Cluster remoto.

La heterogeneidad de las maquinas que componen a los diferentes Clusters, la asimetra de las
unidades de procesamiento en un mismo Cluster es muy comn, por lo tanto es tambin probable
que esta se de en los nodos del Cluster remoto.

De acuerdo a [FL07] en los primeros esfuerzos por realizar herramientas o bibliotecas que pudieran
llevar a cabo la ejecucin de programas paralelos MULTICLUSTER se puede mencionar a MagPIe del
proyecto albatros[AL11], esta biblioteca fue orientada a la optimizacin de las comunicaciones colectivas de
MPI en redes WAN, algunas otras bibliotecas lo fueron MPI-Connect, que despus fue remplazada por PVMPI y
por ultimo IMPI, todas estas bibliotecas fueron propuestas a fines de la dcada de los 90s.
Comparativo

co
los
ral
e

Regular
Buena

so
ce
Ac

ram
as
Pr
og

tra
c
mi
nis
Ad

Buena
Buena

Pa

in

el
dd
rid
a
gu

Buena
Regular

nM
PI.

lew
are
lM
idd
de

Mi
dd

tra
d
dm
ini
s
sA

Buena
Mala

Se

Buena
Buena

M
ltip
le

Buena
Buena

lew
are

ore

s
rtid
o
om
pa
Re

cu

ge
ter
o

rso

ne

sC

ida

nG
eo
trib
u

Buena
Buena

He

Buena
Regular

Dis

GRID
MULTICLUTER

ci

ilid
a
lab
Es

ca

CA

RA

CT

ER

IST

ICA

gr

fic
a

En la tabla 1 comparativa se ponen en evidencia cada una de las caractersticas entre la computacin Grid y
Multicluster HPC.

Buena
Buena

Tabla 1. Comparativo Grid vs Multicluster HPC

En la tabla 1 se muestra en comparativo entre las dos tecnologas, es evidente que la tecnologa Grid
es mucho ms robusta que el MultiCluster, sin embargo esta robustez conlleva la implementacin de ms
recursos que el multiCluster y sin embargo aun con todo las caractersticas en las que supera la computacin
Grid al MultiCluster esta no puede realizar la ejecucin de programas paralelos multiClusters.
La primer caracterstica que se compara en la Tabla 1 es la escalabilidad en la computacin Grid es
muy buena ya que las diferentes plataformas existentes en la actualidad tiene desde unos cuantos cientos de
usuarios hasta los millares; en multiCluster esta caracterstica es un poco limitada ya que esto depende de la

tecnologa que se utilizo para la interconexin de los Clusters que conforman la plataforma en su totalidad, la
mas utiliza es OpenVPN y en su versin libre se ve limitada a unos cuantos usuarios.
La segunda caracterstica que se comparo fue la distribucin geogrfica, y ambas tecnologas tienen
una buena distribucin ya que ninguna est limitada, en el caso de la Grid un site puede estar en el continente
europeo y otro en Latinoamrica y no existe ningn problema entre estos. En el caso de multiCluster, de igual
manera pueden estar separados los Cluster y no presentan ningn inconveniente.
La heterogeneidad es la tercera caracterstica que se comparo en la tabla 1, donde no se encuentra
ningn problema al respecto ya que ambas aprovechan los recursos de diferentes arquitecturas, no siendo esto
factor que impida su buen funcionamiento.
Con respecto a la comparticin de recurso en ambas tecnologas es muy buena, ya que las dos
optimizan al mximo la disponibilidad de sus recursos entre sus usuarios.
La siguiente caracterstica que se compar fue la de mltiple administracin. En este aspecto la Grid
cuenta con un muy buen esquema de administracin con tres diferentes niveles de administracin (local,
regional y global).En el caso de multiCluster esta tarea solo se lleva a cabo por una sola entidad centralizada
que administra todo.
Al hablar de Middleware, que es la siguiente caracterstica que se comparo, es importante sealar que
cada una de las tecnologas usa diferentes tipos de Middleware, En el cado de la computacin Grid el
Middleware es el encargado de la mayor parte de la administracin de la Grid. En cambio en multiCluster el
Middleware es independiente en cada Cluster y la parte de la comunicacin entre los Cluster es manejada por
la VPN. La comparacin entre los Middlewares se realizo en dos mbitos, uno comparando la seguridad y otro
la administracin, en el primero (seguridad) el middleware Grid supera al de multiCluster ya que contiene fuertes
mecanismos de seguridad propios de la Grid. En el segundo (administracin), los Middlewares son muy
buenos puesto que cuentan con los mecanismos necesarios como lo son la administracin de usuarios
permisos y dems, pertinentes de cada tecnologa.
La penltima caracterstica que se compar entre las tecnologas fue la ejecucin de programas
paralelos con paso de mensajes. En esta la computacin Grid se ve superada por multiCluster ya que aun que
en una Grid se puede ejecutar un programa paralelo, esta se limita solo a un Site, esto quiere decir que si un
programa quiere correr sus procesos en mas de un Site al mismo tiempo no es posible hacerlo, en cambio, en
multiCluster no existe esta limitacin.
La ltima caracterstica que se compar fue la accesibilidad. En esta las dos tecnologas garantizan de
manera adecuada el acceso a su infraestructura a todos los usuarios adecuadamente identificados con
certificados propios de una entidad certificadora.

Solucin
La idea central de este trabajo es tener la posibilidad de ejecutar programas paralelos en ms de un Cluster, sin
la necesidad de instalar toda una infraestructura (Middleware) de computacin Grid.
Es conveniente mantener la propuesta de cmputo paralelo MULTICLUSTER separado de la de Grid
Computing, al menos por dos razones:

Comparticin de recursos: La computacin Grid est propuesta como una solucin integral para
compartir recursos de cmputo y almacenamiento a gran escala de distribucin y capacidad.

Administracin y seguridad de la infraestructura Grid: La computacin Grid tiene mas de lo


necesario que el cmputo paralelo MULTICLUSTER, ya que la computacin Grid implementa un

sistema muy elaborado para proveer la adaptacin de los diferentes sistemas de seguridad que se
utilizan localmente por cada institucin conectada a la Grid.
Segn [FL07] desde hace algn tiempo, se han estudiado caractersticas especficas de cmputo
paralelo multiClusters tales como el problema generado por las interconexiones no dedicadas y los
problemas de seguridad involucrados. A modo de resumen, en este trabajo previo se reportan algunos
detalles tcnicos importantes a tener en cuenta para cmputo paralelo multiClusters:

En los ambientes no dedicados, muchos de los problemas de disponibilidad de los nodos de los
Clusters son propios de la falta de control sobre los mismos, no de las comunicaciones o
estabilidad de los mismos nodos.

Aunque la interconexin de los Clusters no es exclusiva, siempre hay conectividad entre los
Clusters a utilizar, salvo algunas excepciones poco frecuentes. Esto se debe a que la interconexin
se encuentra mezclada con el trfico de Internet, por lo que se debe procurar mantener una buena
administracin de la red de comunicaciones, independientemente de la utilizacin de cmputo
paralelo multiClusters.

El rendimiento de las comunicaciones entre los Clusters no es constante dado que no es dedicado,
pero en general es muy cercano al mximo absoluto, al menos para transferencias de pocos datos.
Como es de esperar, el rendimiento para las comunicaciones multiClusters flucta dependiendo de
das y horarios.

Los mecanismos bsicos de seguridad que se imponen en las instituciones (y que son de uso
comn en casi todas las instalaciones de computadoras) normalmente impiden la utilizacin directa
de implementaciones de MPI como MPICH y OPENMPI. Estas implementaciones imponen un
patrn de trfico TCP/IP que normalmente es cancelado por los firewalls o mecanismos de
seguridad de las instituciones.

Despus de analizar todas las limitaciones que presenta la ejecucin de programas paralelos multiClusters
se estudi una posible solucin, la cual provee las herramientas necesarias para atacar cada uno de los puntos
antes expuestos.
Para [FL07] una solucin es la utilizacin de una VPN, que desde el punto de vista tcnico, todo lo que
necesita MPI para ser utilizado en un Cluster es que tenga conectividad TCP/IP en una red local y es
precisamente lo que una VPN provee en cualquiera de sus versiones e implementaciones. Sin lugar a duda, se
tienen algunos costos por la implementacin de una VPN para cmputo paralelo multiClusters, los cuales son:

Se debe de instalar y configurar el software de la implementacin VPN que se haya elegido, en


nuestro caso OpenVPN.

Se debe de tomar en cuenta que se afectar los controles de seguridad (Firewalls) implementados
en las instituciones donde se encuentren ubicados los Clusters.

En el tiempo de ejecucin existe una sobrecarga de procesamiento y en el trfico de datos por el


entubamiento (encriptacin, enrutamiento y desencriptacin) de las comunicaciones sobre el
esquema de cliente/servidor atreves de un puerto bien conocido.

En el reporte que presenta [FL07] menciona que no todas las implementaciones de MPI se pueden
ejecutar en una VPN, por lo que optan por utilizar MPICH ya que no present ninguna complicacin. Adicional a
lo anterior se ha comprobado que MPICH2 soporta sin problemas arquitecturas heterogneas multiCluster, es
decir, arquitecturas de 32 y 64 bits. Este es un punto muy importante a considerar para los proyectos que
desarrollamos.
En las conclusiones descritas por [FL07] indica que se experiment en un escenario en el cual se
conectaba dos Cluster mediante una VPN, ejecutando un programa paralelo con procesos que se ejecutaban

en los dos Clusters al mismo tiempo, lo anterior comprueba que si es posible la ejecucin de programas
multiClusters sin la necesidad de la instalacin de una infraestructura (Middleware) como la que proporciona la
computacin Grid.

Figura 1. Diagrama estructural inicial del MultiCluster

En este proyecto en especifico el middleware que se est utilizando es Rocks el cual se define como una
coleccin de software libre para la administracin de Clusters HPC. El objetivo principal de Diseo de Rocks es
hacer la instalacin del Cluster tan fcil como sea posible. Sin lugar a dudas, se ha recorrido un largo camino
hacia el logro de este objetivo. Para lograr esto, la instalacin por defecto hace una serie de suposiciones
razonables acerca de lo que el software debe incluir y cmo el Cluster debe estar configurado. Sin embargo,
con un poco ms de trabajo, es posible personalizar muchos aspectos de Rocks. [JD04]
Otra tecnologa empleada en este proyecto es una VPN. La VPN crea una red privada sobre una red
pblica (usualmente Internet ) para conectar sitios remotos o usuarios entre s. Una VPN usa conexiones
"virtuales" enrutadas a travs de Internet desde una red privada hacia un sitio pblico externo. Mediante el uso
de una VPN, se puede garantizar la seguridad entre los nodos interconectados. [CI08] La implementacin de
esta tecnologa utilizada fue OpenVPN la cual brinda una serie de caractersticas como son:

Compresin en tiempo real.

Redes de tneles a travs de NAT.

Utilizar toda la encriptacin, autenticacin y certificacin de las caractersticas de la biblioteca OpenSSL


para proteger el trfico de red privada, ya que transita por Internet.

Puede crear un tnel de cualquier subred IP virtuales o adaptador ethernet travs de un nico puerto
UDP o TCP.

Adicionalmente a Rocks y OpenVPN se utiliza Anaconda el cual es el programa de instalacin de Red Hat.
Est escrito en python con algunos mdulos personalizados en C. Anaconda est organizado en etapas, la
primera etapa es un instalador que carga los mdulos del kernel necesarios, posteriormente anaconda utiliza
un mecanismo de auto-instalacin, que permite instalaciones masivas a travs del archivo de configuracin
kickstart[DS04],. La instalacin con kickstart se puede hacer usando un CD-ROM, disco duro o en una red
mediante FTP, NFS o HTTP.[DS04] estas dos herramientas son utilizadas para la automatizacin de la
instalacin de los elementos del MultiCluster.

Anlisis de los resultados.


El integrar una distribucin de Middleware para Cluster base, (en nuestro caso Rocks) con la tecnologa VPN
(OpenVPN) permite obtenerte una herramienta para la ejecucin de programas paralelos multisites,
aprovechando al mximo cada una de las caractersticas de las dos tecnologas fusionadas y dejando de lado
las complicaciones que conlleva la utilizacin de la computacin Grid, tanto las de infraestructura como las
administrativas.
La implementacin se puso a prueba en dos clusters distribuidos geogrficamente, uno se encuentra en
el ITVER en el estado de Veracruz y el otro en el Centro de Investigacin en Ingeniera y Ciencias Aplicadas de
la Universidad Autnoma del Estado de Morelos, en Cuernavaca, Morelos, Mxico. En las primeras pruebas se
realizaron las siguientes tareas: instalacin de la VPN, e instalacin y configuracin de los paquetes
adicionales de forma manual (sin la utilizacin de Anaconda y kickstar).
Actualmente se estn realizando las modificaciones en el instalador de rocks, sobre anaconda, para
poder llevar a cabo todo el proceso de forma automatizada. Esto tiene como finalidad que los administradores
de multiCluster puedan realizar instalaciones de manera sencilla, sin tener que requerir conocimientos extras
sobre Sistemas Operativos y Redes para llevar a cabo la instalacin y configuracin.

Trabajo a futuro
Tener estructurada la implementacin al 100 %, esto conlleva desde la realizacin de la VPN, su configuracin
hasta que realice el proceso de manera automatizado.
Se pretende ir agregando servicios los cuales vayan simplificando cada vez ms la administracin de
MULTICLUSTERS HPC dentro de los cuales se incluyen el seccionamiento de las red privada, el agregar
nuevos miembros a la VPN, as como ir automatizando todo el proceso.
Otro punto que se pretende en trabajos a futuro es la de la evaluacin en conjunto de la
implementacin, es decir, poner en marcha la implementacin e ir observando los procesos que realiza desde la
instalacin de los paquetes adicionales, hasta comprobar que haya realizado de manera correcta cada una de
las tareas asignadas, as como tambin el tiempo que lleve realizar la instalacin por completo.

Conclusiones

Contar con un MULTICLUSTER HPC permite realizar la ejecucin de programas paralelos multisite, sin
necesidad de la instalacin de toda la infraestructura como ocurrira en la computacin Grid. El usar un
middleware popular como lo es Rocks-Cluster modificado y con servicios adicionales facilita la instalacin ya
que no se requiere conocimientos adicionales para su administracin y ejecucin de programas paralelos en
varias plataformas sin intervencin del usuario.

Referencias
[AL11] Albatross.(2011). Wide AreaCluster Computing Homepage. Recuperado mayo del 2014 de
http://www.cs.vu.nl/albatross/.
[FL07] Fernando, L.R., Antonio, Q., Armando, G., Fernando, G. T.(2007). Cmputo paralelo interCluster.
[JD04] Joseph, D. (2004), High Performance Linux Clusterswhitc OSCAR, Rocks, openMosix and MPI.
UnitedStates of America: OREILLY.
[MPICH14] MPICH.
Frequently Asked Questions. Homepage.
http://wiki.mpich.org/mpich/index.php/Frequently_Asked_Questions

Recuperado

Mayo

2014

de

[OpenMPI14] OpenMPI. General information about the Open MPI Project. Homepage. Recuperados Mayo 2014.
de https://www.open-mpi.org/faq/?category=general
[TR09] Trobec, R. , Vajtersic, M. , Zinterhof, P.(2009), Parallel Computing Numerics, Applications and
Trends.London: Springer.

Potrebbero piacerti anche