SERVICIOS DE INTERNET



UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍA
Ingeniería en Computación

ALUMNO: MARTÍNEZ REYES ALEJANDRO



lunes, 8 de febrero de 2016

Tarea 1

ARQUITECTURAS PARALELAS

ARQUITECTURA SISD
• Máquina de Von Neumann
• Un procesador capaz de realizar acciones secuencialmente, controladas por un programa el cual se encuentra almacenado en una memoria conectada al procesador.
• Este hardware está diseñado para dar soporte al procesamiento secuencial clásico, basado en el intercambio de datos entre memoria y registros del procesador, y la realización de operaciones            aritméticas en ellos.
• Algunas máquinas secuenciales “modernas” no corresponden estrictamente al modelo SISD.
• A partir de la introducción de los procesadores RISC se comenzó a utilizar varios conceptos de las arquitecturas paralelas, como pipelining, ejecución paralela de instrucciones no dependientes,              prefetching de los datos, etc., para lograr un incremento en la cantidad de operaciones por ciclo de      instrucción.

ARQUITECTURA SIMD

• Un único programa controla los procesadores.
• Útil en aplicaciones uniformes
• Procesamiento de imágenes.
• Multimedia.
• Aplicaciones numéricas sobre grillas.
• Su aplicabilidad está limitada por las comunicaciones entre procesadores.
• La topología de interconexión es fija.
• Los elementos de procesamiento tienen capacidad de cómputo limitada (1 bit a 8 bits), por lo que se  pueden colocar una gran cantidad por chip (e.g. CM-2 con 64k PEs).
• Fueron los primeros multiprocesadores difundidos comercialmente (en la década de 1980)
• Ejemplos comerciales
• Cray X-MP (computador más potente entre 1983–1985)
• Connection Machine (CM-2, CM-200, década de 1980).
• MasPar MP2 (inicios de la década de 1990).

ARQUITECTURA MISD

• Varias unidades funcionales ejecutan diferentes operaciones sobre el mismo conjunto de datos.
• Las arquitecturas de tipo pipeline pertenecen a esta clasificación
• Aunque no puramente, ya que pueden modificar los datos sobre los que operan.
• Systolic arrays, FPGA celulares.
• También pertenecen los computadores tolerantes a fallos que utilizan ejecución redundante para detectar y enmascarar errores.
• No existen otras implementaciones específicas.

• Los modelos MIMD y SIMD son más apropiados para la aplicación del paralelismo tanto a nivel de   datos como de control.

ARQUITECTURA MIMD

• Consistieron en el “siguiente paso” en la evolución de las arquitecturas paralelas. 
     – Fueron lentamente desplazando al modelo SIMD. 
• A diferencia de los modelos SISD y MISD, las computadoras MIMD pueden trabajar asincrónicamente (los procesadores tienen la capacidad de funcionamiento semi-autónomo). 
• Existen dos tipos de computadores SIMD, de acuerdo al mecanismo utilizado para comunicación y sincronización: 
      – MIMD de memoria compartida (fuertemente acopladas). 
      – MIMD de memoria distribuida (poco acopladas).

MIMD CON MEMORIA COMPARTIDA

• Procesadores autónomos, trabajan asincrónicamente.
• Comunicación entre procesadores a través del recurso compartido.
– Comunicación y sincronización se realiza en forma explícita.
– Emisor escribe y receptor lee de la memoria global.
• Fáciles de construir.
– SO convencionales de los SISD son portables.
• Buena solución para procesamiento transaccional (sistemas multiusuario, etc.)
• Limitación: confiabilidad y escalabilidad.
– Un fallo de memoria de algún componente puede causar un fallo total del sistema.
• Incrementar el número de procesadores puede llevar a problemas en el acceso a memoria.
– Caso de supercomputadores Silicon Graphics).
• El bus (cuello de botella) limita la escalabilidad a un máximo de pocas decenas de procesadores.
– Caches locales introducen problema de “cache coherence”.
• Ejemplos:
– Encore MULTIMAX
– Inicios de la década de 1990, hasta 20 procesadores.
– Sequent Symmetry.
– Década de 1990, de 10 a 30 procesadores.
– Sun SPARCcenter 2000.
– Década de 1990, escalable hasta 20 procesadores.
– Sun-4d (d por dragon, nombre código del SPARCcenter 2000).
• Mecanismos para compartir los datos.
• UMA = Uniform Memory Access
– Acceso uniforme (todos los procesadores acceden a la memoria en el mismo tiempo).
– Multiprocesadores simétricos (SMP).
– Pocos procesadores (32, 64, 128, por problemas de ancho de banda del canal de acceso).
• NUMA = Non-Uniform Memory Access.
– Colección de memorias separadas que forman un espacio de memoria direccionable.
– Algunos accesos a memoria son más rápidos que otros, como consecuencia de la disposición               física de las memorias (distribuidas físicamente).
– Multiprocesadores masivamente paralelos (MPP).


MIMD CON MEMORIA DISTRIBUIDA

• No existe el concepto de memoria global.
• Comunicación y sincronización:
– Mecanismos explícitos de IPC (mensajes) sobre la red (en escenario óptimo, red de alta                        velocidad).
– Tiene mayor costo que en MIMD de memoria compartida.
• Las comunicaciones pueden ser cuellos de botella.
– Influye la topología de conexión.
• Arquitectura escalable para aplicaciones apropiadas para esta topología.
– Decenas de miles de procesadores.
• Ventajas respecto a MIMD de memoria compartida
– Fácilmente escalable.
– Alta disponibilidad (el fallo de una CPU individual no afecta a todo el sistema).
• Ejemplos comerciales
– Connection Machine CM-5 (1991, 16k procesadores).
– IBM SP (IBM Scalable POWER parallel)
– Incluye tecnología High Performance Switch (HPS) para comunicación entre nodos.
– 1991: SP1; 1993: SP2, 1996: POWER2 Super Chip.
– En 1999 incorporan procesadores POWER3, en 2001 POWER4 y en 2004 POWER5.
– Intel Paragon (1992: 2048 procesadores, luego 4000).
– Cray. – Luego de fusión con SGI: Scalable Node SN1, SN2.
– T3E, 1997, hasta 2048 procesadores.

ARQUITECTURA DE UN PROCESADOR VECTORIAL

Un procesador vectorial es un conjunto de recursos para efectuar operaciones sobre vectores. Estas operaciones consistirán en funciones aritméticas y lógicas aplicadas sobre las componentes de los vectores. La diferencia entre un procesador vectorial y un escalar estriba en que el procesador vectorial puede decodificar instrucciones cuyos operandos son vectores completos. La conversión de un programa correspondiente a un procesador escala a otro vectorial se llama vectorización.

Una primera versión muy simplificada, de procesador vectorial es el mostrado en la figura 3.1. Este tipo de máquina sería un procesador vectorial memoria-memoria que es capaz de extraer dos vectores de memoria y operar sobre ellos. El inconveniente de este tipo de máquina sería el cuello de botella que supondrían los accesos a memoria. Por ello, sobre esta primera arquitectura pueden hacerse algunas mejoras:


1. Aumentar el ancho de banda de la memoria: esto se consigue entrelazando la memoria, de forma que esta tenga varios módulos y se pueda acceder simultáneamente varias posiciones consecutivas que se hallen en módulos diferentes.

 2. Añadir una memoria intermedia de mayor velocidad entre la memoria y el procesador. Una forma de hacer esto, además de incorporar una memoria caché, es añadir un banco de registros vectoriales.

Por todo esto, es habitual que los procesadores vectoriales dispongan de un banco (o varios) de registros vectoriales que hagan de memoria intermedia; se habla entonces de procesadores vectoriales registro-registro. Por otra parte, la mayoría de los procesadores vectoriales actúan como procesadores de un procesador escalar convencional que trata las instrucciones no vectoriales. Ello hace que la arquitectura de un computador vectorial actual sea la que se muestra en la figura 3.2. Como puede verse, los computadores vectoriales pueden considerarse como computadores del tipo SIMD de Flynn, sin embargo, hay que tener en cuenta que, si bien los computadores vectoriales ejecutan la misma instrucción sobre datos diferentes, estos datos forman parte del mismo flujo. Por ello, en algunos casos, a estas máquinas se les llama SIMD-Vectoriales (Germain-Renaud and Sansonnet, 1991).

ARQUITECTURA DE UN PROCESADOR SISTOLICO

El concepto de arquitectura sistólica fue desarrollado por Kung y utilizado en la Universidad de Carnegie-Mellon. Los arrays sistólicos evolucionaron de intentos de obtener un ancho de banda de cálculo más eficiente del silicio. Los arrays sistólicos se pueden considerar como un método para diseñar computadores de propósito especial para equilibrar recursos, ancho de banda de E/S y cálculo. Basándose en la segmentación, los datos fluyen en etapas desde memoria a un array de unidades de cálculo y vuelta a memoria, como sugiere la figura. Un sistema sistólico consiste en un conjunto de celdas interconectadas, cada una de las cuales es capaz de ejecutar alguna instrucción simple. Las celdas se interconectan en forma de matriz o de árbol. La información en un sistema sistólico fluye entre celdas en una estructura segmentada y la comunicación con el exterior sólo es posible en las celdas fronterizas.

La memoria impulsa los datos al elemento de proceso (PE), de forma semejante al "corazón". En la figura (a) se aprecia cómo un procesador convencional procesa una instrucción mientras que el procesador sistólico de la figura (b) ejecuta 6 veces más instrucciones a la vez. Los datos se introducen por un lado de la red a manera de oleadas. El procesamiento sistólico opera de forma similar a las contracciones del corazón. Los datos se procesan rítmicamente. El problema de este sistema radica en asegurarse, que, una vez tomado el dato de la memoria, se use efectivamente en cada celda por la que pasa.

ARQUITECTURA DE UN MULTIPROCESADOR

Este sistema consiste de varios procesos que pueden ejecutarse sobre procesadores diferentes (aunque no es necesario), es muy común en sistemas grandes de tiempo real, recolectan información, toman decisiones, con la afirmación, y envían señales a los actuadores que modifican el entorno del sistema.


El uso de múltiples procesadores mejora el rendimiento y adaptabilidad del sistema. La distribución de los procesos de los procesadores se puede predeterminar o puede estar bajo el control de un despachador que decide cuales procesos ubicar en cada procesador. Los sistemas de múltiples procesos no son necesariamente sistemas distribuidos. Si se dispone de más de un procesador, entonces se puede implementar la distribución, pero los diseñadores del sistema no siempre consideran forzosamente cuestiones de distribución mediante el proceso de diseño.

Un ejemplo para este tipo de sistemas es un modelo simplificado de un sistema de control de tráfico. Un conjunto de sensores distribuidos recogen información sobre le flujo de tráfico y la procesan localmente antes de enviarla a una sala de control. Los operadores toman decisiones usando esta información y dan instrucciones a un proceso de control de diversas luces de tráfico.


Los sistemas de software compuestos de procesos múltiples no necesariamente son sistemas distribuidos. Si más de un procesador está disponible, entonces se puede implementar la distribución, pero los diseñadores del sistema no siempre consideran los puntos de distribución durante el proceso de diseño. El enfoque de diseño para este tipo de sistema es el mismo para los de Tiempo Real.
Para el desarrollo de estos procesos se ocupan modelos de programación concurrente y paralela:
Los objetivos de la programación paralela, son:
    ·         Reducir el tiempo de cómputo.
    ·         Reducir la complejidad del algoritmo,
    ·         Aprovechar al máximo la capacidad de las computadoras multiproceso.
Existen diferentes tipos de programación:
  ·  Multihilo: El cual permite a una aplicación realizar varias tareas concurrentemente.
Los distintos hilos que se ejecutan comparten una serie se recursos.

Pase de mensaje: MPI ("Message Passing Interface") es un estándar que define la sintaxis y la semántica de las funciones usada en programas que exploten la existencia de múltiples procesadores.

ARQUITECTURA DE UN MULTICOMPUTADOR

La característica más importante de estos sistemas es que tienen la memoria distribuida. Esta arquitectura también es conocida como arquitectura basada en el paso de mensajes, ya que los procesos deben realizar comunicaciones (mensajes) a través de la red de interconexión para poder compartir datos. Estas máquinas, por consiguiente, no están limitadas por el ancho de banda de memoria, sino más bien por el de la red de interconexión. La figura 7 muestra el esquema básico de un multicomputador donde cada nodo tiene parte de la memoria distribuida. Los nodos pueden contener desde un simple uniprocesador como un sistema multiprocesador.


Los sistemas MPP (massively parallel processors) son multicomputadores que tienen sus CPU conectadas con una red de interconexión estática de altas prestaciones (baja latencia y elevado ancho de banda) especialmente diseñada para el sistema. Son sistemas grandes, en comparación con un sistema CMP, pero que no suelen tener un número muy elevado de CPU debido al coste económico que supondría mantener una red de interconexión de altas prestaciones. En general, son sistemas difícilmente escalables. 


Las características principales de los sistemas MPP son:

• Utilizan microprocesadores estandard, pero también pueden incorporar hardware específico o aceleradores (por ejemplo, ASIC*, FPGA**, GPU).
• La red de interconexión que incorporan es propietaria, especialmente diseñada, con muy baja latencia y un ancho de banda elevado. 
• Suelen venir con software propietario y librerías para gestionar la comunicación.
• Tienen una capacidad de almacenamiento de entrada/salida elevada, ya que se suelen utilizar para trabajar con grandes volúmenes de datos que se han de procesar y almacenar.
• Tienen mecanismos de tolerancia de fallos del hardware.
Estos sistemas MPP normalmente se han utilizado en cálculos científicos, pero también se han usado de forma comercial. La serie de connection machines es el ejemplo típico de máquinas masivamente paralelas.




REFERENCIAS:  
     - http://www.fing.edu.uy/inco/cursos/hpc/material/clases/Clase2-2009.pdf
     - http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Vectoriales.pdf
     - http://www.dte.eis.uva.es/Docencia/ETSII/SMP/BAK/tema5/Tema5.pdf
     - LIBRO: IAN SOMMERVILLE  INGENIERIA DE SOFTWARE 6° EDICIÓN ADDISON WESLEY

https://www.exabyteinformatica.com/uoc/Informatica/Arquitecturas_de_computadores_avanzadas/Arquitecturas_de_computadores_avanzadas_(Modulo_2).pdf

No hay comentarios.:

Publicar un comentario