Múltiples instrucciones, múltiples datos


En computación , instrucción múltiple, datos múltiples ( MIMD ) 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 ejecutar diferentes instrucciones en diferentes 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 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 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", a través de medios de software o hardware. El sistema operativo normalmente mantiene su coherencia de memoria . [4]

Desde el punto de vista de un programador, este modelo de memoria se entiende 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 a memoria uniforme ), COMA ( acceso a memoria solo caché ). [5]