Multiprocesamiento

Se denomina multiprocesador a un computador que cuenta con dos o más microprocesadores (CPUs).

El multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.

  • La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte de la memoria.
  • La arquitectura SMP, donde todos los procesadores comparten toda la memoria.

Para que un multiprocesador opere correctamente necesita un sistema operativo especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen esta capacidad.

Cuando se desea incrementar el desempeño más de lo que permite la técnica de segmentación (pipeline), se requiere utilizar más de un procesador para la ejecución del programa de aplicación.

Los CPU de multiprocesamiento según Flynn se clasifican de la siguiente manera:

  • SISO - (Single Instruction, Single Operand) computadoras monoprocesador
  • SIMO - (Single Instruction, Multiple Operand) procesadores vectoriales, Exenciones MMX
  • MISO - (Multiple Instruction, Single Operand) No implementado
  • MIMO - (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters, GPUs




Clusters

Conjuntos de computadoras independientes conectadas en una red de área local o por un bus de interconexión y que trabajan cooperativamente. Con un sistema de procesamiento paralelo o distribuido. Consta de un conjunto de computadoras independientes, interconectadas entre sí, de tal manera que funcionan como un solo recurso computacional.

Es clave en su funcionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir el trabajo entre las computadoras de la red. Este tipo de computadora paralela se ha vuelto muy popular por que permite usar los avances en los procesadores comerciales que tienen una muy buena relación costo rendimiento y se puede incorporar rápidamente los avances que proporciona las nuevas tecnologías en cuanto es económicamente viable.

Sin embargo, se debe tener cuidado al implementar la aplicación, ya que si los datos que hay que pasar de un procesador a otro son demasiados, el tiempo empleado en pasar información de un nodo a otro puede sobrepasar a la ganancia que se tiene al dividir el trabajo entre varios procesadores.


Procesadores Gráficos(Graphics Processing Unit GPU)




Sistemas diseñados originalmente para el procesamiento de gráficos, con múltiples procesadores vectoriales sencillos compartiendo la misma memoria.

La cual también puede ser accedida por el CPU. Por la gran cantidad de núcleos con los que cuenta, logran un excelente desempeño al ejecutar algoritmos que se adaptan a ser paralelizados, a tal grado que muchas de las supercomputadoras más rápidas de la actualidad utilizan estos procesadores, y los fabricantes de tarjetas gráficas producen versiones de sus productos especializadas en acelerar los cálculos de propósito general.