Está en la página 1de 22

COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI.

VIRIDIANA PREZ MENCA

Introduccin a las Arquitecturas Paralelas


Uso de muchas unidades de proceso independientes para ejecutar distintas partes de una tarea en simultneo

Principal objetivo: Aumento del RENDIMIENTO. Aumento de la capacidad para resolver problemas
computacionales grandes

Cmo?
Divisin del trabajo en tareas ms pequeas e independientes Asignacin de las tareas a
distintas unidades de proceso
Resolucin de las tareas en simultneo.

Problemas:
Sincronizacin de las tareas.
control de ejecucin simultanea
conflictos debidos a dependencias
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Procesamiento Paralelo
Limitaciones:
En algunos problemas el incremento del nmero de procesadores no
mejora el rendimiento global, incluso empeora la eficiencia del sistema.

La eficiencia se mejora cuando:

se logra un balance de carga entre procesadores: igual


numero de tareas de igual tamao

Se minimiza la interaccin entre tareas: se


minimiza la comunicacin o, al menos, se
mejoran los canales de comunicacin

elementos de proceso

2
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Sistema paralelo
Conjunto de elementos de proceso que, operando juntos, permiten
resolver problemas computacionales complejos de forma eficiente
Caractersticas de un sistema paralelo:

Cantidad y potencia de los elementos de proceso

Tipo y Tamao de la memoria

Forma de comunicacin entre los elementos de proceso

Rendimiento

Escalabilidad del sistema

Recursos de potencia requeridos

3
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Niveles de paralelismo

El paralelismo puede estudiarse a varios niveles:

Trabajo: Dos programas distintos pueden ejecutarse en paralelo


Tarea: En este nivel se consideran varias tareas independientes
entre si formando parte de un programa determinado. Es posible
la interaccin de las tareas
Proceso: Varios procesos componen una tarea. Son bloques con
funcionalidad bien definida.
Variable: El paralelismo puede darse a nivel de variables ya que
varias instrucciones pueden ser ejecutadas en paralelo
siendo el punto de conflicto las variables en comn
Bit: Todos los computadores usan paralelismo a nivel de bit
4
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Arquitecturas de procesadores
Complejidad del procesador:
Arquitectura caracterstica y estructura de cada procesador del
sistema.

ntimamente ligado con la funcionalidad


(variedad de operaciones y cantidad de instrucciones)

Arreglos sistlicos homogneos complejidad baja


MIMD Heterogneos complejidad alta

5
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Arquitecturas de procesadores
Modo de operacin:
Forma de controlar la secuencia de operaciones a realizar para
llevar adelante la ejecucin de una tarea
Control flow
Las instrucciones se ejecutan en el orden dispuesto por
el algoritmo
Data flow
Las operaciones se realizan segn la disponibilidad de
datos
Demand flow
Los resultados parciales se calculan por demanda, o sea
cuando se los necesita

6
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Arquitecturas de procesadores
Organizacin de la memoria:
Tipo de memoria utilizada en el sistema

Direccionable
Accedida por referencias a los datos
Asociativa
Accedida por contenido
Interconectada
Accedida por cualidades de los datos
(redes neuronales)

7
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Arquitecturas de procesadores
Red de interconexin:
Conexionado de hardware entre procesadores y entre
procesadores y memorias

La arquitectura de conexionado debe ajustarse lo mejor


posible a la topologa de un algoritmo para mejorar la
performance

8
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Arquitecturas de procesadores

Nmero de procesadores y tamao de la memoria:


Potencia de clculo del sistema y capacidad de almacenamiento
de datos del mismo

Clasificacin:
Sistemas grandes: ms de 1000 procesadores

Sistemas medios: de 100 a 1000 procesadores

Sistemas chicos: hasta 100 procesadores

9
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Organizacin de las arquitecturas

10
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

mbitos de uso de la computacin paralela


Simulacin de modelos complejos

Diseo y automatizacin de proyectos de ingeniera

Exploracin petrolera y minera

Medicina

rea militar

Cine: efectos visuales, animacin 3D

Realidad Virtual

Comercio electrnico

Mega bases de datos (google, youtube, rapidshare)

11
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Evolucin del rendimiento

12
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Incremento de velocidad
3000 MHz XEON 3 GHz

2000 MHz
Bus CPU: 6 veces mas rpido

reloj CPU: 100 veces mas rpido


PIII 1,3 GHz

ATHLON GHz

PIII 1 GHz
1000 MHz
ATHLON 600

P II 400

500 MHz
486 DX100

100 MHz 486 DX33

89 90 91 92 93 94 95 96 97 98 99 00 01 02 03

13
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

TIPOS DE COMPUTACIN PARALELA

Paralelismo a nivel de bit:

Desde el advenimiento de la integracin a gran escala (VLSI) como tecnologa de fabricacin de chips
de computadora en la dcada de 1970 hasta alrededor de 1986, la aceleracin en la arquitectura de
computadores se lograba en gran medida duplicando el tamao de la palabra en la computadora, la cantidad
de informacin que el procesador puede manejar por ciclo.

El aumento del tamao de la palabra reduce el nmero de instrucciones que el procesador debe ejecutar
para realizar una operacin en variables cuyos tamaos son mayores que la longitud de la palabra. Por
ejemplo, cuando un procesador de 8 bits debe sumar dos enteros de 16 bits, el procesador primero debe
adicionar los 8 bits de orden inferior de cada nmero entero con la instruccin de adicin, a continuacin,
aadir los 8 bits de orden superior utilizando la instruccin de adicin con acarreo que tiene en cuenta el bit
de acarreo de la adicin de orden inferior, en este caso un procesador de 8 bits requiere dos instrucciones para
completar una sola operacin, en donde un procesador de 16 bits necesita una sola instruccin para poder
completarla.
Histricamente, los microprocesadores de 4 bits fueron sustituidos por unos de 8 bits, luego de 16 bits y
32 bits, esta tendencia general lleg a su fin con la introduccin de procesadores de 64 bits, lo que ha sido un
estndar en la computacin de propsito general durante la ltima dcada.

14
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Paralelismo a nivel de instruccin:

Un programa de ordenador es, en esencia, una secuencia de instrucciones ejecutadas por un procesador.
Estas instrucciones pueden reordenarse y combinarse en grupos que luego son ejecutadas en paralelo sin
cambiar el resultado del programa. Esto se conoce como paralelismo a nivel de instruccin. Los avances en
el paralelismo a nivel de instruccin dominaron la arquitectura de computadores desde mediados de 1980
hasta mediados de la dcada de 1990.
Los procesadores modernos tienen ''pipeline'' de instrucciones de varias etapas. Cada etapa en el
pipeline corresponde a una accin diferente que el procesador realiza en la instruccin correspondiente a la
etapa; un procesador con un pipelinede N etapas puede tener hasta n instrucciones diferentes en diferentes
etapas de finalizacin. El ejemplo cannico de un procesador segmentado es un procesador RISC, con cinco
etapas: pedir instruccin, decodificar, ejecutar, acceso a la memoria y escritura. El procesador Pentium 4 tena
un pipeline de 35 etapas.
Adems del paralelismo a nivel de instruccin del pipelining, algunos procesadores pueden ejecutar
ms de una instruccin a la vez. Estos son conocidos como procesadores superescalares. Las instrucciones
pueden agruparse juntas slo si no hay dependencia de datos entre ellas. El scoreboarding y el algoritmo de
Tomasulo, que es similar a scoreboarding pero hace uso del renombre de registros, son dos de las tcnicas
ms comunes para implementar la ejecucin fuera de orden y la paralelizacin a nivel de instruccin.

15
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Paralelismo de datos:

El paralelismo de datos es el paralelismo inherente en programas con ciclos, que se centra en la


distribucin de los datos entre los diferentes nodos computacionales que deben tratarse en paralelo. La
paralelizacin de ciclos conduce a menudo a secuencias similares de operaciones, no necesariamente
idnticas, o funciones que se realizan en los elementos de una gran estructura de datos. Muchas de las
aplicaciones cientficas y de ingeniera muestran paralelismo de datos.
Una dependencia de terminacin de ciclo es la dependencia de una iteracin de un ciclo en la salida de
una o ms iteraciones anteriores. Las dependencias de terminacin de ciclo evitan la paralelizacin de ciclos.

Un procesador superescalar con pipeline de cinco etapas, capaz de ejecutar dos instrucciones por ciclo.
Puede tener dos instrucciones en cada etapa del pipeline, para un total de hasta 10 instrucciones (se muestra
en verde) ejecutadas simultneamente.

16
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Paralelismo de tareas:

El paralelismo de tareas es la caracterstica de un programa paralelo en la que clculos completamente


diferentes se pueden realizar en cualquier conjunto igual o diferente de datos. Esto contrasta con el paralelismo
de datos, donde se realiza el mismo clculo en distintos o mismos grupos de datos. El paralelismo de tareas
por lo general no escala con el tamao de un problema.

Taxonoma de las arquitecturas paralelas.

La clasificacin de Flynn ha demostrado funcionar bastante bien para la tipificacin de sistemas, y se


ha venido usando desde dcadas por la mayora de los arquitectos de computadores. Sin embargo, los avances
en tecnologa y diferentes topologas, han llevado a sistemas que no son tan fciles de clasificar dentro de los
4 tipos de Flynn. Por ejemplo, los procesadores vectoriales no encajan adecuadamente en esta clasificacin,
ni tampoco las arquitecturas hibridas. Para solucionar esto se han propuesto otras clasificaciones, donde los
tipos SIMD y MIMD de Flynn se suelen conservar, pero que sin duda no han tenido el xito de la de Flynn.
La siguiente figura muestra una taxonoma ampliada que incluye alguno de los avances en arquitecturas de
computadores en los ltimos aos. No obstante, tampoco pretende ser una caracterizacin completa de todas
las arquitecturas paralelas existentes.

17
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

18
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

ARQUITECTURA DE LOS
COMPUTADORES SECUENCIALES
TAXONOMA DE FLYNN

Probablemente la clasificacin ms popular de computadores sea la clasificacin de Flynn. Esta


taxnoma de las arquitecturas est basada en la clasificacin atendiendo al flujo de datos e instrucciones en
un sistema. Un flujo de instrucciones es el conjunto de instrucciones secuenciales que son ejecutadas por un
nico procesador, y un flujo de datos es el flujo secuencial de datos requeridos por el flujo de instrucciones.
Con estas consideraciones, Flynn clasifica los sistemas en cuatro categoras:

SISD (Single Instruction stream, Single Data stream) Flujo nico de instrucciones y flujo nico de datos.
Este el concepto de arquitectura serie de Von Neumann donde, en cualquier momento, slo se est
ejecutando una nica instruccin. A menudo a los SISD se les conoce como computadores serie
escalares. Todas las maquinas SISD poseen un registro simple que se llama contador de programa que
asegura la ejecucin en serie del programa. Conforme se van leyendo las instrucciones de la memoria,
el contador de programa se actualiza para que apunte a la siguiente instruccin a procesar en serie.
Prcticamente ningn computador puramente SISD se fabrica hoy en da ya que la mayora de
procesadores modernos incorporan algn grado de paralelizacion como es la segmentacin de
instrucciones o la posibilidad de lanzar dos instrucciones a un tiempo (superescalares).

19
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

MISD (Multiple Instruction stream, Single Data stream) Flujo mltiple de instrucciones y nico flujo
de datos. Esto significa que varias instrucciones actan sobre el mismo y nico trozo de datos. Este tipo
de mquinas se pueden interpretar de dos maneras. Una es considerar la clase de mquinas que
requeriran que unidades de procesamiento diferentes recibieran instrucciones distintas operando sobre
los mismos datos. Esta clase de arquitectura ha sido clasificada por numerosos arquitectos de
computadores como impracticable o imposible, y en estos momentos no existen ejemplos que funcionen
siguiendo este modelo. Otra forma de interpretar los MISD es como una clase de mquinas donde un
mismo flujo de datos fluye a travs de numerosas unidades procesadoras. Arquitecturas altamente
segmentadas, como los arrays sistlicos o los procesadores vectoriales, son clasificados a menudo bajo
este tipo de mquinas. Las arquitecturas segmentadas, o encauzadas, realizan el procesamiento vectorial
a travs de una serie de etapas, cada una ejecutando una funcin particular produciendo un resultado
intermedio. La razn por la cual dichas arquitecturas son clasificadas como MISD es que los elementos
de un vector pueden ser considerados como pertenecientes al mismo dato, y todas las etapas del cauce
representan mltiples instrucciones que son aplicadas sobre ese vector.

SIMD (Single Instruction stream, Multiple Data stream) Flujo de instruccin simple y flujo de datos
mltiple. Esto significa que una nica instruccin es aplicada sobre diferentes datos al mismo tiempo.
En las mquinas de este tipo, varias unidades de procesado diferentes son invocadas por una nica
unidad de control. Al igual que las MISD, las SIMD soportan procesamiento vectorial (matricial)
asignando cada elemento del vector a una unidad funcional diferente para procesamiento concurrente.

20
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

Por ejemplo, el clculo de la paga para cada trabajador en una empresa, es repetir la misma operacin sencilla
para cada trabajador; si se dispone de una arquitectura SIMD esto se puede calcular en paralelo para cada
trabajador. Por esta facilidad en la paralelizacion de vectores de datos (los trabajadores formaran un vector)
se les llama tambin procesadores matriciales.

MIMD (Multiple Instruction stream, Multiple Data stream) Flujo de instrucciones mltiple y flujo de
datos mltiple. Son mquinas que poseen varias unidades procesadoras en las cuales se pueden realizar
mltiples instrucciones sobre datos diferentes de forma simultnea. Las MIMD son las ms complejas,
pero son tambin las que potencialmente ofrecen una mayor eficiencia en la ejecucin concurrente o
paralela. Aqu la concurrencia implica que no slo hay varios procesadores operando simultneamente,
sino que adems hay varios programas (procesos) ejecutndose tambin al mismo tiempo.

21
COMPUTACION DISTRIBUIDA Y PARALELA UNIDAD 2 ARQUITECTURAS PARALELAS MGTI. VIRIDIANA PREZ MENCA

ORGANIZACIN DEL ESPACIO DE


DIRECCIONES DE MEMORIA
La memoria de acceso secuencial son memorias en la cuales para acceder a un registro en particular se
tienen que leer registro por registro desde el inicio hasta alcanzar el registro particular que contiene el dato
que se requiere. Estas memorias se clasifican en:

Registros de desplazamiento
Dispositivos por acoplamiento por carga
Memorias de burbuja

22

También podría gustarte