Articulo de referencia

Instrucciones múltiples, datos múltiples

Taxonomía de Flynn para un diseño MIMD: instrucciones múltiples, datos múltiples. Cada "PU" (unidad de procesamiento) no corresponde necesariamente a un procesador, sino a una u...

Taxonomía de Flynn para un diseño MIMD: instrucciones múltiples, datos múltiples. Cada "PU" (unidad de procesamiento) no corresponde necesariamente a un procesador, sino a una unidad funcional capaz de realizar procesamiento. Las PU se identifican como tales para mostrar la relación entre las instrucciones, los datos y su procesamiento.

En informática , la técnica MIMD ( múltiples instrucciones, múltiples datos ) se emplea para lograr el paralelismo. Las máquinas que utilizan MIMD cuentan con varios núcleos de procesador que funcionan de forma asíncrona e independiente. En cualquier momento, diferentes procesadores pueden estar ejecutando distintas instrucciones sobre diferentes conjuntos de datos.

Las arquitecturas MIMD se pueden utilizar en diversas áreas de aplicación, como el diseño y la fabricación asistidos por ordenador , la simulación , el 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 .

Ejemplos

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.

La mayoría de las computadoras paralelas, a partir de 2013, son sistemas MIMD. [ 3 ]

Modelo de memoria compartida

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

Desde el punto de vista del 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 memoria ), COMA ( acceso a memoria solo caché ). [ 5 ]

Basado en autobuses

Las máquinas MIMD con memoria compartida tienen procesadores que comparten una memoria central común. En su forma más simple, todos los procesadores están conectados a un bus que los une a la memoria. Esto significa que cada máquina con memoria compartida comparte un sistema de bus común (CM) específico para todos los clientes.

Por ejemplo, si consideramos un bus con los clientes A, B y C conectados en un lado y los clientes P, Q y R conectados en el lado opuesto, cualquiera de los clientes se comunicará con los demás a través de la interfaz del bus que los conecta.

Jerárquico

Las máquinas MIMD con memoria compartida jerárquica utilizan una jerarquía de buses (como en un " árbol gordo ") para que los procesadores accedan a la memoria de los demás. Los procesadores en diferentes placas pueden comunicarse a través de buses internodales. Estos buses permiten la comunicación entre placas. Con este tipo de arquitectura, la máquina puede admitir más de nueve mil procesadores.

Memoria distribuida

En las máquinas MIMD (múltiples instrucciones, múltiples datos) de memoria distribuida, cada procesador tiene su propia ubicación de memoria individual. Ningún procesador tiene conocimiento directo de la memoria de los demás. Para compartir datos, estos deben transmitirse de un procesador a otro como un mensaje. Dado que no existe memoria compartida, la contención no representa un problema tan grave en estas máquinas. No es económicamente viable conectar un gran número de procesadores directamente entre sí. Una forma de evitar esta multitud de conexiones directas es conectar cada procesador solo con unos pocos. Este tipo de diseño puede resultar ineficiente debido al tiempo adicional necesario para transmitir un mensaje de un procesador a otro a lo largo de la ruta del mensaje. El tiempo que requieren los procesadores para realizar un enrutamiento de mensajes simple puede ser considerable. Los sistemas se diseñaron para reducir esta pérdida de tiempo, y el hipercubo y la malla se encuentran entre los esquemas de interconexión más populares.

Ejemplos de memoria distribuida (múltiples computadoras) incluyen MPP (procesadores masivamente paralelos) , COW (clústeres de estaciones de trabajo) y NUMA ( acceso a memoria no uniforme ). El primero es complejo y costoso: muchas supercomputadoras interconectadas por redes de banda ancha. Ejemplos de ello son las interconexiones de hipercubo y malla. COW es la versión "casera" a una fracción del precio. [ 5 ]

Red de interconexión de hipercubos

En una máquina de memoria distribuida MIMD con una red de interconexión de sistema hipercubo que contiene cuatro procesadores, un procesador y un módulo de memoria se colocan en cada vértice de un cuadrado. El diámetro del sistema es el número mínimo de pasos que necesita un procesador para enviar un mensaje al procesador más alejado. Por ejemplo, el diámetro de un 2-cubo es 2. En un sistema hipercubo con ocho procesadores, donde cada procesador y módulo de memoria se coloca en el vértice de un cubo, el diámetro es 3. En general, un sistema que contiene 2^N procesadores, cada uno conectado directamente a otros N procesadores, tiene un diámetro de N. Una desventaja de un sistema hipercubo es que debe configurarse en potencias de dos, por lo que se debe construir una máquina que potencialmente podría tener muchos más procesadores de los que realmente necesita la aplicación.

red de interconexión de malla

En una máquina de memoria distribuida MIMD con una red de interconexión en malla, los procesadores se ubican en una cuadrícula bidimensional. Cada procesador se conecta a sus cuatro vecinos inmediatos. Se pueden proporcionar conexiones envolventes en los bordes de la malla. Una ventaja de la red de interconexión en malla sobre el hipercubo es que el sistema de malla no necesita configurarse en potencias de dos. Una desventaja es que el diámetro de la red de malla es mayor que el del hipercubo para sistemas con más de cuatro procesadores.

Véase también

Referencias

  1. Flynn, Michael J. (septiembre de 1972). "Algunas organizaciones informáticas y su eficacia" (PDF) . IEEE Transactions on Computers . C-21 (9): 948–960 . doi : 10.1109/TC.1972.5009071 .
  2. "Los peligros del paralelismo: Larrabee contra Nvidia, MIMD contra SIMD" . 19 de septiembre de 2008.
  3. "MIMD | Zona de desarrolladores de Intel®" . Archivado del original el 16 de octubre de 2013. Consultado el 16 de octubre de 2013 .
  4. 1 2 Ibaroudene, Djaffer. "Procesamiento paralelo, EG6370G: Capítulo 1, Motivación e historia". Diapositivas de la clase. Universidad de St. Mary's , San Antonio, Texas . Primavera de 2008.
  5. 1 2 Andrew S. Tanenbaum (1997). Organización estructurada de computadoras (4.ª ed.). Prentice-Hall. págs. 559–585 . ISBN   978-0130959904Archivado del original el 1 de diciembre de 2013. Consultado el 15 de marzo de 2013 .