Computing">
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 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 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
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
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:
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.
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:
Ejemplos de este paradigma de arquitectura: S36 de IBM, AS400 de IBM, Sun Enterprise
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.
Existen dos alternativas distintas que aparecen después de realizarse esta clasificación:
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)
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.
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.
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:
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:
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.
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.1. Superordenadores
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
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.
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.
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.
Pero la clasificación más habitual para los sistemas multicomputador es qué principio
premian, si paralelización o distribución de tareas.
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
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.
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.
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.
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
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.
Arquitectura
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.
14
045. - Sistemas de altas prestaciones. Grid Computing.
El middleware, es el auténtico "cerebro" del Grid y se ocupa de las siguientes funciones:
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:
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.