TEMA 20 : SISTEMAS DE ALTAS PRESTACIONES. ARQUITECTURAS ESCALABLES. ARQUITECTURAS MULTINÚCLEO. GRID COMPUTING

INTRODUCCIÓN

SISTEMAS MULTIPROCESADOR

SISTEMAS MULTICOMPUTADOR

Taxonomía de Flynn: se basa en el flujo que siguen los datos dentro de la máquina y de las instrucciones sobre esos datos.

Clasificación de Tanenbaum (para los MIMD)

Ejemplos de sistemas de altas prestaciones

Arquitectura cluster: consiste en un conjunto de computadores independientes trabajando unidos como si fuera un único recurso computacional integrado

Arquitectura GRID: distribuida y paralela, de ámbito extenso geográficamente, en la que se premia la distribución y luego la paralelización

Un sistema de altas prestaciones es un ordenador multiusuario/tarea/proceso de muy altas capacidades de cómputo, orientado al procesamiento de grandes volúmenes de información, tanto para gestión como para cálculo científico

Dos aproximaciones

Sistema Multiprocesador : una máquina de mucha potencia de cálculo y elementos compartidos.

Sistema Multicomputador :distitntas máquinas que manteniendo su independencia, suman sus potencias

Taxonomía de Flynn

Diseño Grid

Diseño Cluster

SISD (Single Instruction Stream, Single Data Stream) :tienen un único flujo de instrucciones sobre un único flujo de datos. Se ejcuta una instrucción detrás de la otra (arquitectura serie).

Una instrucción por cada ciclo de reloj

La zona de memoria se divide en dos módulos

Uno reservado para el conjunto de instrucciones a ejecutar que forman el programa almacenado

Otro reservado para los datos sobre los que se van a ejecutar dichas instrucciones

La unidad de procesamiento (PU) se encarga de realizar las operaciones matemáticas necesarias para ejecutar las instrucciones del programa, teniendo como mínimo capacidad de sumar y realizar operaciones lógicas

No presentan soluciones de concurrencia ni paralelización. Solo una simulación de estas capacidades mediante la segmentación

Es una técnica de solapamiento de instrucciones mediante la división de su ejecución en etapas o segmentos

Se descompone 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.

Incrementa la productividad de instrucciones de la CPU, pero no disminuye el tiempo de ejecución de cada instrucción , que permanece inalterado

Ejemplos : S36 de IBM, AS400 de IBM, Sun Enterprise

SIMD (Singles Instructions Stream, Multiple Data Streams) :un único flujo de instrucciones que operan sobre múltiples flujos de datos.

Máquinas vectoriales con hardware escalar y vectorial

El procesamiento es síncrono, la ejecución de las instrucciones sigue siendo secuencial, pero sobre una gran cantidad de datos

Existe concurrencia real de operación, siendo el origen de la máquina paralela

La Unidad de Control manda una misma instrucción a todas las unidades de proceso que operan sobre datos diferentes pero con la misma instrucción recibida

Variantes

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. Vectorial n veces.

Ejemplos : CRAY monoprocesador, ILLIAC IV,

MISD (Multiple Instructions Streams, Single Data Stream) :

Variantes

Varias instrucciones operando simultáneamente sobre un único dato

Varias instrucciones operando sobre un dato que se convierte en un resultado que será la entrada de la siguiente etapa. Se trabaja de forma segmentada y todas las UP trabajan de forma concurrente

Inconveniente : la latencia de los datos. Son arquitecturas experimentales

Ejemplos : arrays sistólicos o arrays de procesadores, aplicaciones de redes neuronales en máquinas masivamente paralelas

MIMD (Multiple Instructions Streams, Multiple Data Streams) :: sistemas con un flujo de múltiples instrucciones que operan sobre múltiples datos. (principios de los 80)

Basados en un bus multiplexado de altas prestaciones, a través del cual podemos transmitir simultáneamente más de unas instrucción y más de un dato

SMP (Simetric Multi Processor) : sistemas fuertemente acoplados en los que los procesadores dependen unos de otros, dado que comparten memoria.

MPP (Massively Parallel Processor):sistemas débilmente acoplados, en los que existe poca interacción entre los procesadores que forman el sistema, dado que disponen de memoria propia.

Se dispone de una única memoria compartida donde se encuentran almacenadas todas las instrucciones del programa y los datos necesarios para ejecutarlas

2 tipos de memoria

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

Cuello de botella en el acceso a la memoria compartida. 2 alternativas para gestionar la memoria compartida

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 , ya que llegan mediante un bus en común y tienen las mismas latencias de lectura y escritura

Desventaja del acceso simultáneo a memoria de parte de todos los nodos y poca escalabilidad.

NUMA (Acceso no uniforme a memoria) :se introducen criterios de preferencia en el acceso a la memoria compartida. Por ejemplo, disposición física de los procesadores o en una distribución de prioridades dada.

Se añade un submódulo de E/S a los procesadores, que permite gestionar los accesos al submódulo de memoria interno

Se usan algoritmos de elevada complejidad para asegurarse que las instrucciones y los datos se encuentran distribuidos en los submódulos de memoria, agrupados de tal forma que puedan ejecutarse las instrucciones con los datos que necesitan

Superordenadores :con capacidades de cálculo muy elevadas y usados para fines específicos

Mainframes:equipos dedicados a la gestión, por lo que admiten gran cantidad de trabajos simultáneos.

Alto coste, hay poco más de 1000 en el mundo y son gestionados por personal especializado. Uso limitado a organismos gubernamentales, militares y científicos

Velocidades de centenas de teraFlop´s

Características

Fiabilidad

Disponibilidad

Integridad

Tolerancia a fallos

Pueden ejecutar múltiples sistemas operativos y ofrecen varios niveles de virtualización.

Diseñados para gestionar un elevado número de operaciones de E/S para lo que disponen de procesadores específicos

Enfocados a resolver problemas que requieran un gran número de E/S. Máquinas más generalistas

Introducción: se pueden ver como un computador paralelo en el cual cada procesador tiene su propia memoria local. La memoria se encuentra distribuida y no compartida

La comunicación se realiza mediante el 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 (computador en sí) con otros subconjunto (otro computador)

Son sistemas distribuidos ya que la memoria está distribuida entre los diferentes elementos de proceso. Son débilmente acoplados

Tipos

Si la solución premia la paralelización de tareas antes que la distribución estamos ante una solución CLUSTER

Si la solución premia la distribución de tareas antes que la paralelización, estamos ante una solución GRID

Tipo de arquitectura hardware paralela y distribuida, en un ámbito local, en la que premia la paralelización y después la distribución

Los ordenadores están conectados mediante un medio físico o cable de alto ancho de banda y consiguen operar de forma conjunta, dando como resultado un único recurso computacional virtual

Cada nodo del cluster podrá ser mono o multiprocesador con memoria, gestión de E/S y sistema operativo propios

Los nodos pueden estar en el mismo armario o separados e interconectados mediante una LAN

Componentes

Nodo: podrá operar colectivamente, como un recurso computacional integrado o como un recurso individual. No se puede controlar el porcentaje de procesamiento que se dedica al cluster y el dedicado al procesamiento individual

Red de interconexión de altas prestaciones:los servicios de red se diseñan en forma de una pila de protocolos. Cada capa de protocolo proporciona una serie de servicios a las capas superiores, utilizando los servicios que le proporciona la capa inmediatamente inferior. (Ej: ISO/OSI, TCP/IP)

Middleware del cluster :la SSI (Single System Image) es la imagen de recurso único del grupo computacional, y es generada por la capa de middleware que se dispone entre el sistema operativo y el entorno de usuario. Se encarga también de la recuperación automática de errores y el balanceo de carga

Capas

SSI Hardware :la capa lógica de gestión del cluster se encuentra implementada por medio de una representación única de circuitos hardware. TIenen mayor eficiencia y velocidad pero son muy costosas, propietarias y nada escalables

SSI a nivel de kernel del S.O. :se modifican los S.O. de los nodos para que dentro de las rutinas internas incluya la virtualización del clúster. Más escalable y menos costosa

Gang scheduling : algoritmo que distribuye el trabajo entre los distintos nodos, de forma que el resultado sea equitativo

Gestión de usuarios del cluster

Administración de recursos del cluster

Seguridad y autenticación

SSI a nivel de Aplicación :se instala en cada nodo un módulo software que añade la lógica y las rutinas necesarias para formar el SSI. Será necesario tener la pareja adecuada "tipo de procesador/sistema operativo.

Lo normal es comenzar con un cluster basado en SSI a nivel de aplicación e ir introduciendo nodos con SSI a nivel de SO

Se basa en 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, el coste y los criterios de calidad del servicio

Formada por un conjunto de ordenadores independientes e interconectados que ponen a disposición de la red los excedentes de su procesamiento individual., sin poder superar un determinado porcentajes de dedicación configurado individualmente en cada nodo.. A partir de ahí se virtualiza un recurso computacional único

Están indicados para atender productividades sostenidas y sostenibles sin poder superar un determinado umbral

Se garantiza la escalabilidad como un criterio parametrizable

Características

Se puede conseguir máximo aprovechamiento de los nodos

Los nodos no tienen que estar dedicados

Son sistemas heterogéneos en los que podemos encontrar distintos SW y HW

La escalabilidad parametrizable

Arquitectura

Basada en capas, ejecutando cada una de ellas una determinada función. Las capas más altas están más cerca del usuario y las inferiores están más cerca de las redes de comunicación

Aplicaciones

Capa de red: asegura la conexión de los recursos del grid

Capa de recursos:son los dispositivos que forman parte del grid

Capa de middleware:proporciona las herramientas que permiten que los distintos elementos participen de forma coordinada en un entorno grid unificado

Funciones

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

Optimiza el uso de los recursos que pueden estar muy dispersos

Organiza el acceso eficiente a los datos

Se encarga de la autentificació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 ante fallos

Avisa de la terminación de la tarea y devuelve los resultados

El manejo de los metadatos, que contienen información sobre los datos y dónde se almacenan es fundamental

Capa de aplicación : donde se incluyen todas las aplicaciones de usuario, portales y herramientas de desarrollo

Proporciona también el "serviceware", que recoge las funciones generales de gestión del grid

Localización dinámica de recursos

Optimización de acceso a datos

Autenticación de usuario

Monitorización de tareas y procesos desde cualquier nodo de la red , siempre que el usuario tenga permisos