Un sistema multiprocesador se define como "un sistema con más de un procesador" y, más precisamente, "una serie de unidades centrales de procesamiento conectadas entre sí para permitir que tenga lugar el procesamiento en paralelo". [1] [2] [3]
El objetivo clave de un multiprocesador es aumentar la velocidad de ejecución de un sistema. Los otros objetivos son la tolerancia a fallos y la coincidencia de aplicaciones. [4]
El término "multiprocesador" se puede confundir con el término " multiprocesamiento ". Si bien el multiprocesamiento es un tipo de procesamiento en el que dos o más procesadores trabajan juntos para ejecutar múltiples programas simultáneamente, multiprocesador se refiere a una arquitectura de hardware que permite el multiprocesamiento. [5]
Los sistemas multiprocesador se clasifican según cómo se maneja el acceso a la memoria del procesador y si los procesadores del sistema son de un solo tipo o de varios.
Tipos de sistemas multiprocesador
Hay muchos tipos de sistemas multiprocesador:
- Sistema multiprocesador débilmente acoplado
- Sistema multiprocesador estrechamente acoplado
- Sistema multiprocesador homogéneo
- Sistema multiprocesador heterogéneo
- Sistema multiprocesador de memoria compartida
- Sistema multiprocesador de memoria distribuida
- Sistema de acceso uniforme a memoria (UMA)
- sistema cc – NUMA
- Sistema híbrido: memoria del sistema compartida para datos globales y memoria local para datos locales
Sistema multiprocesador débilmente acoplado (memoria distribuida)
En los sistemas de multiprocesador débilmente acoplados, cada procesador tiene su propia memoria local, canales de entrada / salida (E / S) y sistema operativo . Los procesadores intercambian datos a través de una red de comunicación de alta velocidad mediante el envío de mensajes mediante una técnica conocida como " paso de mensajes ". Los sistemas de multiprocesador débilmente acoplados también se conocen como sistemas de memoria distribuida, ya que los procesadores no comparten memoria física y tienen canales de E / S individuales.
Caracteristicas del sistema
- Estos sistemas pueden realizar programación de múltiples instrucciones sobre múltiples datos (MIMD).
- Este tipo de arquitectura permite el procesamiento en paralelo .
- La memoria distribuida es altamente escalable.
Sistema multiprocesador con memoria compartida estrechamente conectada a los procesadores.
Un sistema de multiprocesamiento simétrico es un sistema con memoria compartida centralizada llamada memoria principal (MM) que opera bajo un solo sistema operativo con dos o más procesadores homogéneos.
Hay dos tipos de sistemas:
- Sistema de acceso a memoria uniforme (UMA)
- Sistema NUMA
Sistema de acceso uniforme a memoria (UMA)
- Sistema de multiprocesamiento heterogéneo
- Sistema de multiprocesamiento simétrico (SMP)
Sistema multiprocesador heterogéneo
Un sistema de multiprocesamiento heterogéneo contiene múltiples, pero no homogéneas, unidades de procesamiento: unidades centrales de procesamiento (CPU), unidades de procesamiento de gráficos (GPU), procesadores de señales digitales (DSP) o cualquier tipo de circuitos integrados específicos de la aplicación (ASIC). La arquitectura del sistema permite que cualquier acelerador, por ejemplo, un procesador de gráficos, funcione al mismo nivel de procesamiento que la CPU del sistema.
Sistema multiprocesador simétrico
Sistemas que operan bajo un solo SO ( sistema operativo ) con dos o más procesadores homogéneos y con una memoria principal compartida centralizada.
Un sistema multiprocesador simétrico (SMP) es un sistema con un grupo de procesadores homogéneos que se ejecutan en un solo sistema operativo con una memoria principal compartida centralizada. Cada procesador, que ejecuta diferentes programas y trabaja con diferentes conjuntos de datos, tiene la capacidad de compartir recursos comunes (memoria, dispositivo de E / S, sistema de interrupción, etc.) que están conectados mediante un bus del sistema, una barra cruzada o una mezcla. de los dos, o un bus de direcciones y una barra transversal de datos.
Cada procesador tiene su propia memoria caché que actúa como puente entre el procesador y la memoria principal. La función de la caché es aliviar la necesidad de acceso a los datos de la memoria principal, reduciendo así el tráfico del bus del sistema.
El uso de la memoria compartida permite un tiempo de acceso a la memoria uniforme (UMA).
sistema cc-NUMA
Se sabe que el sistema SMP tiene una escalabilidad limitada. Para superar esta limitación, normalmente se utiliza la arquitectura denominada "cc-NUMA" (coherencia de caché - acceso a memoria no uniforme). La característica principal de un sistema cc-NUMA es tener memoria global compartida que se distribuye a cada nodo, aunque el "acceso" efectivo que tiene un procesador a la memoria de un subsistema de componentes remotos, o "nodo", es más lento en comparación con la memoria local. acceso, por lo que el acceso a la memoria es "no uniforme".
Un sistema cc – NUMA es un grupo de sistemas SMP, cada uno llamado "nodo", que puede tener un solo procesador, un procesador de múltiples núcleos o una combinación de los dos, de uno u otro tipo de arquitectura, conectados a través de un "red de conexión" de alta velocidad que puede ser un "enlace" que puede ser un anillo inverso simple o doble, o conexiones punto a punto de múltiples anillos, [6] [7] o una combinación de estos (p. ej. IBM Power Systems [6] [8] ), interconexión de bus (por ejemplo, NUMAq [9] ), "barra transversal", "bus segmentado" ( NUMA Bull HN ISI ex Honeywell , [10] ) " enrutador de malla ", etc.
cc-NUMA también se denomina arquitectura de "memoria compartida distribuida" (DSM). [11]
La diferencia en los tiempos de acceso entre la memoria local y la remota también puede ser de un orden de magnitud, dependiendo del tipo de red de conexión utilizada (más rápida en la interconexión de bus segmentado, barra transversal y punto a punto; más lenta en la conexión de anillos en serie).
Ejemplos de interconexión
Para superar este límite, normalmente se utiliza una caché remota grande (consulte Caché remota ). Con esta solución, el sistema cc-NUMA se acerca mucho a un gran sistema SMP.
Arquitectura estrechamente acoplada versus débilmente acoplada
Ambas arquitecturas tienen compensaciones que se pueden resumir de la siguiente manera:
- Las arquitecturas débilmente acopladas presentan un alto rendimiento de cada procesador individual, pero no permiten un fácil equilibrio en tiempo real de la carga entre los procesadores.
- Las arquitecturas estrechamente acopladas presentan un fácil equilibrio de carga y distribución entre procesadores, pero sufren el cuello de botella que consiste en compartir recursos comunes a través de uno o más buses.
Sistema multiprocesador con multiplicación de datos global
Un enfoque intermedio, entre los de las dos arquitecturas anteriores, es tener recursos comunes y recursos locales, como memorias locales (LM), en cada procesador.
Los recursos comunes son accesibles desde todos los procesadores a través del bus del sistema, mientras que los recursos locales solo son accesibles para el procesador local. Las memorias caché pueden verse desde esta perspectiva como memorias locales.
Este sistema (patentado por F. Zulian [12] ), utilizado en el sistema basado en Unix DPX / 2 300 (Bull Hn Information Systems Italia (ex Honeywell)), [13] [14] es una combinación de sistemas acoplados de forma ajustada y flexible y hace uso de todos los avances de estas dos arquitecturas.
La memoria local se divide en dos sectores, datos globales (GD) y datos locales (LD).
El concepto básico de esta arquitectura es tener datos globales, que es información modificable, accesible para todos los procesadores. Esta información se duplica y almacena en cada memoria local de cada procesador.
Cada vez que se modifican los datos globales en una memoria local, se envía una transmisión de escritura de hardware al bus del sistema a todas las demás memorias locales para mantener la coherencia de los datos globales. Así, los datos globales pueden ser leídos por cada procesador accediendo a su propia memoria local sin involucrar al bus del sistema. El acceso al bus del sistema solo es necesario cuando los datos globales se modifican en una memoria local para actualizar la copia de estos datos almacenados en las otras memorias locales.
Los datos locales se pueden intercambiar en un sistema débilmente acoplado a través del paso de mensajes
Referencias
- ^ "Definición y significado de multiprocesador - Diccionario inglés Collins" . www.collinsdictionary.com .
- ^ "Datos" (PDF) . www.cs.vu.nl .
- ^ "multiprocesador - Definición de multiprocesador en inglés por los diccionarios de Oxford" . Oxford Dictionaries - Inglés .
- ^ "¿Qué es un multiprocesador? - Definición de Techopedia" . Techopedia.com .
- ^ "Definición de diccionario multiprocesador - multiprocesador definido" . www.yourdictionary.com .
- ^ a b Sistemas MP de memoria compartida AMD Opteron - http://www.cse.wustl.edu/~roger/569M.s09/28_AMD_Hammer_MP_HC_v8.pdf
- ^ Una introducción a la interconexión Intel® QuickPath - http://www.intel.ie/content/dam/doc/white-paper/quick-path-interconnect-introduction-paper.pdf
- ^ "Descripción general de IBM POWER Systems" . computing.llnl.gov .
- ^ SourceForge - http://lse.sourceforge.net/numa/faq/system_descriptions.html
- ^ Bull HN F. Zulian - Patente A. Zulian - Sistema informático con un bus que tiene una estructura segmentada - http://www.freepatentsonline.com/6314484.html
- ^ Arquitectura NUMA - http://www.dba-oracle.com/real_application_clusters_rac_grid/numa.html
- ^ "Sistema multiprocesador con multiplación global de datos" .
- ^ "UNIX y Bull" . www.feb-patrimoine.com .
- ^ "Toro DPX" . www.feb-patrimoine.com .