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