Está en la página 1de 13

Clusters y sus Aplicaciones

Yonny Teixeira
Wilsen Hernandez
Julio, 2016.

Universidad de Carabobo.
Facultad de Ciencias y Tecnología.
Departamento de Computación.
Arquitectura del Computador.
2

Introducción

Con el paso de los años el hombre moderno ha encontrado distintas maneras de mejorar el
rendimiento y capacidad de sus creaciones, innovando desde artefactos comunes del hogar
hasta armas de guerra avanzadas. Consecuentemente con los avances científicos el desarrollo
de invenciones viene dado por descubrimientos importantes que den paso a la posterior
fabricación de las mismas y estos hallazgos se generan gracias a estudios, investigaciones o
creativas ideas surgidas desde laboratorios pero en ocasiones existen ideas que surgieron hace
siglos atrás y que al contextualizarla en algún área tecnológica específica puede conllevar a
tener una nueva perspectiva que represente el inicio de una técnica para el progreso de estas
invenciones.

La frase: “Divide y Vencerás” es una antigua frase que ha sido puesta en práctica a través del
tiempo como una táctica de guerra, en sociología y política, o como un método para resolver
problemas buscando solucionar partes pequeñas de los mismos como principio para luego
pasar a partes más complejas. Este método ha sido utilizado en el mundo de la computación
de distintas maneras, incluidos están los Clusters. Están conformados de tal manera que en un
grupo de computadores interconectados se les asigna una tarea la cual es ejecutada
dividiéndola en partes que se procesan y resuelven de forma paralela, lo cual mejora en gran
manera el rendimiento que podría tener un solo computador. A continuación se presenta
información más detallada acerca de los clusters y sus aplicaciones.
3

Los Supercomputadores
Las computadoras pueden definirse de forma simple y sencilla como una máquina que
recibe datos y los convierte o transforma en información con una mayor complejidad o
utilidad para el usuario, internamente se dan otras series de procesos, destacándose la entrada/
salida de datos, carga de datos en memoria, lectura y escritura en memoria son ejemplos de
las operaciones más básicas y esenciales realizadas por un computador. Estas operaciones
permiten que los programas se ejecuten para hacer distintas tareas del sistema, correr
software de aplicación, entre otros, de forma secuencial, siendo este método es uno de los
aspectos resaltantes al momento de diferenciar un computador de un supercomputador, ya
que el último trabaja con un método distinto basado en paralelismo.
Los Supercomputadores son diseñados para trabajar en ciertos tipos de problemas
sobre los cuales su primera restricción es velocidad de cálculo. Conducen grandes cantidades
de cálculos complejos y muy rápidos en datos almacenados en memoria. Estos computadores
son construidos con el propósito de correr simulaciones complejas.
Impulsan los límites de velocidad de cómputo, descubriendo lo que es posible para un
computador hacer. Son los exploradores del mundo de la computación.

¿Cómo se mide su velocidad?

Al mirar las especificaciones de computadores ordinarios notaras que en muchos


casos su rendimiento es medido en MIPS (millones de instrucciones por segundo). Es fácil
comparar dos computadores al comparar los MIPS que cada una puede manejar, o incluso la
velocidad de su procesador, que es expresada en gigahertz.
Los supercomputadores se miden en una forma muy distinta. Ya que como son
utilizados para hacer calculos cientificos, se miden a por cuantas operaciones de punto
flotante por segundo (FLOPS ― Floating Point Operations per Second) pueden hacer, el cual
es una medida más acorde a lo que están realmente pensadas para hacer. Desde que las
Supercomputadoras fueron desarrolladas por primera vez, su rendimiento ha sido medido en
mayores cantidades de FLOPS.

Unidad FLOPS Forma Potencia Década


4

FLOPS 100 FLOPS 10² FLOPS ~1940

KFLOPS (kilo) 1.000 FLOPS 10³ FLOPS ~1950

MFLOPS (mega) 1.000.000 FLOPS 10⁶ FLOPS ~1960

GFLOPS (giga) 1.000.000.000 FLOPS 10⁹ FLOPS ~1980

TFLOPS (tera) 1.000.000.000.000 FLOPS 10¹² FLOPS ~1990

PFLOPS (penta) 1.000.000.000.000.000 FLOPS 10¹⁵ FLOPS ~2010


Tabla comparativa del aumento en capacidad de FLOPS

Taxonomía de Flynn

Michael J. Flynn es un ingeniero graduado en electrónica y ciencias de la


computación reconocido por ser un pionero en la clasificación de computadoras debido a que
creo uno de estos primeros sistemas de clasificación además de contribuir también con la
creación sistemas de clasificación de programas secuenciales y paralelos. La taxonomía de
flynn está basada en dos conceptos: corrientes de instrucciones y corrientes de datos.
Las cuatro clasificaciones definidas por flynn se basan en el número de instrucciones
concurrentes (control) y en los flujos de datos disponibles en la arquitectura.

Flujo de Instrucciones Flujo de Datos Nombre Ejemplos

1 1 SISD Maquinas clasicas de Von Neumann

1 Múltiple SIMD Supercomputadoras vectoriales,


procesadores de arreglos

Múltiple 1 MISD Presumiblemente ninguna

Múltiple Múltiple MIMD Multiprocesadores

Clusters
Se puede hacer un supercomputador llenando una caja gigante con procesador y
haciendo que cooperen en resolver un problema complejo a través de procesamiento masivo
en paralelo. Alternativamente, puedes comprar muchos computadores, ponerlos en la misma
habitación e interconectarlos usando una rápida red de área local (LAN) para que funcionen
de forma similar. Ese tipo de supercomputador es llamado un Cluster. Un clúster es un grupo
5
de ordenadores débilmente acoplados que trabajan en estrecha colaboración, de modo que en
algunos aspectos pueden considerarse como un solo equipo. Los clústeres se componen de
varias máquinas independientes conectadas por una red

Relación entre clusters y los computadores más rápidos

Los supercomputadores son quienes definen y superan los límites de la computación


en cada era, a un altísimo costo. Son ellos los empleados para resolver los problemas más
complejos de cada era. Los supercomputadores actuales, serán las computadoras personales
del futuro por así decirlo.
Mientras que los clusters, pueden alcanzar un nivel de procesamiento casi tan alto
como el de un supercomputador, a un más bajo coste. Son empleados para resolver problemas
más comerciales y no tan dificiles, pero si intensivos. Son esos empleados para ofrecernos
servicios en la web o en la red local de una empresa.

TOP 5 EN EL MUNDO (www.top500.org)

En el top 500 de Supercomputadoras, para Junio de 2016 fueron encontrados los


siguientes

Pos. Ubicación Sistema


Global

1 National Supercomputing Sunway TaihuLight - Sunway MPP,


Center in Wuxi. China. Sunway SW26010 260C 1.45GHz,
Sunway.

2 National Supercomputer Tianhe-2 (MilkyWay-2) - TH-IVB-FEP


Center in Guangzhou. Cluster, Intel Xeon E5-2692 12C
China. 2.200GHz, TH Express-2, Intel Xeon Phi
31S1P.

3 DOE/SC/Oak Ridge Titan - Cray XK7 , Opteron 6274 16C


National Laboratory. 2.200GHz, Cray Gemini interconnect,
Estados Unidos. NVIDIA K20x.

4 DOE/NNSA/LLNL Sequoia - BlueGene/Q, Power BQC 16C


Estados Unidos. 1.60 GHz, Custom.

5 RIKEN Advanced Institute K computer, SPARC64 VIIIfx 2.0GHz,


6

for Computational Science Tofu interconnect .


(AICS). Japón.

TOP 5 EN LATINOAMÉRICA (www.top500.org)

Para el listado del top 500 de supercomputadoras, solamente conseguimos 4


pertenecientes a Latinoamérica, y todas ellas ubicadas en Brasil. Esto puede deberse a que el
sitio top500.org solamente indexa equipos ubicados en Mexico y Brasil. Ningún equipo
ubicado en México forma parte del top 500. Buscando más allá del top 500, encontramos en
el top 1000 el siguiente, y quinto, equipo Latinoamericano en el top de supercomputadores:
ubicado esta vez en México.

Pos. Pos. Ubicación Sistema


Global Latam

265 1 Laboratório Nacional de Santos Dumont GPU - Bullx B710,


Computação Científica. Intel Xeon E5-2695v2 12C 2.4GHz,
Brasil. Infiniband FDR, Nvidia K40

323 2 SENAI CIMATEC. Brasil. CIMATEC Yemoja - SGI ICE X, Intel


Xeon E5-2690v2 10C 3GHz, Infiniband
FDR

364 3 Laboratório Nacional de Santos Dumont Hybrid - Bullx B710,


Computação Científica. Intel Xeon E5-2695v2 12C 2.4GHz,
Brasil. Infiniband FDR, Intel Xeon Phi 7120P

433 4 Laboratório Nacional de Santos Dumont CPU - Bullx B71x,


Computação Científica. Intel Xeon E5-2695v2 12C 2.4GHz,
Brasil. Infiniband FDR

517 5 CINVESTAV. ABACUS I - SGI ICE X, Xeon E5-


México. 2697v3 14C 2.6GHz, Infiniband FDR

Concurrencia

Las aplicaciones distribuidas serán utilizadas por un alto número de usuarios por lo
que hay que tener presente los bloqueos de recursos o el uso de CPU, para lograr la máxima
eficiencia.
7
Paralelismo

El paralelismo permite dividir una tarea en partes que pueden ser ejecutadas
independientemente, con lo cual se logra obtener resultados en forma más expedita. El
paralelismo se puede implementar a nivel de hardware y a nivel del software.
A nivel del hardware se implementa mediante el uso de múltiples unidades
funcionales, pipeline, caches, etc. Este paralelismo es básicamente transparente, sin embargo,
conocer cómo opera puede permitirle al usuario optimizar su código de forma de sacarle el
máximo provecho a este paralelismo. Nótese que estas optimizaciones son muy específicas a
la arquitectura de la máquina. El paralelismo de software es aquel en el que dividimos una
tarea en subpartes que serán distribuidas y correrán en distintos procesadores. La labor de
particionamiento puede resultar fácil o ser un verdadero reto.

Computación paralela de memoria compartida y memoria distribuida

Cuando hablamos de paralelismo, y por lo tanto asumimos que tenemos disponibles


múltiples procesadores, existen dos paradigmas de programación fundamentales que están
basados en la visión que los procesos (o tareas) tienen de la memoria. Cuando la memoria es
vista por todos los procesos como un solo bloque y cualquier proceso tiene acceso a cualquier
región de la memoria, hablamos de memoria compartida. En este caso la comunicación entre
los procesos se hace compartiendo datos que están en la memoria. Cuando los procesadores
tienen asociados memorias privadas no accesibles a otros procesadores, se dice que la
memoria es distribuida. La comunicación entre los procesos es a través de mensajes. Las
dos librerías de pase de mensaje más usadas son: MPI (Message Passing Interface) y PVM
(Parallel Virtual Machine). Los clusters de PCs caen en la categoría de máquinas de memoria
distribuida.

Middleware
Durante años, el Middleware ha sido una parte de muy bajo perfil en el mercado del
software. Si la gente pensara acerca del middleware, pensaría que es solo una capa
transparente de pegamento ó la plomería de las aplicaciones distribuidas. A pesar todo, el
Middleware ha crecido gracias al auge de Internet, redes privados y comercio en línea.
Middleware es un término que generalmente se utiliza para nombrar aquellos software
que “unen” programas, normalmente muy complejos y ya existentes. Algunos componentes
8
de software que frecuentemente son conectados con middleware incluye aplicaciones
empresariales y servicios web.
El middleware a veces se sitúa entre el sistema operativo y las aplicaciones en
distintos servidores y simplifica el desarrollo de aplicaciones que necesitan el servicio de
otras aplicaciones. Esto permite a los programadores crear aplicaciones empresariales sin
necesidad de crear nuevas integraciones a medida para cada nueva aplicación.
Middleware provee servicios de paso de mensajes para que diferentes aplicaciones
puedan comunicarse utilizando frameworks como Representational State Transfer (REST) o
JavaScript Object Notation (JSON).

Paso de Mensajes

También denominado middleware orientado a mensajes (MOM), el sistema de


mensajes actúa de intermediario entre los procesos que se comunican. Proceso que se lleva
realiza mediante la emisión al sistema de mensajes, almacenandose en la cola asociada al
receptor para luego ser enviado.

Objetos distribuidos

Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser
sincronizada, sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares
realizados por múltiples clientes en una transacción. Las ventajas son que permiten generar
reflexión y escalabilidad, que opera con múltiples tipos de información y estados y que
soporta procesos múltiples. Las desventajas consisten en obtener la existencia de vínculos
antes de la ejecución y de un código contenedor para algunos sistemas heredados.

Agentes móviles

Programa u objeto transportable. Un agente se lanza desde un ordenador el cual viaja


de forma automática de acuerdo con un itinerario y accede a los recursos o servicios de cada
sistema que visita.
Entre las ventajas en el empleo de agentes móviles tenemos:
● Uso eficiente y económico de los canales de comunicación.
● Permite el uso de dispositivos portátiles de bajo coste.
● Permiten operaciones asíncronas y descentralizadas.
9

Groupware

Se refiere al conjunto de programas informáticos que integran el trabajo en un sólo


proyecto, con muchos usuarios concurrentes, que se encuentran en diversas estaciones de
trabajo, conectadas a través de una red (internet o intranet). El término groupware hace
referencia a los métodos y herramientas de software que facilitan el trabajo en grupo,
mejorando su rendimiento, y contribuyen a que personas que están localizadas en puntos
geográficos diferentes puedan trabajar a la vez, ya sea directamente o de forma anónima, a
través de las redes.

OpenMP

Es una Interfaz de Programación de Aplicaciones (API) para la programación de


multiprocesos de memoria compartida en múltiples plataformas. Está disponible en
plataformas Unix y Microsoft. Una definición dada conjuntamente por proveedores de
hardware y software describen al OpenMP como un modelo de programación portable el cual
proporciona una interfaz simple y flexible para el desarrollo de aplicaciones paralelas en
plataformas que van desde computadores personales hasta supercomputadoras. Una
aplicación realizada bajo el modelo de programación paralela híbrido se puede ejecutar en un
cluster de computadoras utilizando OpenMP y MPI o a través de las extensiones de OpenMP
para los sistemas de memoria distribuida.

CUDA

Corresponde a las siglas Arquitectura Unificada de Dispositivos de Cómputo, es una


plataforma de cómputo paralelo e Interfaz de Programación de Aplicaciones (API) creada por
NVIDIA. Permite a los desarrolladores de software utilizar Unidades de Procesamiento
Gráfico (GPU) con soporte CUDA para procesamiento de propósito general. La plataforma
CUDA es una capa de software que concede un acceso directo al set de instrucciones y
elementos de computación paralela de la GPU.
La plataforma está diseñada para trabajar con lenguajes de programación tales como
C, C++ y Fortran. Esto lo hace más accesible para que los especialistas en programación
paralela utilicen los recursos de la GPU, lo opuesto a otras API como Direct3D y OpenGL.
10
BLAS

Basic Linear Algebra Subprograms (Subprogramas Básicos de Álgebra Lineal), es


originada como una librería de Fortran en 1979. Se utiliza para formular rutinas de bajo nivel
utilizadas comúnmente en el álgebra lineal. Utiliza operaciones como suma de vectores,
multiplicación escalar, producto punto, combinaciones lineales y multiplicación de matrices.

Heterogeneidad

Sitios diferentes utilizan diferentes DBMS, siendo cada uno esencialmente autónomo.
Es posible que algunos sitios no sean conscientes de la existencia de los demás y quizás
proporcionen facilidades limitadas para la cooperación en el procesamiento de transacciones.

Extensibilidad

La extensibilidad de los sistemas distribuidos se determina en primer lugar por el


grado en el cual se pueden añadir nuevos servicios de compartición de recursos y ponerlos a
disposición para el uso por una variedad de programas cliente.

Escalabilidad

Se podría definir como la capacidad del sistema informático de cambiar su tamaño o


configuración para adaptarse a las circunstancias cambiantes.

Concurrencia

Las aplicaciones distribuidas serán utilizadas por un alto número de usuarios por lo
que hay que tener presente los bloqueos de recursos o el uso de CPU, para lograr la máxima
eficiencia.

Cluster Beowulf
Es un cluster de computadores compuesto de computadores de uso personal
conectados a una pequeña red de área local, con librerías y programas instalados que
permiten compartir el poder de procesamiento entre ellas. Esto resulta en una red de
computación paralela con hardware de uso personal de bajo costo.
11
Ventajas

Ninguna pieza de software particular define un cluster a Beowulf.


Se alcanza un nivel de procesamiento de alto nivel a un bajo costo al requerir piezas
de hardware de uso personal.
Se comportan como una sola máquina, y no como muchas estaciones de trabajo.
Desventajas

Puede requerir mucho espacio y tener un alto consumo de energía.

Aplicaciones de los clusters


Sistemas Gestores de Colas

Los sistemas de gestión de colas, gestionan una cola de ejecución, planifican la


ejecución de las tareas y gestionan los recursos, para minimizar costes y maximizar
rendimiento de las aplicaciones

Aplicaciones Empresariales

Suelen ser aplicaciones no especialmente intensivas computacionalmente, pero que


demandan alta disponibilidad y respuesta inmediata, con lo que los servicios se están
ejecutando continuamente y no controlados por un sistema de colas
12

Conclusión

Mientras la velocidad de procesamiento no tenga un salto o mejora significativa, las


ganancias en performance de las supercomputadoras no serán tan notables, quizás las
supercomputadoras del futuro sean clusters conformados por aquellas que, en épocas pasadas,
constituían las listas de los computadores más potentes. Esta reflexión ilustra una
característica importante en cuanto al mantenimiento de los clusters que presenta una mayor
simplicidad debido a que los supercomputadores tienden a estar a la vanguardia y por tanto su
mantenimiento no suele ser tan sencillo, o al menos no debe serlo sin tener un buen
conocimiento previo del mismo. Los Clusters pueden observarse como una nueva serie de
automóviles que se están fabricando con el objetivo de ser muy confiables y duraderos con
bajos costos, en este caso los supercomputadores seria como los carros de las marcas más
prestigiosas con precios mucho más elevados y con un mantenimiento también de valor
elevado.

En las próximas décadas la aparición de nuevas tecnologías o la alta demanda de recursos


computacionales, como los de la realidad virtual o la realidad aumentada, tendrán
repercusiones directas en cuanto al performance que deben tener las plataformas para estas
tecnologías como también la exigencia que deberán soportar, ya que el procesamiento de
imágenes, por ejemplo, requiere de muchas operaciones que demandan muchos cálculos
aunado además de que necesitan ser efectuados rápidamente para obtener una calidad notoria
en el funcionamiento de los dispositivos que procesan imágenes. Todas aquellas tecnologías
que en sus requerimientos exigen la ejecución de muchas tareas o veloces tiempos de
ejecución, o hasta una combinación de ambos, pueden ser implementadas mediante el uso de
Clusters.
13

Referencias
Siewiorek, D., Koopman, P. (1991). The Architecture of Supercomputers: Titan, a case study.
United Kingdom. Academic Press, Inc.

Supercomputers. Computer History Museum.

Woodfoord, C. (2012-2016). Supercomputers - A Simple introduction and history. Explain


That Stuff!.

ASPG. (2013). Mainframes vs. Supercomputers. Advanced Software Products Group.

Lawton, R., Rouse, M. (2015). Definition middleware. SearchSOA.

Charles, J. (1999-2002) Middleware moves to the forefront. IEEE Xplore.

Tramullas, J; Garrido, P; Sánchez, A. (2011). Groupware y software social: propuesta de


marco de evaluación analítica para herramientas de software libre. El Profesional de la
Información

http://es.slideshare.net/rosluck29/clasificacin-de-flynn-arquitectura-del-computador

Díaz, G; Hoeger, H; Núñez, L. (2002) Clusters de PCs. Universidad de Los Andes, Mérida,
Venezuela.

Procesamiento paralelo CUDA: ¿Que es CUDA?. NVIDIA. (Documentación oficial)

También podría gustarte