MIMD


En informática , MIMD ( instrucción múltiple, datos múltiples ) es una técnica empleada para lograr el paralelismo. Las máquinas que utilizan MIMD tienen varios procesadores que funcionan de forma asíncrona e independiente. En cualquier momento, diferentes procesadores pueden estar ejecutando diferentes instrucciones en diferentes piezas de datos.

Las arquitecturas MIMD se pueden utilizar en varias áreas de aplicación, como diseño asistido por computadora / fabricación asistida por computadora , simulación , modelado y como conmutadores de comunicación . Las máquinas MIMD pueden ser de memoria compartida o de categorías de memoria distribuida . Estas clasificaciones se basan en cómo los procesadores MIMD acceden a la memoria. Las máquinas de memoria compartida pueden ser de tipo basado en bus , extendida o jerárquica . Las máquinas de memoria distribuida pueden tener esquemas de interconexión de hipercubo o malla .

Un ejemplo de sistema MIMD es Intel Xeon Phi , descendiente de la microarquitectura Larrabee . [2] Estos procesadores tienen múltiples núcleos de procesamiento (hasta 61 a partir de 2015) que pueden ejecutar diferentes instrucciones en diferentes datos.

En el modelo de memoria compartida, todos los procesadores están conectados a una memoria "disponible globalmente", ya sea mediante software o hardware. El sistema operativo generalmente mantiene su coherencia de memoria . [4]

Desde el punto de vista de un programador, este modelo de memoria se comprende mejor que el modelo de memoria distribuida. Otra ventaja es que la coherencia de la memoria la gestiona el sistema operativo y no el programa escrito. Dos desventajas conocidas son: la escalabilidad más allá de treinta y dos procesadores es difícil y el modelo de memoria compartida es menos flexible que el modelo de memoria distribuida. [4]

Hay muchos ejemplos de memoria compartida (multiprocesadores): UMA ( acceso uniforme a la memoria ), COMA ( acceso a la memoria solo en caché ). [5]