Multiprocesadores y multicomputadoras

Hablaremos de multiprocesadores y multicomputadoras en este capítulo.

Interconexiones de sistemas multiprocesador

El procesamiento en paralelo necesita el uso de interconexiones de sistema eficientes para una comunicación rápida entre la entrada / salida y los dispositivos periféricos, multiprocesadores y memoria compartida.

Sistemas de bus jerárquicos

Un sistema de bus jerárquico consiste en una jerarquía de buses que conectan varios sistemas y subsistemas / componentes en una computadora. Cada bus se compone de una serie de líneas de señal, control y energía. Se utilizan diferentes buses como buses locales, buses de backplane y buses de E / S para realizar diferentes funciones de interconexión.

Los buses locales son los buses implementados en las placas de circuito impreso. Un bus de fondo es un circuito impreso en el que se utilizan muchos conectores para enchufar placas funcionales. Los buses que conectan dispositivos de entrada / salida a un sistema informático se conocen como buses de E / S.

Interruptor de barra transversal y memoria multipuerto

Las redes conmutadas proporcionan interconexiones dinámicas entre las entradas y salidas. Los sistemas de tamaño pequeño o mediano utilizan principalmente redes de barras cruzadas. Las redes de varias etapas se pueden expandir a los sistemas más grandes, si se puede resolver el problema de latencia incrementada.

Tanto el conmutador de barras cruzadas como la organización de memoria multipuerto es una red de una sola etapa. Aunque una red de una sola etapa es más barata de construir, es posible que se necesiten varias pasadas para establecer ciertas conexiones. Una red de varias etapas tiene más de una etapa de cajas de distribución. Estas redes deberían poder conectar cualquier entrada a cualquier salida.

Redes multietapa y combinadas

Las redes de múltiples etapas o redes de interconexión de múltiples etapas son una clase de redes de computadoras de alta velocidad que se componen principalmente de elementos de procesamiento en un extremo de la red y elementos de memoria en el otro extremo, conectados por elementos de conmutación.

Estas redes se aplican para construir sistemas multiprocesador más grandes. Esto incluye Omega Network, Butterfly Network y muchos más.

Multicomputadoras

Los multicomputadoras son arquitecturas MIMD de memoria distribuida. El siguiente diagrama muestra un modelo conceptual de una multicomputadora:

Los multicomputadoras son máquinas de paso de mensajes que aplican el método de conmutación de paquetes para intercambiar datos. Aquí, cada procesador tiene una memoria privada, pero no un espacio de direcciones global, ya que un procesador solo puede acceder a su propia memoria local. Entonces, la comunicación no es transparente: aquí los programadores tienen que poner explícitamente primitivas de comunicación en su código.

No tener una memoria accesible a nivel mundial es un inconveniente de las computadoras múltiples. Esto se puede resolver utilizando los siguientes dos esquemas:

  • Memoria compartida virtual (VSM)
  • Memoria virtual compartida (SVM)

En estos esquemas, el programador de aplicaciones asume una gran memoria compartida que es direccionable globalmente. Si es necesario, las referencias a la memoria hechas por las aplicaciones se traducen al paradigma de transmisión de mensajes.

Memoria compartida virtual (VSM)

VSM es una implementación de hardware. Por lo tanto, el sistema de memoria virtual del sistema operativo se implementa de forma transparente sobre VSM. Entonces, el sistema operativo cree que se está ejecutando en una máquina con memoria compartida.

Memoria virtual compartida (SVM)

SVM es una implementación de software a nivel de sistema operativo con soporte de hardware de la Unidad de administración de memoria (MMU) del procesador. Aquí, la unidad de intercambio son las páginas de memoria del sistema operativo.

Si un procesador se dirige a una ubicación de memoria en particular, la MMU determina si la página de memoria asociada con el acceso a la memoria está en la memoria local o no. Si la página no está en la memoria, en un sistema informático normal, el sistema operativo la cambia del disco. Pero, en SVM, el sistema operativo obtiene la página del nodo remoto que posee esa página en particular.

Tres generaciones de multicomputadoras

En esta sección, analizaremos tres generaciones de multicomputadoras.

Opciones de diseño en el pasado

Al seleccionar una tecnología de procesador, un diseñador de múltiples computadoras elige procesadores de grano medio de bajo costo como bloques de construcción. La mayoría de las computadoras en paralelo están construidas con microprocesadores estándar listos para usar. Se eligió la memoria distribuida para múltiples computadoras en lugar de usar memoria compartida, lo que limitaría la escalabilidad. Cada procesador tiene su propia unidad de memoria local.

Para el esquema de interconexión, las computadoras múltiples tienen paso de mensajes, redes directas punto a punto en lugar de redes de conmutación de direcciones. Para la estrategia de control, el diseñador de múltiples computadoras elige las operaciones asincrónicas MIMD, MPMD y SMPD. Cosmic Cube de Caltech (Seitz, 1983) es la primera de las múltiples computadoras de primera generación.

Desarrollo presente y futuro

Las computadoras de la próxima generación evolucionaron de multicomputadoras de grano medio a fino utilizando una memoria virtual compartida globalmente. En la actualidad, todavía se utilizan varios ordenadores de segunda generación. Pero utilizando mejores procesadores como i386, i860, etc., las computadoras de segunda generación se han desarrollado mucho.

Las computadoras de tercera generación son las computadoras de próxima generación en las que se utilizarán nodos implementados con VLSI. Cada nodo puede tener un procesador de 14 MIPS, canales de enrutamiento de 20 Mbytes / sy 16 Kbytes de RAM integrados en un solo chip.

El sistema Intel Paragon

Anteriormente, los nodos homogéneos se usaban para hacer hipercubos multicomputadoras, ya que todas las funciones se le asignaban al host. Entonces, esto limitó el ancho de banda de E / S. Por lo tanto, para resolver problemas a gran escala de manera eficiente o con alto rendimiento, estas computadoras no se pudieron utilizar. El sistema Intel Paragon fue diseñado para superar esta dificultad. Convirtió la multicomputadora en un servidor de aplicaciones con acceso multiusuario en un entorno de red.

Mecanismos de paso de mensajes

Los mecanismos de paso de mensajes en una red multicomputadora necesitan soporte especial de hardware y software. En esta sección, discutiremos algunos esquemas.

Esquemas de enrutamiento de mensajes

En multicomputadora con esquema de encaminamiento de almacenamiento y reenvío, los paquetes son la unidad más pequeña de transmisión de información. En las redes enrutadas por agujeros de gusano, los paquetes se dividen en flits. La longitud del paquete está determinada por el esquema de enrutamiento y la implementación de la red, mientras que la longitud del movimiento se ve afectada por el tamaño de la red.

En Store and forward routing, los paquetes son la unidad básica de transmisión de información. En este caso, cada nodo utiliza un búfer de paquetes. Un paquete se transmite desde un nodo de origen a un nodo de destino a través de una secuencia de nodos intermedios. La latencia es directamente proporcional a la distancia entre el origen y el destino.

En wormhole routing, la transmisión desde el nodo de origen al nodo de destino se realiza a través de una secuencia de enrutadores. Todos los movimientos del mismo paquete se transmiten en una secuencia inseparable en forma de canalizaciones. En este caso, solo el encabezado sabe a dónde va el paquete.

Interbloqueo y canales virtuales

Un canal virtual es un enlace lógico entre dos nodos. Está formado por flit buffer en nodo fuente y nodo receptor, y un canal físico entre ellos. Cuando se asigna un canal físico para un par, un búfer de origen se empareja con un búfer de receptor para formar un canal virtual.

Cuando todos los canales están ocupados por mensajes y ninguno de los canales del ciclo está libre, se producirá una situación de interbloqueo. Para evitar esto, se debe seguir un esquema para evitar el bloqueo.