Sistemas masivamente paralelos

Recientemente ha comenzado a dar mucho que hablar una arquitectura de ordenadores denominada de proceso masivamente paralelo o sistemas masivamente paralelos. Realmente esta arquitectura no es totalmente nueva , existía desde hace años en aplicaciones militares, de simulación y en investigación y desarrollo. Como ejemplos de estos sistemas cabe citar nCUBE, MasPar y Thinking Machines. No incluyo sistemas como Cray o Convex por disponer estos de arquitecturas no convencionales de tipo vectorial.

Lo que ha ocurrido es que, ante los recortes presupuestarios que han experimentado los sectores en los que los sistemas anteriormente citados tenían su principal campo de aplicación, los fabricantes de sistemas masivamente paralelos buscan mantener sus niveles de ventas con aplicaciones comerciales en los sectores clásicos del mercado de gestión.

Al hacer esto, lo que ese mercado ha descubierto es que este tipo de sistemas es bastante más barato, para una potencia dada, que los grandes sistemas convencionales que se estaban utilizando hasta ahora, su crecimiento es mucho más sencillo y prácticamente carecen de techo en cuanto a capacidad máxima.

Sistema Multiprocesador Simétrico

En las aplicaciones comerciales, el mercado estaba comenzando a verse dominado por sistemas convencionales complejos dotados de varios, y en algunos casos muchos, procesadores. Este tipo de sistemas se conoce como Sistema Multiprocesador Simétrico. Estos sistemas disponen de un número variable de procesadores o CPUs. Los procesadores están fuertemente acoplados, es decir, todos ellos trabajan al unísono. Realmente lo que ocurre es que existe alguna parte especializada del sistema operativo que se encarga de trocear una tarea básica en un conjunto de operaciones elementales más pequeñas. Cada procesador es el responsable de la ejecución de cada una de estas operaciones. En resumidas cuentas, en un sistema multiprocesador simétrico TODOS los procesadores están, en un momento dado, trabajando en distintas partes de una misma tarea.

La existencia de múltiples procesadores permite disponer de una mayor potencia total en el sistema. Sin embargo este tipo de arquitectura presenta serios inconvenientes en cuanto a su capacidad de crecimiento. En efecto, existen ciertos componentes que son compartidos por todos los procesadores, tal es el caso de la memoria que al ser un recurso común a todos ellos constituye un cuello de botella que, incluso, se acentúa a medida que, para obtener mayor potencia, aumentamos el número de procesadores: son más los elemntos que han de competir por un recurso compartido. Esta es la razón por la que estos sistemas presentan un techo, un límite en cuanto al número de procesadores a instalar. Cada vez que se añade un procesador el incremento de potencia que se consigue es tan sólo de una fracción de la potencia de ese procesador, fracción que va decreciendo a medida que aumenta el número de ellos , llegando un momento en que al instalar un procesador más el sistema resultante es menos potente que sin ese procesador. Para aclarar este efecto se puede citar un sistema concreto, disponible comercialmente, en el que el segundo procesador sólo aporta al sistema un 85% de su potencia, el tercero un 65%, el cuarto un 25% (claramente el sistema se va degradando) y al montar un quinto procesador el sistema es menos potente que con cuatro. El techo de este sistema, por tanto, se encuentra en cuatro CPUs, ya que la quinta no aporta incremento, sino disminución de potencia.

El número máximo de procesadores se encuentra en torno a los diez o doce, aunque algunas arquitecturas particulares han conseguido eliminar parcialmente los cuellos de botella y llegan hasta los 36 procesadores, como es el caso de Silicon Graphics.

El incorporar microprocesadores más potentes no resuelve el problema, al contrario, lo acentúa, ya que se hará más notoria la lucha por los recursos comunes. La única solución es utilizar memorias más rápidas (mucho más caras) o buses de mayor anchura de banda (también más caros), solución que también tendrá un límite, por lo que, en cualquier caso, nunca se podrá esperar un crecimiento ilimitado y siempre se estará a expensas de la tecnología para poder incrementar la potencia total disponible. Como ejemplo de este tipo de sistemas se pueden citar a Pyramid, ICL, Sequent, Silicon Graphics, HP y muchos otros.

Sistemas Masivamente Paralelos

En los sistemas masivamente paralelos, anteriomente citados, no se producen ese tipo de problemas. En el propio nombre del sistema aparecen dos conceptos que conviene aclarar:

-Paralelo: Significa que los procesadores que constituyen estos sistemas realizan tareas diferentes simultáneamente en el tiempo

-Masivo: El sistema tiene muchos procesadores, aunque el número que debe tener un sistema para denominarse masivo no está definido. El Gartner Group, por ejemplo, define como sistema masivamente paralelo aquél que tiene más de 10 procesadores

En este tipo de sistemas no existe el cuello de botella típico de los sistemas multiprocesador simétricos ya que cada procesador dispone de su propia memoria y copia del sistema operativo. Así mismo, cada nuevo procesador adicionado lo es junto con su memoria correspondiente y su sistema operativo, por lo que aporta el 100% de su potencia.

La adición de nuevos procesadores realmente no tiene límite y tan sólo se ve condicionada por la tecnología utilizada en la interconexión de los mismos, siendo normal la utilización de sistemas del orden de los 1.000 procesadores, existiendo alguna arquitectura particular, tal como la de TANDEM, que permite sistemas constituidos por hasta 4.032 procesadores, siendo el único sistema comercial para aplicaciones críticas masivamente paralelo, pos ser, además, tolerante a fallos.

Son dos los peros que normalmente se ponen a estos sistemas, aunque ambos tienen solución: La fiabilidad no suele ser grande. Hay que tener en cuenta que la fiabilidad de un sistema en inversamente proporcional al número de sus componentes. Si el número de procesadores es muy grande, 500 por ejemplo, y esos procesadores son convencionales, la fiabilidad del sistema completo resulta muy pequeña. Este problema se puede solventar utilizando procesadores tolerantes a fallos.

El sistema operativo tiene que ser distribuido para que todos los procesadores puedan trabajar en paralelo y todos ellos se vean como un sistema único. Ejemplo típico de un sistema operativo estándar con estas características es el Microkernel de Unix el NonStop Kernel de Tandem, que cumple POSIX, es el único sistema operativo distribuido basado en mensajes.

De lo anteriormente expuesto se deduce que la arquitectura de sistema masivamente paralelos resulta ser la más adecuada para aplicaciones comerciales de gran volumen por razones de precio, facilidad de crecimiento y sin límite de potencia. Posiblemente la razón de su no proliferación sea la escasez de fabricantes de este tipo de sistemas.



TE PUEDE INTERESAR...

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital