DEFINICION DE ARQUITECTURAS PARALELAS


El primer paso hacia la paralelización de las arquitecturas de los computadores, se da con la aparición de los procesadores o sistemas vectoriales. Los procesadores vectoriales extienden el concepto de paralelismo por segmentación al tratamiento de grandes cadenas de datos.

Problemas. Se han propuesto diversas definiciones para arquitecturas paralelas. La dificultad en definir con precisión el término está entrelazada con el problema de especificar una taxonomía de arquitecturas paralelas. El problema central para poder especificar una definición y consiguientemente la taxonomía para las modernas arquitecturas paralelas es lograr satisfacer el siguiente conjunto de imperativos:
Excluir las arquitecturas que incorporan solamente mecanismos de paralelismo de bajo nivel y que se han popularizado tanto como característica típica de las modernas computadoras.
Mantener los elementos útiles de la clasificación de Flynn tales como los flujos de datos e instrucciones.
Incluir los procesadores vectoriales pipelinizados y otras arquitecturas que intuitivamente ameritan incluirse como arquitecturas paralelas, pero que no se ajustan fácilmente al esquema de Flynn.


Clasificacióon de Flynn


Probablemente la clasificación mas popular de computadores sea la clasificación de Flynn. Esta taxonomía de las arquitecturas está basada en la clasificación 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 de la siguiente manera:

- SISD (Single instrucción stream, single data stream): un solo flujo de instrucciones y un solo flujo de datos.

- SIMD (Single instrucción stream, múltiple data stream): un solo flujo de instrucciones y varios flujos de datos.

- MISD (múltiple instrucción stream, single data stream): Varios flujos de instrucciones y un solo flujo de datos.

- MIMD (múltiple instrucción stream, múltiple data stream): Varios flujos de instrucciones y varios flujos de datos.

El primer tipo (SISD) se refiere a las maquinas de arquitectura Von Newmann como los PC’s que manejamos comúnmente, como sabemos este tipo de maquinas tienen limites físicos que limitan su capacidad de procesamiento; esto motiva la investigación en maquinas de arquitectura en paralelo para obtener un mayor rendimiento.

Entre las máquinas de tipo MISD algunos incluyen a las máquinas de arquitectura pipeline y otros consideran que no es práctico considerar este tipo de arquitectura e incluyen a la arquitectura pipeline en la SISD.

Comparación entre las arquitecturas SIMD y MIMD

SIMD
MIMD

Requiere menos hardware: 1 unidad de control
Requiere más Hardware

Necesita menos memoria: 1 sola copia del programa
Necesita memoria para cada uno de los programas

Adecuada para programas de datos paralelos: se requiere ejecutar el mismo programa sobre un gran número de datos.
Puede ejecutar varias tareas distintas al mismo tiempo o emular un procesador SIMD mediante mecanismos de sincronización.

Menor tiempo de arranque para comunicarse con los vecinos: debido a que se posee un reloj global.
Para comunicarse es necesario usar mecanismos de sincronización

Más costosa: Se requiere diseñar un microchip de arquitectura especial.
Más barata: se pueden construir usando procesadores SISD de propósito general a gran escala, los cuales son muy baratos debido a la economía de escala.