Alternativas de arquitecturas de computación multiprocesador
Realidad actual de los sistemas MPP y SPP
Existen múltiples arquitecturas multiprocesador. No todas son, hoy en día, adecuadas para su uso comercial masivo, independientemente de la aplicación. Se ha hablado mucho de MPP, y el proceso escalable en paralelo (SPP) hace realidad, con creces, esa brillante promesa.
Hoy en día existen multitud de arquitecturas de sistemas de computación basadas conceptualmente en el uso de múltiples procesadores. Cualquier publicación especializada está llena, además, de siglas y conceptos como SMP, MPP, "clusters", SPP...
Mucho se ha hablado de ellas, y mucho más se va a hablar en el futuro. Pero lo primero que hay que tener en cuenta a la hora de poner sobre la mesa estos conceptos y decantarse por el uso de una u otra arquitectura, es cuál es la adecuada para solucionar el problema que tenemos. Cuál es auténticamente efectiva a la hora de ejecutar las aplicaciones que tenemos en mente.
Esta cuestión, además, se ve agravada por el hecho de que el uso de un sistema informático basado en una u otra arquitectura no debiera de ser una cuestión independiente de la aplicación final a ejecutar. Y muchas veces parece que así sea. Parece que una arquitectura es la ideal, la mejor, la última moda, por sí misma. Además, la calificación de algunas arquitecturas como "masivamente paralelas" empieza a ser una cuestión de prestigio en el ofrecimiento de algunos fabricantes. El uso de sistemas multiprocesadores, algo que no admite discusión. La solicitud por parte de los usuarios, a los fabricantes, de ofertas basadas en máquinas con un mínimo número de procesadores, no es un hecho aislado. Y así sucesivamente.
No es el propósito de este artículo el hablar sobre las diferentes arquitecturas y compararlas, sino hablar sobre los llamados "Sistemas Paralelos Escalables" o SPP. Pero hemos empezado de esta forma para dejar claro que el principal propósito de toda arquitectura de computación debiera ser el adecuarse a la solución de los problemas que los usuarios de los sistemas tengan. Ejecutar de la mejor y más rápida manera sus aplicaciones reales. No añadirles más complejidad sin necesidad, o llenarles la cabeza de dudas y promesas muchas veces incumplidas. Esto, desgraciadamente, sucede. Y en la actualidad, la oferta informática es extremadamente competitiva y compleja.
La búsqueda de la solución más sencilla, y al mismo tiempo efectiva, para la ejecución de las aplicaciones de los clientes, teniendo en cuenta sus prioridades, debieran ser, en cambio, las máximas ambiciones de los ofertantes en este mercado. Y poder disponer, a la hora de evaluar ofertas, de la mayor parte de las alternativas, una exigencia de los compradores a su suministrador. No dejarse llevar por cantos de sirena o últimas modas, algo a tener muy presente en todo momento. La informática y sus diferentes arquitecturas de proceso están para solucionar problemas, no para crearlos.
Proceso escalable en paralelo (SPP)
Casi al mismo tiempo que aparecieron las estaciones de trabajo interactivas basadas en microprocesador, se desarrollaron los sistemas de proceso masivamente paralelos (MPP), que contenían centenares o miles de procesadores. Las estaciones de trabajo irrumpieron con fuerza en el mercado; los sistemas abiertos se convirtieron en el estándar informático "de facto" y en la base de los ubicuos sistemas de información cliente/servidor que tanto proliferan en la actualidad.
Mientras tanto, los primeros usuarios de sistemas MPP debían hacer frente a una variedad de dificultades. El desarrollo de software MPP pronto cobraría fama por las dificultades que entrañaba la programación y pocos fabricantes desarrollaron aplicaciones para el minúsculo parque de sistemas MPP instalados. La falta de software acabó estrangulando el crecimiento del mercado MPP, produciéndose la típica situación de la pescadilla que se muerde la cola. Los usuarios no disponían de una manera sencilla de recompilar sus aplicaciones para estación de trabajo con el fin de ejecutarlas en un entorno de proceso masivamente paralelo. La disponibilidad de software de aplicación no era el único problema: no existían estándares MPP en el sector, por lo que cada fabricante desarrollaba sus propios métodos para implantar el paralelismo; los sistemas operativos y componentes MPP propietarios incrementaron el coste de explotación. En muchos casos, los clientes se vieron obligados a instalar un gran ordenador convencional o una estación de trabajo para que actuase como componente frontal del sistema MPP. Estos y otros problemas nunca llegaron a resolverse.
Normalmente se ha huido de la tecnología MPP y hoy representa tan sólo una pequeña fracción del mercado informático. Incluso ahora, algunos fabricantes de sistemas MPP no parecen seguir el paso marcado por los usuarios: siguen intentando desarrollar el equipo más potente a cualquier coste, esforzándose por alcanzar el objetivo de la "informática teraFLOPS". Y sin embargo, los usuarios potenciales de sistemas de proceso paralelo encuestados por International Data Corporation mostraron mucho menos interés en el rendimiento bruto que en la factibilidad del sistema.
La tecnología MPP se anunció a bombo y platillo en su primera fase y por ello el desencanto de la siguiente década ha sido incluso más pronunciado para los clientes, usuarios, desarrolladores, fabricantes e inversores que se vieron atrapados en este atolladero. Para muchos, el fracaso de MPP marcó el final del proceso paralelo a gran escala como tecnología viable y fuerza a tener en cuenta en el mercado. Sin embargo, la aparición y los primeros éxitos de la tecnología SPP parecen indicar lo contrario.
Surgen soluciones de proceso escalable paralelo
MPP fue un concepto revolucionario que se apartó de forma resuelta (y según algunos, hasta temeraria) de los estándares y métodos informáticos existentes. En cambio, la tecnología SPP ha evolucionado de manera bastante distinta, ya que se ideó a partir de un punto de vista diferente. Su objetivo fue la evolución, no la revolución.
Los creadores originales del concepto SPP pretendían poner en manos de los usuarios la enorme potencia del proceso paralelo a gran escala y aprovechar al mismo tiempo las tecnologías y los estándares "de facto" existentes, tales como la informática basada en estándares y el modelo cliente-servidor. La idea era muy simple: aportar no sólo potencia de proceso en bruto, sino una potencia útil y asequible en un entorno de trabajo familiar, junto con una facilidad de uso y el acceso a software de aplicación extensamente utilizado escrito para estaciones de trabajo y sistemas abiertos en general. Los nuevos sistemas utilizarían componentes de sobremesa económicos y de gran volumen, y aportarían una escalabilidad hasta los niveles más altos de prestaciones.
Una advertencia. Varios fabricantes de sistemas MPP han pretendido eludir la empañada etiqueta MPP adoptando el término SPP. Sin embargo, un verdadero sistema SPP debe cumplir tres criterios fundamentales:
- Debe abarcar el entorno de sobremesa y aumentar su rendimiento. Las aplicaciones que hacen un uso intensivo del cálculo pueden ejecutarse a una velocidad considerablemente mayor implantándose mediante herramientas familiares, manteniéndose el control interactivo por parte del usuario y exigiendo un mínimo de formación. Así se pueden ejecutar más iteraciones de un mayor número de proyectos con los recursos disponibles de CPU, aumentando la utilidad que obtienen los usuarios de su esfuerzo y mejorando la calidad de sus resultados.
- Un verdadero sistema SPP aporta un entorno que da cabida fácilmente al paralelismo sin recurrir a nuevos métodos informáticos. Los usuarios no tienen que aprender nuevas maneras de trabajar; los desarrolladores de aplicaciones de proceso paralelo no tienen que hacer frente a las complejidades impuestas por los sistemas tradicionales de p