Computing">
Nothing Special   »   [go: up one dir, main page]

Temas Específicos para La Preparación de La Oposición Al Cuerpo Superior de Sistemas y Tecnologías de La Información de La Administración Del Estado

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Asociación Profesional del Cuerpo Superior

de Sistemas y Tecnologías de la Información


de la Administración del Estado

Temas Específicos para la preparación de la Oposición al Cuerpo


Superior de Sistemas y Tecnologías de la Información de la
Administración del Estado.

TEMAS ESPECÍFICOS II: Tecnología básica.

045. Sistemas de altas prestaciones. Grid Computing.

AUTOR: Juan Guevara

Actualizado 2014

1
045. - Sistemas de altas prestaciones. Grid Computing.
Indice
1. Introducción ......................................................................................................................... 3
2. Sistemas Multiprocesador .................................................................................................. 4
2.1. Taxonomía de Flynn ...................................................................................................... 4
2.1.1. SISD (Single Instruction stream, Single Data stream) .............................................. 4
2.1.2. SIMD (Single Instruction stream, Multiple Data streams) ......................................... 5
2.1.3. MISD (Multiple Instruction streams, Single Data stream) ......................................... 6
2.1.4. MIMD (Multiple Instruction streams, Multiple Data streams) ..................................... 6
2.2. Clasificación de Tanenbaum ......................................................................................... 6
2.2.1. SMP (Simetric MultiProcessor) ................................................................................. 7
2.2.2. MPP (Massively Parallel Processor) ......................................................................... 8
2.3. Ejemplos de sistemas de altas prestaciones Multiprocesador...................................... 8
2.3.1. Superordenadores ..................................................................................................... 8
2.3.2. Mainframes ................................................................................................................ 9
3. Sistemas Multicomputador .............................................................................................. 10
3.1. Arquitectura Clúster ..................................................................................................... 10
3.1.1. Componentes .......................................................................................................... 11
3.1.2. Servicios de Middleware.......................................................................................... 12
3.2. Arquitectura Grid ......................................................................................................... 13
3.2.1. Características principales ...................................................................................... 14

2
045. - Sistemas de altas prestaciones. Grid Computing.
1. Introducción
Un sistema de altas prestaciones se puede definir como un ordenador
multiusuario/tarea/proceso de muy altas capacidades de cómputo, orientado al procesamiento
de grandes volúmenes de información, tanto en ámbito de la gestión como en el del cálculo
científico-técnico

Existen dos aproximaciones principales a la hora de diseñar un sistema de altas prestaciones.


Se engloba dentro de la categoría de Multiprocesadores si se basa en una única máquina de
mucha potencia de cálculo y elementos compartidos. Por otro lado, la categoría de
Multicomputadores se compone por los sistemas cuyo diseño se apoya en múltiples
máquinas que, manteniendo su independencia, suman sus potencias

Para cada una de estas categorías existen subdivisiones según el detalle concreto del diseño.
En el presente tema se analizarán en más detalle, si bien se presentan en el gráfico siguiente:

Para los sistemas Multiprocesador se partirá de la taxonomía de Flynn, de amplia divulgación,


con alguna incorporación adicional. En el caso de los sistemas Multicomputador se analizarán
las dos maneras de conseguir que múltiples ordenadores trabajen de manera coordinada:
diseño Grid y diseño Clúster

3
045. - Sistemas de altas prestaciones. Grid Computing.
2. Sistemas Multiprocesador
Es una familia de sistemas de altas prestaciones que se basa en una sola máquina de mucha
potencia de cálculo y elementos compartidos.

2.1. Taxonomía de Flynn


Se trata de una clasificación clásica de computadores en función de su arquitectura, publicada
por Flynn por primera vez en 1966 y por segunda vez en 1970. Esta taxonomía se basa en el
flujo que siguen los datos dentro de la máquina y de las instrucciones sobre esos datos.

Se define como flujo de instrucciones al conjunto de instrucciones secuenciales que son


ejecutadas por un único procesador y como flujo de datos al flujo secuencial de datos
requeridos por el flujo de instrucciones.

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

2.1.1. SISD (Single Instruction stream, Single Data stream)

Los sistemas de este tipo se caracterizan por tener un único flujo de instrucciones sobre un
único flujo de datos, es decir, se ejecuta una instrucción detrás de otra. Este es el concepto de
arquitectura serie de Von Neumann donde, en cualquier momento, sólo se ejecuta una única
instrucción.

Las SISD tienen, pues, la característica de procesar una instrucción por cada ciclo de reloj

En la figura podemos observar que la zona de memoria del computador se divide en dos
módulos:

- Un módulo reservado para el conjunto de instrucciones a ejecutar, que forman el


programa almacenado.
- Un módulo que contiene los datos sobre los que va a ejecutarse dichas instrucciones.
4
045. - Sistemas de altas prestaciones. Grid Computing.
La unidad de procesamiento (PU) es el módulo encargado de realizar las operaciones
matemáticas necesarias para ejecutar las instrucciones del programa. Como mínimo, esta
unidad tendrá capacidad de sumar y de realizar operaciones lógicas.

Las soluciones SISD NO presentan capacidades de concurrencia ni paralelización. En todo


caso, podemos llegar a una simulación de estas capacidades, por medio de la segmentación.

La segmentación es una técnica de solapamiento de instrucciones mediante la división de su


ejecución en etapas o segmentos. Consiste en descomponer la ejecución de cada instrucción
en varias etapas para poder empezar a procesar una instrucción diferente en cada una de ellas
y trabajar con varias a la vez.La segmentación incrementa la productividad de instrucciones de
la CPU, pero no disminuye el tiempo de ejecución de cada instrucción, que permanece
inalterado.

Ejemplos de este paradigma de arquitectura: S36 de IBM, AS400 de IBM, Sun Enterprise

2.1.2. SIMD (Single Instruction stream, Multiple Data streams)

Estos sistemas tienen un único flujo de instrucciones que operan sobre múltiples flujos de
datos. Ejemplos de estos sistemas los tenemos en las máquinas vectoriales con hardware
escalar y vectorial.

El procesamiento es síncrono, la ejecución de las instrucciones sigue siendo secuencial como


en el caso anterior, todos los elementos realizan una misma instrucción pero sobre una gran
cantidad de datos. Por este motivo existirá concurrencia real de operación, es decir, esta
clasificación es el origen de la máquina paralela.

El funcionamiento de este tipo de sistemas es el siguiente. La Unidad de Control manda una


misma instrucción a todas las unidades de proceso. Las unidades de proceso operan sobre
datos diferentes pero con la misma instrucción recibida.

Existen dos alternativas distintas que aparecen después de realizarse esta clasificación:

- Arquitectura Vectorial con segmentación: una CPU única particionada en unidades


funcionales independientes trabajando sobre flujos de datos concretos

- Arquitectura Matricial (matriz de procesadores): varias ALUs idénticas a las que el


procesador de instrucciones asigna una única instrucción pero trabajando sobre
diferentes partes del programa.

Ejemplos de este paradigma de arquitectura: ILLIAC IV, CRAY monoprocesador, CYBER 205,
FUJITSU, NEC SUPERCOMPUTERS, IBM 390 VF, IBM 9000 VF, ALLIANT FX/1 Y CONVEX
C-1

5
045. - Sistemas de altas prestaciones. Grid Computing.
2.1.3. MISD (Multiple Instruction streams, Single Data stream)

Los sistemas MISD se contemplan de dos maneras distintas:

- Varias instrucciones operando simultáneamente sobre un único dato.

- Varias instrucciones operando sobre un dato que se va convirtiendo en un resultado


que será la entrada para la siguiente etapa. Se trabaja de forma segmentada, todas las
unidades de proceso pueden trabajar de forma concurrente.

Tiene un serio inconveniente, la latencia de los datos. Se trata de arquitecturas experimentales.

Ejemplos de estos tipos de sistemas son los arrays sistólicos (el movimiento de avance del
dato es el ‘latido’ del sistema) o arrays de procesadores. También podemos encontrar
aplicaciones de redes neuronales en máquinas masivamente paralelas.

2.1.4. MIMD (Multiple Instruction streams, Multiple Data streams)

Sistemas con un flujo de múltiples instrucciones que operan sobre múltiples datos. Estos
sistemas empezaron a utilizarse a principios de los 80.

Se trata de sistemas basados en un único bus multiplexado, de altas prestaciones, a través del
cual podamos transmitir simultáneamente más de una instrucción y más de un dato.

2.2. Clasificación de Tanenbaum


Dentro del grupo MIMD se fueron identificandoestructuras nuevas que no se ajustaban a la
clasificación de Flynn.Andrew Tanenbaum realizó una clasificaciónmás precisa, basada en el
acoplamiento entre procesadores.

En función de la manera de compartir la memoria, podemos distinguir dos categorías dentro de


estos sistemas:

- SMP (Simetric MultiProcessor) o MMC (Multiprocesador de Memoria Compartida).


- MPP (Massively Parallel Processor) o MMD (Multiprocesador de Memoria Distribuida).
6
045. - Sistemas de altas prestaciones. Grid Computing.
2.2.1. SMP(Simetric MultiProcessor)

Son sistemas fuertemente acoplados, en los que los procesadores dependen unos de otros,
dado que comparten memoria. También se denominan MMC (Multiprocesador de Memoria
Compartida).

Se dispone de una única memoria compartida donde se encuentran almacenadas todas las
instrucciones del programa y los datos necesarios para ejecutar dichas instrucciones.Con
respecto a estos datos, podemos distinguir dos tipos de memoria en función de su alcance:

- Datos de alcance global, almacenados en la memoria compartida y que pueden ser


utilizados por cualquiera de las unidades de procesamiento.

- Datos de alcance local, almacenados por un determinado procesador en una memoria


caché propia, y visibles únicamente en el ámbito de dicho procesador.

En estos sistemas existe un cuello de botella en el acceso a la memoria compartida por parte
de los procesadores para acceder a datos globales o a instrucciones del programa. Se
plantean dos alternativas para gestionar la memoria compartida en este tipo de sistemas:

 UMA (Acceso uniforme a memoria).

La memoria compartida es donde cada procesador tiene acceso a toda la memoria, se


dan tiempos de acceso a memoria uniformes, pues llegan a memoria mediante un bus
en común y tienen las mismas latencias de lectura y escritura; además tienen el mismo
sistema operativo.

Sin embargo este tipo de memoria cuenta con la desventaja del acceso simultáneo a
memoria de parte de todos los nodos, además de la poca escalabilidad, debido a que
si se agregan múltiples CPUs extra, puede generarse un cuello de botella.

 NUMA (Acceso no uniforme a memoria).

Se introducen criterios de preferencia en el acceso a la memoria compartida. Estos


criterios pueden estar basados, por ejemplo, en la disposición física de los
procesadores, o en una distribución de prioridades dada.

7
045. - Sistemas de altas prestaciones. Grid Computing.
2.2.2. MPP(Massively Parallel Processor)

Son sistemas débilmente acoplados, en los que existe poca interacción entre los diferentes
procesadores que forman el sistema, dado que disponen de memoria propia. También se
conocen como MMD (Multiprocesador de Memoria Distribuida).

Estos sistemas surgen para solucionar la carencia de los anteriores, en cuanto a los accesos a
la memoria compartida.

En estos sistemas no existe un módulo de memoria compartida propiamente dicho, sino que
ésta se encuentra distribuida en submódulos de memoria en cada uno de los procesadores
individuales. Además, se añade un submódulo de E/S a los procesadores, que permita
gestionar los accesos al submódulo de memoria interno.

Esta arquitectura nos permite reducir considerablemente los accesos al bus para recuperar
datos, siempre que aseguremos que las instrucciones del programa y los datos se encuentran
distribuidos en los submódulos de memoria, agrupados de forma que en cada submódulo
tengamos almacenados un grupo de instrucciones y todos los datos necesarios para
ejecutarlas.

Para conseguir este tipo de ‘distribución’ del programa y los datos en los submódulos de
memoria, son necesarios algoritmos de una elevada complejidad.

2.3. Ejemplos de sistemas de altas prestaciones


Multiprocesador
Existen 2 familias de sistemas de altas prestaciones dentro del diseño basado en
multiprocesador: los superordenadores, orientados a ofrecer una altísima capacidad de cálculo,
y los sistemas centrales o mainframes, más orientados a altos requisitos de entrada y salida

2.3.1. Superordenadores

Un superordenador es aquella con capacidades de cálculo muy superiores a las computadoras


corrientes y de escritorio y que son usadas con fines específicos.

De muy alto coste (de decenas de millones de euros en adelante), existen actualmente menos
de un millar en el mundo, y son gestionados por personal muy especializado. Su uso está
limitado a organismos gubernamentales, militares y científicos, y actualmente alcanzan
velocidades de centenas de teraFLOPs (1012 operaciones en coma flotante por segundo).

8
045. - Sistemas de altas prestaciones. Grid Computing.
A continuación se enumeran los cinco superordenadores de mayor potencia en Septiembre de
2014, de la lista TOP500 de superordenadores

Rank Lugar Sistema Núcleos TFlop/seg

National Super Tianhe-2 (MilkyWay-2)


Computer Center in TH-IVB-FEP Cluster, Intel Xeon E5-
1 3,120,000 33,862.7
Guangzhou 2692 12C 2.200GHz, TH Express-2,
China Intel Xeon Phi 31S1PNUDT
Titan
DOE/SC/Oak Ridge
Cray XK7 , Opteron 6274 16C
2 National Laboratory 560,640 17,590.0
2.200GHz, CrayGeminiinterconnect,
United States
NVIDIA K20x - Cray Inc.
Sequoia
DOE/NNSA/LLNL
3 BlueGene/Q, Power BQC 16C 1.60 1,572,864 17,173.2
UnitedStates
GHz, Custom- IBM
RIKEN Advanced
Institute for K computer,
4 Computational SPARC64 VIIIfx 2.0GHz, Tofu 705,024 10,510.0
Science (AICS) interconnect - Fujitsu
Japan
DOE/SC/Argonne Mira
5 National Laboratory BlueGene/Q, Power BQC 16C 786,432
United States 1.60GHz, Custom - IBM

2.3.2. Mainframes

Son equipos dedicados a gestión, por lo que admiten gran cantidad de trabajos simultáneos,
como por ejemplo controlar una red de terminales en las sucursales de una empresa, o una red
de cajeros automáticos de un banco

Hoy día el término mainframe se utiliza para referirse a sistemas de la serie IBM System/360
(cuya primera versión apareció en 1965) y compatibles. La mayor parte de los grandes
computadores desde 1960 seguían la arquitectura y filosofía de los mainframes, hasta la
aparición de la web y los servidores en la década de los 90s.

Características principales de los mainframes son la fiabilidad, la disponibilidad, la integridad y


la tolerancia a fallos. Desde los primitivos equipos que trabajaban con tarjetas perforadas y
cintas magnéticas hasta los actuales mainframes, todos ellos han enfocado su diseño y
arquitectura para estar funcionando durante muchos años sin interrupción, con reparaciones y
actualizaciones de hardware y software teniendo lugar siempre en operación normal.

La mayoría de los mainframes actuales pueden ejecutar múltiples sistemas operativos, y


ofrecen varios niveles de virtualización. Son equipos diseñados además para gestionar un
elevado número de operaciones de entrada/salida, para lo que disponen de procesadores
específicos.

Aunque tanto supercomputadores como mainframes utilizan procesamiento paralelo, los


mainframes están más enfocados a resolver problemas que requieran un alto número de
entradas y salidas de datos externos, mientras que los supercomputadores están más
enfocados a resolver problemas que requieren una alta velocidad de cálculo. Por otro lado, los
supercomputadores son máquinas diseñadas para un propósito muy específico, con un diseño
hecho a medida para cumplir su objetivo, mientras que los mainframes son máquinas más
generalistas que forman parte de una línea de productos concreta de las empresas que los
diseñan.

9
045. - Sistemas de altas prestaciones. Grid Computing.
3. Sistemas Multicomputador
Los sistemas multicomputadores se pueden ver como un computador paralelo en el cual cada
procesador tiene su propia memoria local. En estos sistemas la memoria se encuentra
distribuida y no compartida como en los sistemas multiprocesador.

El diagrama de bloques de un sistema multicomputador coincide con el visto para los sistemas
MPP o MMD, la diferencia viene dada porque la red de interconexión no permite un acceso
directo entre memorias, sino que la comunicación se realiza por paso de mensajes.

La transferencia de los datos se realiza a través de la red de interconexión que conecta un


subconjunto de procesadores (un computador en sí) con otro subconjunto (otro computador).
La transferencia de unos procesadores a otros se realiza por tanto por múltiples transferencias
entre procesadores conectados dependiendo del establecimiento de dicha red.

Dado que la memoria está distribuida entre los diferentes elementos de proceso, estos
sistemas reciben el nombre de distribuidos. Por otra parte, estos sistemas son débilmente
acoplados, ya que los módulos funcionan de forma casi independiente unos de otros.

En función del grado de distribución o ámbito de estos sistemas, podemos hablar de


multicomputación de ámbito local (los computadores se encuentran conectados entre sí por
medio de un medio físico o cable, cuyo ancho de banda habrá que maximizar) o
multicomputación de ámbito global (los computadores se encuentran dispersos
geográficamente, conformando una red)

Pero la clasificación más habitual para los sistemas multicomputador es qué principio
premian, si paralelización o distribución de tareas.

 Si la solución premia la paralelización de tareas antes que la distribución, más


habitual en el ámbito local, estamos ante una solución CLUSTER

 Si la solución premia la distribución de tareas antes que la paralelización, más


habitual en ámbito global, estamos ante una solución GRID

3.1. Arquitectura Clúster


Un Clúster es un tipo de sistema de procesamiento paralelo o distribuido, que consiste en un
grupo de computadores independientes trabajando unidas como si fueran un único recurso
computacional integrado.

Es un tipo de arquitectura hardware paralela y distribuida, en un ámbito local, en la que


premia la paralelización, y a continuación la distribución. El conjunto de ordenadores
independientes e interconectados de la forma más eficiente posible (medio físico o cable de
alto ancho de banda) consiguen operar de forma conjunta, dando como resultado un único
recurso computacional virtual.

Cada uno de los nodos del clúster podrá ser un sistema mono o multiprocesador (PCs,
estaciones de trabajo, SMPs…) con memoria, gestión de I/O y sistema operativo propios.

Los nodos del clúster podrán estar dispuestos en un mismo armario o estar físicamente
distribuidos, separados e interconectados por medio de una red de área local (LAN).

Un clúster de nodos interconectados en una LAN podrá ser utilizado por usuarios y
aplicaciones como si fuera un sistema virtual único. Sistemas de este tipo proporcionan un
medio eficiente en coste para conseguir características y beneficios (servicios rápidos y de

10
045. - Sistemas de altas prestaciones. Grid Computing.
confianza) que históricamente sólo se habían podido conseguir por medio de sistemas más
caros y propietarios de memoria compartida.

3.1.1. Componentes
Los componentes principales de un clúster son los mostrados en la tabla

Componente
Descripción
del clúster

Los nodos de un clúster podrán ser un grupo heterogéneo de sistemas, cada uno de
ellos con un sistema operativo distinto, siempre que esté disponible para cada una de
las parejas tipo de máquina/sistema operativo el correspondiente driver del clúster (en
caso de SSI a nivel de Aplicación).
Nodo
Cada uno de los nodos del clúster podrá operar colectivamente, como un recurso
computacional integrado, o podrá operar como un recurso individual. No existe por
tanto dedicación exclusiva de los nodos, si bien no se podrá controlar en ninguno de
los nodos el porcentaje de procesamiento que se dedica al clúster y el porcentaje
dedicado al procesamiento individual. Las distintas tareas compiten por recursos en el
scheduling de tareas del sistema operativo

Las necesidades de comunicación de las aplicaciones distribuidas son muy variadas,


y van desde la comunicación fiable punto a punto a la difusión no fiable.Se deberán
soportar diversos protocolos para implementar todos los tipos de comunicación
necesarios.
Red de
Por un lado, se proporcionan los servicios de comunicación básicos, necesarios para
interconexión
transportar la información administrativa y de usuarios del clúster. Estos servicios
de altas
determinarán importantes parámetros de calidad del servicio del clúster, tales como la
prestaciones
latencia, el ancho de banda, la fiabilidad o la tolerancia a fallos.

Los servicios de red se diseñan típicamente en forma de una pila de protocolos. En


sistemas divididos en capas de este tipo, cada capa de protocolo de la pila
proporciona una serie de servicios a las capas superiores, utilizando los servicios que
le proporciona la capa inmediatamente inferior. El ejemplo clásico de esta arquitectura

11
045. - Sistemas de altas prestaciones. Grid Computing.
Componente
Descripción
del clúster
de red es la torre de siete capas ISO OSI y la arquitectura de protocolos TCP/IP.

Si un grupo de computadores interconectados se disponen para dar la apariencia de


un recurso unificado, decimos que este grupo tiene una imagen de recurso único,
Single System Image (SSI). La SSI de un clúster es generada por la capa de
Middleware
middleware que se dispone entre el sistema operativo y el entorno de usuario.
del clúster
Además, esta capa middleware se encarga, por medio de la System Availability
Infrastructure, de gestionar una serie de servicios que aseguran la alta disponibilidad
del clúster, tales como la recuperación automática tras errores y el balanceo de carga.

3.1.2. Servicios de Middleware


Los servicios de middleware (SSI y System Availability Infrastructure) pueden ser
proporcionados por uno o varias de las siguientes capas:

 SSI Hardware: La capa lógica de gestión del clúster se encuentra implementada por
medio de una representación única de circuitos hardware. Estas implementaciones son
las que consiguen mayor eficiencia y velocidad, pero son altamente costosas,
propietarias y nada escalables.

 SSI a nivel de Kernel del Sistema Operativo: El/los sistema/s operativo/s instalado/s
en los nodos del clúster se modifica para que dentro de las rutinas internas de su
kernel, incluya los procesos de virtualización del clúster. Algunas de las actividades
que se deben añadir al kernel, propias de la gestión a bajo nivel del clúster, son:

o Gang scheduling: algoritmo que distribuye el trabajo entre los distintos nodos
del clúster, de forma que el resultado sea equitativo
o Gestión de usuarios del clúster.
o Administración de recursos del clúster
o Seguridad y autenticación.

Esta implementación es escalable, y menos costosa que la anterior. Ejemplos: Scyld


Beowulf, Solaris MC, Windows Server 2003.

 SSI a nivel de Aplicación: Una vez tenemos todos los nodos que van a formar el
clúster cada uno con su sistema operativo instalado y configurado, instalamos en cada
uno de ellos un módulo software que añade la lógica y las rutinas necesarias para
formar el SSI, de forma que podamos virtualizar el clúster. Para poder utilizar esta
opción, será necesario que tengamos el módulo software adecuado a cada pareja tipo
de procesador/sistema operativo presente en los nodos del clúster a formar.

Esta es la solución menos eficiente, pero la más escalable y barata de todas

Ejemplo: Iniciativa Kimberlite, módulo adicional de Linux Virtual Server, Windows


Cluster Server (para nodos WINTEL, sobre W2K Server Advanced Server o Datacenter
Server).

Lo más normal es comenzar con un clúster basado en SSI a nivel de Aplicación e ir


introduciendo poco a poco nodos con SSI a nivel de Sistema Operativo (la migración puede
hacerse en tiempo de ejecución, para el funcionamiento del clúster no cambia nada, a
excepción de la eficiencia).

12
045. - Sistemas de altas prestaciones. Grid Computing.
Ejemplo: Google

Componente del
Descripción
clúster
Microprocesador: iTanium o Xeon
Memoria: 256 MB (si hay + 1 micro, se va doblando la memoria)
Elección HW
Almacenamiento: HD SCSI, solución RAID (RAID-5)
Conexión: GigaEthernet
2 vías de comunicación, diferente canal para información de datos y de
Comunicaciones procesamiento (1 bus para SCSI y otro para GigaEthernet, que es lo
relacionado con el funcionamiento de clúster

SO: Linux Red Hat


Software
MiddleWare: Cluster Google

3.2. Arquitectura Grid


Arquitectura distribuida y paralela, de ámbito extenso geográficamente, en la que se premia
la distribución, y a continuación la paralelización. Sus creadores fueron Ian Foster y Carl
Kesselman. Su nombre proviene del paradigma de la red eléctrica (power grid).

Se basa en la compartición, selección y agregación de forma dinámica y en tiempo de


ejecución de recursos autónomos, distribuidos geográficamente, dependiendo de criterios
como la disponibilidad del hardware, la capacidad transaccional, el rendimiento que se pueda
aportar a la solución final, el coste y los criterios de calidad del servicio que el demandante
pueda proporcionar y exigir.

De esta forma, la red está formada por un conjunto de ordenadores independientes e


interconectados que ponen a disposición de la red los excedentes de su procesamiento
individual, es decir, los ciclos de reloj de sus CPUs no aprovechados por ellos mismos, sin
poder superar un determinado porcentaje de dedicación configurado individualmente en cada
nodo. A partir del porcentaje proporcionado por cada nodo, se virtualiza un recurso
computacional único.

13
045. - Sistemas de altas prestaciones. Grid Computing.
Mientras que las soluciones basadas en clúster pueden servir para ofrecer servicios de alta
disponibilidad y productividades pico, los sistemas basados en grid computing están indicados
para atender productividades sostenidas y sostenibles, sin poder nunca superar un
determinado umbral.

En estos sistemas se garantiza la escalabilidad como un criterio parametrizable. Es posible


definir con qué criterio añadimos cada nuevo nodo a la solución final.

Actualmente, el único criterio que se tiene en cuenta es la capacidad de procesamiento, pero


en el futuro, será posible tener en cuenta criterios más finos, referidos a la calidad del servicio.

Además, estos sistemas están dotados de un comportamiento dinámico, según el cual, un


determinado programa en ejecución en el sistema, puede modificar en tiempo real el
dimensionamiento de la grid para adaptarlo a sus necesidades.

3.2.1. Características principales


Las principales características de un sistema grid son las siguientes

 Podemos conseguir un máximo aprovechamiento de los nodos (100% de utilización de


la CPU).
 Los nodos no tienen que estar dedicados. Además, al contrario que en el caso del
clúster, nos aseguramos que la aportación al Gris no va a sobrepasar un determinado
porcentaje de tiempo de procesamiento en cada nodo.
 Son sistemas heterogéneos, en los que podemos encontrar diversos HW y SW.
 La escalabilidad parametrizable es la característica más potente de esta arquitectura.

Arquitectura

Habitualmente se describe la arquitectura del Grid en términos de "capas", ejecutando cada


una de ellas una determinada función. Como es habitual en este tipo de enfoque, las capas
más altas están más cerca del usuario, en tanto que las capas inferiores lo están de las redes
de comunicación.

Empezando por los cimientos, nos encontramos con la capa de red, responsable de asegurar
la conexión entre los recursos que forman el Grid.

En la parte más alta está la capa de recursos, constituida por los dispositivos que son parte del
Grid: ordenadores, sistemas de almacenamiento, catálogos electrónicos de datos e incluso
sensores que se conecten directamente a la red.

En la zona intermedia está la capa de "middleware", encargada de proporcionar las


herramientas que permiten que los distintos elementos (servidores, almacenes de datos, redes,
etc.) participen de forma coordinada en un entorno Grid unificado.

14
045. - Sistemas de altas prestaciones. Grid Computing.
El middleware, es el auténtico "cerebro" del Grid y se ocupa de las siguientes funciones:

- Encontrar el lugar conveniente para ejecutar la tarea solicitada por el usuario.


- Optimiza el uso de recursos que pueden estar muy dispersos.
- Organiza el acceso eficiente a los datos.
- Se encarga de la autenticación de los diferentes elementos.
- Se ocupa de las políticas de asignación de recursos.
- Ejecuta las tareas.
- Monitoriza el progreso de los trabajos en ejecución.
- Gestiona la recuperación frente a fallos.
- Avisa cuando se haya terminado la tarea y devuelve los resultados.

El ingrediente fundamental del middleware son los metadatos (datos sobre los datos), que
contienen, entre otras cosas, toda la información sobre el formato de los datos y dónde se
almacenan (a veces en varios sitios distintos).

El middleware está formado por muchos programas software. Algunos de esos programas
actúan como agentes y otros como intermediarios, negociando entre sí, de forma automática,
en representación de los usuarios del Grid y de los proveedores de recursos.

Los agentes individuales presentan los metadatos referidos a los usuarios, datos y recursos.
Los intermediarios se encargan de las negociaciones entre máquinas (M2M) para la
autenticación y autorización de los usuarios y se encargan de definir los acuerdos de acceso a
los datos y recursos y, en su caso, el pago por los mismos. Cuando queda establecido el
acuerdo, un intermediario planifica las tareas de cómputo y supervisa las transferencias de
datos necesarias para acometer cada trabajo concreto. Al mismo tiempo, una serie de agentes
supervisores especiales optimizan las rutas a través de la red y monitorizan la calidad del
servicio.

Por supuesto, todo esto ocurre en un intervalo de tiempo muchísimo menor que el que llevaría
a los seres humanos realizar las mismas tareas manualmente.

En la capa superior de este esquema está la capa de aplicación donde se incluyen todas las
aplicaciones de los usuarios, portales y herramientas de desarrollo que soportan esas
aplicaciones. Esta es la capa que ve el usuario.

15
045. - Sistemas de altas prestaciones. Grid Computing.
Además, en las arquitecturas más comunes del Grid, la capa de aplicación proporciona el
llamado "serviceware", que recoge las funciones generales de gestión tales como la
contabilidad del uso del Grid que hace cada usuario. (El serviceware está en la capa superior al
ser un elemento con el que interactúa el usuario, mientras que el middleware está en una capa
"oculta" de la que no debe preocuparse).

Para poder hacer todo lo anterior, las aplicaciones que se desarrollen para ser ejecutadas en
un PC concreto, tendrán que adaptarse para poder invocar los servicios adecuados y utilizar
los protocolos correctos. Igual que las aplicaciones que inicialmente se crearon para funcionar
aisladamente se adaptan para poder ser ejecutadas en un navegador Web, el Grid requerirá
que los usuarios dediquen cierto esfuerzo a "GRIDizar" sus aplicaciones.

Sin embargo, una vez adaptadas al Grid, miles de usuarios podrán usar las mismas
aplicaciones, utilizando las capas de middleware para adaptarse a los posibles cambios en el
tejido del Grid.

Como aplicaciones que pueden sacar el máximo partido de este tipo de soluciones podemos
citar a modo de ejemplo:

 Localización dinámica de recursos (máquinas con excedente).


 Optimización del acceso a datos, mapeando las estructuras de datos en cachés
temporales locales (directorios).
 Autenticación del usuario (usr/pwd, certificados…).
 Monitorización de tareas y procesos desde cualquier nodo de la red, siempre que el
usuario tenga permisos.
 Las máquinas se encuentran en situación paritaria.
 Si es posible, se paraleliza. Lo fundamental es la distribución de procesos débilmente
acoplados.

A continuación se muestran ejemplos de las soluciones Grid más importantes a nivel


mundial, ordenadas por capacidad de computación. Como se parecía, los valores alcanzados
no distan mucho de los expuestos anteriormente para los superordenadores del TOP500,
siendo valores sostenidos y medios

Rank Sistema TFlop/seg

1 Folding@home 11.400

2 BOINC 9.200

3 MilkyWay@Home 1.600

4 SETI@Home 730

5 Einstein@Home 210

16
045. - Sistemas de altas prestaciones. Grid Computing.

También podría gustarte