tipos de computación paralela

36
COMPUTACIÓN PARALELA

Upload: morris-star

Post on 19-Jun-2015

3.691 views

Category:

Documents


1 download

DESCRIPTION

Uploaded from Google Docs

TRANSCRIPT

Page 1: Tipos de computación paralela

COMPUTACIÓN PARALELA

Page 2: Tipos de computación paralela

TIPOS DE COMPUTACIÓN PARALELA

La creciente complejidad de los problemas tratados en ciertas áreas de la ciencia, la ingeniería, el procesamiento de datos, etc., requieren una gran capacidad de cálculo.

Es un hecho bien establecido que para algunos problemas tales como los métodos numéricos, la simulación, la

optimización, etc.

Page 3: Tipos de computación paralela

Las aplicaciones de esta área de la computación se extienden a diferentes disciplinas. La Figura 2.1 muestra los requerimientos computacionales para distintos campos de aplicación.

Page 4: Tipos de computación paralela

La computación paralela o procesamiento en paralelo consiste en acelerar la ejecución de un programa mediante su descomposición en fragmentos que pueden ejecutarse de forma simultánea, cada uno en su propia unidad de proceso.

Normalmente, los problemas no pueden dividirse perfectamente en partes totalmente independientes y se necesita, por tanto, una interacción entre ellas que ocasiona una disminución de la velocidad computacional.

En este sentido se habla de mayor o menor grado de paralelismo en la medida en que un algoritmo sea más o menos divisible en partes independientes con igual coste computacional.

Entre las interacciones hay que considerar principalmente las dos siguientes:

a) La transferencia de datos.b) La sincronización de los cálculos de los diferentes

procesadores.

Page 5: Tipos de computación paralela

El concepto de computador paralelo, como es de esperar, no es una idea nueva. Por ejemplo, Gill ya escribió acerca de la programación paralela en 1958, y un año después Holland planteó la posibilidad de que un computador pudiera ejecutar un número arbitrario de subprogramas simultáneamente. En 1963 Conway describe el diseño de un

computador paralelo y su programación, y 40 años más tarde se siguen encontrando numerosísimos artículos con títulos y planteamientos similares a los que ya apuntaban estos precursores del campo de la computación paralela.

Page 6: Tipos de computación paralela

1.1 TAXONOMÍA DE LAS ARQUITECTURAS PARALELAS Las diferentes posibilidades existentes para desarrollar

sistemas paralelos hacen que una clasificación definitiva sea complicada, y seguramente estéril. Por ello, en primer lugar se recuerdan las características básicas del modelo secuencial, con el fin de delimitar los aspectos básicos que son comunes o diferentes de los sistemas paralelos.

Seguidamente se muestra una clasificación clásica propuesta por Flynn, que se basa en el flujo de instrucciones y en el flujo de datos, es decir, el mecanismo de control utilizado. Sin embargo, existe una gran cantidad de criterios, aunque no todos mutuamente excluyentes entre sí, para establecer una clasificación de las distintas arquitecturas paralelas.

Page 7: Tipos de computación paralela

1.2 ARQUITECTURA DE LOS COMPUTADORES SECUENCIALES Como es bien sabido, los computadores

secuenciales, también denominados computadores serie, se basan en la arquitectura de J. von Neumann. En este modelo se considera una única secuencia de instrucciones que tratan una única secuencia de datos. Por ello se conocen como computadores SISD.

Arquitectura de Von NeumannUn computador de Von Neumann usa el concepto de programa-almacenamiento. El CPU ejecuta un programa que específica una secuencia de operaciones de lectura y escritura en la memoria.

Page 8: Tipos de computación paralela

Diseño Básico: Memoria es usada para almacenar el programa y las

instrucciones sobre los datos Instrucciones del Programa son datos codificados

que le dice al computador que hacer Los datos es simplemente información a ser usada

por el programa La unidad de procesamiento central (CPU) obtiene

instrucciones y/o datos de la memoria, decodifica las instrucciones y secuencialmente ejecuta éstas.

Page 9: Tipos de computación paralela

La más conocida es la segmentación (pipelining).

La segmentación de instrucciones consiste en traer a la cola de instrucciones la instrucción siguiente a la que se está ejecutando. En último término se realiza la segmentación de ejecución, o segmentación encauzada, en la que se permite que varias instrucciones se ejecuten simultáneamente en diferentes unidades funcionales de cálculo (multiplicadores, sumadores, unidad de carga/almacenamiento, ...), durante las diferentes etapas en las que se divide la ejecución de la instrucción.

Page 10: Tipos de computación paralela

El rendimiento que se obtiene recurriendo a una máquina con segmentación es, por lo general, muy superior al de la versión no segmentada. Obsérvese la Figura, en la que se muestra una segmentación típica e ideal de un procesador RISC (Reduced Instruction Set Computer) con cinco etapas de ejecución:

IF (búsqueda de la instrucción) ID (decodificación de la instrucción y lectura de los

registros) EX (operaciones aritméticas) MEM (lectura/escritura de/en memoria) WB (escritura en los registros).

Page 11: Tipos de computación paralela

2.2.1 TAXONOMÍA DE FLYNN

En 1966 Flynn propuso una clasificación generalista de los computadores, adoptando como criterio el flujo de instrucciones y el flujo de datos que en ellos se desarrolla.

Se entiende por flujo (stream) una secuencia de elementos, en este caso de datos o de instrucciones.

Así, la clasificación de Flynn es la siguiente:

Page 12: Tipos de computación paralela

SINGLE INSTRUCTION, SINGLE DATA (SISD):

Un único procesador interpreta una única secuencia de instrucciones, para operar con los datos almacenados en una única memoria. Los computadores monoprocesador caen en esta categoría.

ProcessorProcessorData Input Data Output

Instru

ctions

SIUnidad de

controlUnidad de

procesoUnidad de memoria

SD

Page 13: Tipos de computación paralela

SINGLE INSTRUCTION, MULTIPLE DATA (SIMD):

Una única instrucción de máquina controla paso a paso la ejecución simultánea y sincronizada de un cierto número de elementos de proceso. Cada elemento de proceso tiene una memoria asociada, de forma que cada instrucción es ejecutada por cada procesador, con un conjunto de datos diferentes. Los procesadores matriciales y vectoriales pertenecen a esta categoría.Instruction

Stream

Processor

A

Processor

BProcessor

C

Data Inputstream AData Inputstream BData Inputstream C

Data Outputstream AData Outputstream BData Outputstream C

Page 14: Tipos de computación paralela

MULTIPLE INSTRUCTION, SINGLE DATA (MISD):

Se transmite una secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia de instrucciones diferente. Esta estructura ha sido implementada sólo con fines de investigación.

Data InputStream

Data OutputStream

Processor

A

Processor

BProcessor

C

Instruction Stream A

Instruction Stream B

Instruction Stream C

Page 15: Tipos de computación paralela

MULTIPLE INSTRUCTION, MULTIPLE DATA (MIMD):

Un conjunto de procesadores ejecuta simultáneamente secuencias de instrucciones diferentes con conjuntos de datos diferentes. Los clusters son ejemplos de esta categoría.

Processor

A

Processor

BProcessor

C

Instruction Stream A

Instruction Stream B

Instruction Stream C

Data Inputstream A

Data Inputstream B

Data Inputstream C

Data Output stream A

Data Output stream B

Data Output stream C

Page 16: Tipos de computación paralela

2.2.2 Organización del espacio de direcciones de memoria

El intercambio de información entre procesadores depende del sistema de almacenamiento que se disponga. Atendiendo a este criterio se obtiene una nueva clasificación de las arquitecturas paralelas en:

Sistemas de memória compartida o multiprocesadores.

Sistemas de memória distribuída o multicomputadores.

Page 17: Tipos de computación paralela

Sistemas de memória compartida o multiprocesadores. Los procesadores de los sistemas con memoria

compartida se caracterizan por compartir físicamente la memoria, es decir, todos acceden al mismo espacio de direcciones. Un valor escrito en memoria por un procesador puede ser leído directamente por cualquier otro. En principio, en esta arquitectura la memoria es igualmente accesible por todos los procesadores a través de la red de interconexión. Así se desarrollaron los primeros computadores de esta arquitectura, tales como el NYU Ultracomputer.

Page 18: Tipos de computación paralela

SIUnidad de Control 2

Elemento de proceso 2

MemoriaCompartida

SD

Elemento de proceso 1

SD

Elemento de proceso n

SD

SIUnidad de Control 1

SIUnidad de Control n

Page 19: Tipos de computación paralela

La mayoría de los sistemas de memoria compartida incorporan una memoria cache local en cada procesador, y del mismo modo que en los computadores secuenciales, sirve para aumentar el ancho de banda entre el procesador y la memoria local. Análogamente puede existir una memoria cache para la memoria global. Cuando se utilizan memorias cache es fundamental asegurar la coherencia de la información en la memoria cache

Page 20: Tipos de computación paralela

SISTEMAS DE MEMÓRIA DISTRIBUÍDA O MULTICOMPUTADORES

En los sistemas de memoria distribuida cada procesador dispone de su propia memoria, denominada local o privada, independiente del resto y accesible sólo por su procesador. La comunicación se realiza por paso de mensajes, es decir, para que un dato que reside en la memoria de un procesador pase a la de otro, el primero debe construir un mensaje por software, enviarlo a través de una red de interconexión y el segundo debe recibirlo.

Page 21: Tipos de computación paralela

SIUnidad de Control 2

Elemento de proceso 2

SD

Elemento de proceso 1

SD

Elemento de proceso n

SD

SIUnidad de Control 1

SIUnidad de Control n

Red deInterco-nexión

MemoriaLocal 2

MemoriaLocal 1

MemoriaLocal n

Page 22: Tipos de computación paralela

CLASIFICACIÓN DE LAS ARQUITECTURAS PARALELAS

Page 23: Tipos de computación paralela

OTROS CRITERIOS DE CLASIFICACIÓN

La anterior clasificación, siendo muy completa e ilustrativa, no puede considerarse definitiva. De hecho, atendiendo a otros factores o desde otros puntos de vista, se pueden realizar taxonomías diferentes como:

REDES DE INTERCONEXIÓN

Page 24: Tipos de computación paralela

REDES DE INTERCONEXIÓN

la red de interconexión es eficaz u óptima cuando la capacidad de cálculo del sistema está equilibrada con respecto a la capacidad de transmisión de la red de interconexión. Cuando la capacidad de cálculo se incrementa, las características de la red deben mejorarse en sintonía con ella.

Page 25: Tipos de computación paralela

REDES DE INTERCONEXIÓN

LIMITACIONES:

En primer lugar el coste es mayor Limitaciones físicas, como los retrasos

inherentes a todo sistema de comunicación.

Page 26: Tipos de computación paralela

REDES DE INTERCONEXIÓN

Los factores de la red de interconexión que más influyen en el rendimiento del sistema son fundamentalmente cuatro:

La topología El mecanismo de conmutación El control de flujo El algoritmo de encaminamiento.

Page 27: Tipos de computación paralela

REDES DE INTERCONEXIÓN

TOPOLOGÍA:Existe gran variedad, que va desde las estructuras sencillas de bajo coste y poco escalables, hasta los grafos más complejos.

las redes de medio compartido el bus clasificadas en redes directas e

indirectas

Page 28: Tipos de computación paralela

REDES DE INTERCONEXIÓN

MECANISMO DE CONMUTACIÓN

En la actualidad se emplea conmutación de paquetes, aunque en un principio se utilizaron técnicas de conmutación de circuitos. Esta técnica sólo es eficaz si la cantidad de información a enviar es elevada y/o la fluctuación en el ritmo de transferencia es muy baja, que es la situación contraria a la habitual en un sistema multiprocesador. En la conmutación de paquetes no se reserva el medio, sino que la información se transmite en forma de paquetes siguiendo bien un camino establecido previamente o bien buscando su propia ruta al nodo destino. Esta técnica implica la incorporación de arbitrajes para gestionar los fenómenos de contención, permite aumentar significativamente el nivel de ocupación de la red.

Page 29: Tipos de computación paralela

REDES DE INTERCONEXIÓN

CONTROL DE FLUJO Los primeros multiprocesadores utilizaron la

técnica de control de flujo store-and-forwards, bien establecida en las redes de área local.

En 1979, Kermani y KZeinrock introdujeron la técnica de control de flujo virtual cut-through6 (control de flujo segmentado). En ella cada unidad mínima de información intercambiable entre routers, denominada phit, puede ser reenviada al siguiente router, sin haber recibido todo el paquete.

Page 30: Tipos de computación paralela

REDES DE INTERCONEXIÓN

ALGORITMO DE ENCARNINAMIENTO

el método utilizado para elegir el camino entre cada origen y destino. La primera idea consiste en fijar una ruta predeterminada. Este tipo es denominado encaminamiento determinista. En él, los encaminadores son sencillos, rápidos y de bajo coste. Su principal desventaja es que puede provocar grandes desbalanceos en los niveles de ocupación de los recursos en numerosas situaciones de tráfico.

Como alternativa apareció el encaminamiento adaptativo en el que la elección del camino depende de los nodos origen y destino y, además, del estado de la red en el momento de la transmisión. Los encaminadores adaptativos son mucho más complejos, con lo que aumenta su coste y disminuye su rapidez.

Page 31: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

se observa que las mejoras en el desarrollo producen una reducción en la duración del ciclo.

Page 32: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

El Cray T3E es el exponente de la segunda generación de una

familia de sistemas multiprocesador que comenzó con el Cray T3D. La red de interconexión en ambos sistemas es un toro 3-D. Cada unidad de proceso está formada por un DEC Alpha 21164, 2 Gbytes de memoria, un router de comunicación y un módulo de control. Cada procesador es capaz de procesar instrucciones por periodo de reloj, llegando a tener un pico de hasta 600 Mflops para procesadores de 300 Mhz y 900 Mflops para procesadores de 450Mhz. Este procesador soporta aritmética de 32 y 64 bits.

Page 33: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

El Cray T3E - Arquitectura

Page 34: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

Myrinet Es una red de interconexión ideada para

NOWs (Network Of Workstations) de una red LAN con características particulares para su utilización en NOWs. Así p (virtual cut-through). Consta de dos elementos básicos: de red y los conmutadores. Ambos elementos se pueden combinar de diversas formas diferentes topologías irregulares.

Page 35: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

Red de interconexión basada en Myrinet.

Page 36: Tipos de computación paralela

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

Estructura de una interfaz de red Myrinet. Procesador LANai.