jueves, 21 de julio de 2016

SISTEMAS MULTIPROCESADOR



Definición y clasificación de sistemas multiprocesadores



multiprocesador1
Básicamente hay dos formas de incrementar el rendimiento del hardware, la primera es incrementando la velocidad del procesador, lo cual con lleva a la disminución del tamaño de los componentes, pero esta solución se ve limitada por las leyes de la física, ya que al hacer los componentes mas pequeños con la finalidad de incrementar su velocidad, comienzan a aparecer corrientes de fuga, corrientes que deberían detenerse en una compuerta lógica determinada, pero que debido a la proximidad saltan de una compuerta a otra, produciendo errores inesperados. La otra forma es tomar los componentes, replicarlos y duplicar sus estructuras para hacer un efecto de “la unión hace la fuerza”.

Como podemos ver los avances tecnológicos en los microprocesadores actuales nos han llevado a esta ultima opción, en la cual podemos ver que los procesadores multinucleo actuales son fruto de esta estrategia, esta solución no es realmente nueva pues se ha implementado desde hace mucho tiempo atrás en los sistemas multiprocesadores, en los cuales se operan varios procesadores de alta velocidad en paralelo.
La idea principal de los sistemas de multiprocesadores es lograr la unión de los procesadores de forma tal que trabajen como si se tratase de una única computadora, en la cual se encuentran reunidas las capacidades de procesamiento de todos los procesadores y claro esta del resto de los recursos asociados a estos, como lo es la RAM, la memoria secundaria y los dispositivos de entrada y salida.
Uno de los ejemplos mas básicos que podemos encontrar de un sistema multiprocesador, son los cluster. Los cluster se forman de un conjunto de computadoras que se unen via red  y que mediante un sistema operativo y software especial funcionan como si fuera una sola, un ejemplo de esto , es el cluster Olintlali de la Universidad Nacional Autónoma de México o el cluster Aitzaloa de la Universidad Autonoma Metropolitan, el cual vemos en la imagen siguiente.
aitzaloa
Los equipos de multiprocesadores son empleados generalmente para la realización de cálculos complejos en investigación científica o para simular modelos de diferentes ciencias y que serian imposibles de procesador por un equipo convencional debido a la  gran cantidad de variables a analizar.
El multiprocesamiento ofrece un aumento en la productividad al permitir la ejecución de diferentes procesos sobre diferentes procesadores, al mismo tiempo que ofrece un aumento en la velocidad con la que se ejecutan los procesos al poder ejecutar diferentes parte de un proceso sobre procesadores diferentes, pero estas mejoras no están libres de ciertas complicaciones, al realizar una ejecución paralela de un programa, las diferentes partes del programa deben de sincronizarse e intercambiar datos para poder completar los cálculos, lo cual necesita hacerse con protección, detección y corrección de errores.
Los motivos para usar un sistema multiprocesador son variados, pero podemos mencionar:
  • Rendimiento y potencia de calculo. Al ejecutar los programas de forma paralela 
  • Tolerancia a fallos. La redundancia natural de un sistema multiprocesador permite transferir un proceso a otros procesadores en caso de fallo.
  • Flexibilidad. Los sistemas multiprocesador pueden reconfigurarse dinámicamente para adaptarse a las cargas de trabajo.
  • Escalabilidad. Se pueden añadir nuevos módulos para incrementar la potencia de calculo.
  • Especialización funcional. Se pueden agregar procesadores de diseño especifico para dedicarse a una determinada tarea
Los multiprocesadores se clasifican de acuerdo a la clasificación de arquitecturas  paralelas propuesto por Flynn, en el cual se toman como componentes el flujo de instrucciones y la cantidad de datos, creando los siguientes elementos:
  • SI.- Flujo de instrucciones simple
  • MI.- Flujo de instrucciones multiple
  • SD.- Un dato simple
  • MD.- Datos multiples
Con lo cual se produce la siguiente clasificación:
  • SISD: Sistemas monoprocesador.
  • SIMD: Sistemas vectoriales en los que una instrucción puede operar sobre diferentes datos en diferentes procesadores.
  • MISD.- En este esquema multiples instrucciones operan sobre un mismo dato.
  • MIMD.- Estos incluyen a la mayoría de los multiprocesadores
Los multiprocesadores del modelo MIMD pueden ser clasificados a su vez en:
  • Fuertemente acoplados.- Cuando existe memoria global
  • Débilmente acoplados.- Cuando en lugar de memoria global se usa memoria privada
Una memoria global indica que todos los procesadores acceden a una misma memoria común, mientras que la memoria privada indica que cada procesador posee su propia memoria y que ninguno de los procesadores  tiene acceso a la memoria de otro procesador.

Y AHORA TENEMOS LO QUE ES UNA DEFINICIÓN MAS COMPLETA
Los sistemas multiprocesador son la alternativa arquitectónica que la tecnología actual ha tomado para incrementar el rendimiento de los equipos de computo y mobil mediante la unión de un cierto numero de procesadores,esto derivado de las dificultades técnicas que se presentan al tratar de incrementar la velocidad de equipos de tamaños reducidos, entre estas podemos mencionar, las corrientes de fuga.
Aunque esta alternativa en un principio suponía un costo demasiado elevado, hoy en dia, gracias a la popularización de la esta tecnología sus costos se han reducido y es común encontrar diseños de procesadores trabajando en paralelo con 2 y 4 nucleos de procesamiento.

Los sistemas de multiprocesadores suponen varias ventajas
Rendimiento y potencia de calculo
Dedicando múltiples procesadores a la ejecución de una aplicación es posible incrementar la velocidad de ejecución, la interacción entre procesadores se pueden resolver rápidamente.

Toleranecia a fallos
La redundancia es una característica natural de los sistemas con múltiples procesadores, esta característica puede usarse para aumentar la disponibilidad de los recursos o hacer labores de verificación.

Flexibilidad
Un sistema multiprocesador es capaz de redistribuir de forma dinámica la carga de trabajo de los procesadores en caso de un aumento de procesos e incluso reasignar de forma dinámica los recursos de memoria y dispositivos para aumentar la eficiencia.

Especialización funcional
Sabemos que los procesadores están compuestos por una serie de unidades funcionales que se han ido especializando en distintas labores a lo largo del tiempo, tales como la ALU (unidad aritmético lógica), PFU (unidad de punto flotante), MMX (unidad multimedia), de la misma forma los sistemas multiprocesadores aprovechan para dedicar algunos procesadores a labores complejas para así adelantar tiempo en otros procesos de forma paralela.

Costo / rendimiento
Los procesador diseñados para servidores resultan algo costosos, razón por la que unir varios procesadores para aumentar el rendimiento y la capacidad de calculo resulta en una alternativa económica para obtener un rendimiento elevado.

Clasificación

Los multiprocesadores pueden clasificarse en;
  • Fuertemente acoplados: Cuando poseen una memoria global compartida por todos los procesadores
  • débilmente acoplados: Cuando tienen memorias individuales y no existe la compartición de memoria.
Esta clasificación sabemos que no es restrictiva, dado que los procesadores multinucleos actuales usan memorias individuales privadas y al mismo tiempo usan una memoria global compartida, esto implementado desde la cache interna de los procesadores.

Interconexión en los multiprocesadores

Las arquitecturas básicas a través de las cuales se interconectan los procesadores son:
Sistemas orientados a bus
Este es el modo mas sencillo de interconexión y consiste en utilizar un bus o canal único para conectar todos los procesadores a una memoria compartida. Esta arquitectura posee la ventaja de ser simple y productiva, pero el tamaño del bus determinara en gran medida la eficiencia del sistema, esto puede solucionarse ampliando el tamaño del bus o implementando memoria cache en los procesadores para descargar el trafico de datos dentro del bus.
Sistemas conectados por barras cruzadas
En este modelo los procesadores se conectan a las memorias a través de una rejilla en donde cada nodo o intersección de la rejilla es un conmutador, produciendo que cada procesador acceda a una memoria diferente cada vez.
Este modelo aunque parece eficiente, presenta  un problema cuando los procesadores tratan de acceder a un mismo dato en la memoria, ya que solo uno puede acceder y los demás quedaran esperando.
Hipercubos
Los hipercubos abordan la problemática con una estructura en forma de cubo que permite un crecimeinto modular y una reasignación de recursos, así como una subagrupación de los procesadores dado que cada procesador esta conectado con al menos tres procesadores de forma directa estos pueden agruparse para ejecutar de forma paralela un programa que requiera gran cantidad de computo  y el resto de los procesadores se ocupara de otros procesos.

Basado en conmutadores multiples

En esta clasificación los procesadores y las memorias de un sistema se conectan pasando por una serie de conmutadores divididos en etapas, la ventaja de este diseño es que asegura el acceso a la información de diferentes memorias al mismo tiempo, pero la preparación en los conmutadores con lleva un gasto de tiempo

No hay comentarios:

Publicar un comentario