Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Identificacin nica de procesos. Los programas paralelos son un conjunto de procesos que se
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
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.
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 tomar en cuenta que se afectar los controles de seguridad (Firewalls) implementados
en las instituciones donde se encuentren ubicados los Clusters.
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.
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:
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.
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.