P. 1
Tipos de computación paralela

Tipos de computación paralela

|Views: 3,869|Likes:
Published by morris star
Uploaded from Google Docs
Uploaded from Google Docs

More info:

Published by: morris star on Jun 27, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPTX, PDF, TXT or read online from Scribd
See more
See less

06/20/2013

pdf

text

original

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.

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.

Ø 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.

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.

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.


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 Neumann  Un 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.

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.

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.


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).

    

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:

   

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.
Unidad de control SI Unidad de proceso SD Unidad de memoria

Data Input

Processor

Instructions

Data Output

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

Data Input stream A Data Input stream B Data Input stream C

Processor

A
Processor

B
Processor

C

Data Output stream A Data Output stream B Data Output stream C

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.
Instruction Stream A Instruction Stream B Instruction Stream C
Processor

A Data Input Stream
Processor

B
Processor

Data Output Stream C

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.
Instruction Stream A Instruction Stream B Instruction Stream C
Data Input stream A Data Input stream B Data Input stream C

Processor

A
Processor

Data Output stream A Data Output stream B
Processor

B C

Data Output stream C

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.

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.

Unidad de Control 1 Unidad de Control 2

SI

Elemento de proceso 1 Elemento de proceso 2

SD

SI

SD Memoria Compartida

Unidad de Control n

SI

Elemento de proceso n

SD

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

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.

Unidad de Control 1 Unidad de Control 2

SI

Elemento de proceso 1 Elemento de proceso 2

SD

Memoria Local 1 Memoria Local 2

SI

SD

Red de Interconexión

Unidad de Control n

SI

Elemento de proceso n

SD

Memoria Local n

CLASIFICACIÓN DE LAS ARQUITECTURAS PARALELAS

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

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.

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.

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.
 

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 indirectas

e

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.

REDES DE INTERCONEXIÓN
CONTROL DE FLUJO  Los primeros multiprocesadores utilizaron la técnica de control de flujo store-andforwards, bien establecida en las redes de área local.  En 1979, Kermani y KZeinrock introdujeron la técnica de control de flujo virtual cutthrough6 (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.

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.


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.

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.

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES
 El 

CrayT3E - Arquitectura

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.

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

Red de interconexión basada en Myrinet.

CARACTERÍSTICAS BÁSICAS DE ALGUNOS ENCAMINADORES

Estructura de una interfaz de red Myrinet. Procesador LANai.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->