Taxonomía de Flynn

Las computadoras paralelas se han utilizado durante muchos años, y se han propuesto y utilizado muchas alternativas arquitectónicas diferentes. En general, una computadora paralela se puede caracterizar como una colección de elementos de procesamiento que pueden comunicarse y cooperar para resolver rápidamente grandes problemas. Esta definición es intencionalmente bastante vaga para capturar una gran variedad de plataformas paralelas. La definición no aborda muchos detalles importantes, incluidos el número y la complejidad de los elementos de procesamiento, la estructura de la red de interconexión entre los elementos de procesamiento, la coordinación entre los elementos de procesamiento, así como las características importantes del problema a resolver.

Para una investigación más detallada, es útil hacer una clasificación según las características importantes de una computadora paralela. Un modelo simple para tal clasificación está dado por la taxonomía de Flynn. Esta taxonomía caracteriza las computadoras paralelas de acuerdo con el control global y los flujos de datos y control resultantes, dividiéndola en 4 categorías.

SISD

Una Secuencia de instrucciones y una secuencia de datos. Es un único procesador que interpreta una única secuencia de instrucciones para operar con los datos almacenados en una única memoria, no explota el paralelismo en las instrucciones ni en flujos de datos. Por lo tanto, SISD es la computadora secuencial convencional según el modelo de von Neumann

Figura 2.4: SISD

SIMD

Una secuencia de instrucciones y múltiples secuencias de datos. Una sola instrucción controla paso a paso la ejecución simultanea y sincronizada de un cierto número de elementos de procesamiento. Cada uno de ellos tiene una memoria asociada, un computador que explota varios flujos de datos dentro de un único flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Un ejemplo de estas arquitecturas son los procesadores vectoriales.

Figura 2.5: SIMD

MISD

Múltiples secuencias de instrucción y una secuencia de datos. Se transmite una secuencia de datos a un conjunto de procesadores, y cada uno de los cuales ejecuta una secuencia de instrucciones diferente. Poco común debido al hecho de que la efectividad de los múltiples flujos de instrucciones suele precisar de múltiples flujos de datos. Se han propuesto algunas arquitecturas teóricas, pero ninguna llegó a producirse en masa.

Figura 2.6: MISD

MIMD

Múltiples secuencias de instrucción y múltiples secuencias de datos. Consiste de un conjunto de procesadores que ejecutan simultáneamente secuencias de instrucción diferentes con conjuntos de datos diferentes. Los sistemas multiprocesador y los clusters son ejemplos de esta categoría.

Figura 2.7: MIMD

Volver