Opciones de tecnología de multiproceso
MPP frente a SMP
Las máquinas MPP y SMP actuales se entregan en una variedad de formas, tamaños y precios. El desafío está en elegir el modelo que funcione mejor para las propias necesidades.
Durante años, numerosas personas en el área de las ciencias informáticas han estado afirmando que los procesadores paralelos dominarán algún día el proceso de datos comercial de alto nivel. Sin embargo, la baja fiabilidad, la falta de software disponible y la dificultad de utilización han mantenido generalmente a estas máquinas fuera del sector empresarial.
Eso ha sido así hasta ahora. Al demandar las empresas alternativas más potentes y menos costosas a los mainframes, los vendedores de hardware están comenzando a ofrecer sistemas de proceso en paralelo a precios asequibles, y los vendedores de software están presentando una variedad de herramientas paralelas. Aunque quienes adoptaron inicialmente arquitecturas en paralelo hacen mención de problemas importantes en la puesta en marcha, por lo general aseguran que el beneficio obtenido vale el esfuerzo.
Sin embargo, los ahorros de costes no son la única fuerza que debe aconsejar la entrada de los procesadores en paralelo en la empresa. Procesar muchas transacciones relativamente independientes resulta natural para cualquier arquitectura en paralelo, en la que pueden dirigirse múltiples corrientes de transacciones a los procesadores, como en el caso de los clientes en las ventanillas de cajeros en los bancos. Además, las previsiones de rápido crecimiento establecidas por una empresa pueden aconsejar la implantación de un sistema que sea posible escalar fácilmente y a un coste relativamente bajo.
¿Cuál es la diferencia?
En los procesadores masivamente paralelos (MPP), cada procesador tiene su propia memoria local y funciona de manera relativamente independiente de los demás. En caso necesario, los procesadores comparten datos a través de una red interna de alta velocidad.
Aunque los usuarios deben pagar una penalización extra, o latencia, cuando se producen estas comunicaciones entre procesadores, tienen la posibilidad de escalar los sistemas hacia arriba de forma muy fácil. Esto sucede con frecuencia en el caso de los aumentos de rendimiento casi lineales, en los que un usuario conecta más placas de procesador/memoria.
Otro enfoque diferente para el proceso en paralelo es el del multiproceso simétrico (SMP), o arquitectura de proceso de memoria compartida, en la que todos los procesadores tienen memorias cache locales pero comparten una única memoria principal. Estas máquinas ofrecen generalmente una mayor eficiencia de costos para aplicaciones pequeñas a medianas, ya que la tecnología ha alcanzado más madurez y las máquinas no necesitan la costosa red entre procesadores.
Sin embargo, los procesadores SMP no escalan hacia arriba tan bien como sus similares MPP. Con cada procesador que se añade, los incrementos de rendimiento se hacen cada vez más pequeños, al tiempo que la memoria central o el bus memoria-procesador se convierten en un atasco. Las máquinas SMP pueden resultar imposibles de escalar a un coste razonable por encima de ocho nodos aproximadamente, mientras que las máquinas MPP pueden escalar a cientos de procesadores.
Una forma de escalar un sistema SMP es combinar dos o más servidores SMP en un grupo o cluster en red. Dependiendo de la configuración o de la aplicación en cuestión, puede hacerse que el cluster funcione como un sistema MPP o como un SMP. Una aplicación funcionando en uno o más procesadores en un sistema SMP puede tomar ciclos de proceso, o espacio de memoria o de disco en otro ordenador, en la forma necesaria. Los clusters SMP imponen una penalización en términos de esfuerzo adicional necesario para coordinar tareas, y en la latencia resultante de mover datos de una máquina a otra, y por otra parte pueden ofrecer un alto grado de tolerancia a fallos debido a que el trabajo que realiza un sistema puede ser tomado a su cargo por otro si el primero falla. Sin embargo, la consultora Booz Allen & Hamilton advierte que no es fácil establecer una red de ordenadores SMP con el fin de que una determinada aplicación vea o considere al cluster como una única máquina virtual. Los sistemas operativos no son aún lo suficientemente inteligentes para acceder de forma transparente a otras máquinas sin ayuda del programador de aplicaciones. Las características de la aplicación afectan también a la escalabilidad. La mayoría de las aplicaciones pueden ser "paralelizadas" en cierta medida. Por ejemplo, las empresas pueden establecer sistemas de soporte de decisiones (DSS) para procesar múltiples consultas simultáneamente asignando un procesador a cada consulta independientemente. Sin embargo, la mayoría de las aplicaciones tienen algún componente que es inherentemente serial o que no puede ser fraccionado en corrientes paralelas. Así, cuanto más alto es el porcentaje del trabajo total que es inherentemente serial, menos ventaja obtiene el usuario al añadir procesadores.
Las buenas noticias para los usuarios comerciales son que las tareas comerciales corrientes, como el proceso de transacciones online (OLTP), el proceso de mensajes, y la consulta a una base de datos, se prestan para la paralelización, mientras que el lado adverso está en que para los compradores que se enfrentan a un conjunto complejo de productos y vendedores la opción entre SMP y MPP no es la única elección que tienen que decidir.
Quienes adaptaron primero el proceso MPP dicen que mientras que el software de aplicaciones y las herramientas y utilidades de desarrollo para entornos en paralelo no son ni con mucho tan prevalecientes para proceso MPP como en el mundo mainframe, los vendedores de bases de datos y los desarrolladores terceros están comenzando a responder a la demanda del mercado.
Sin embargo, aún les queda bastante camino por recorrer antes de que el software adquiera potencia industrial.
La consultora Smaby Group piensa que el proceso OLTP y DSS son aplicaciones relativamente maduras en proceso paralelo, mientras que hay muchas otras que migrarán a entornos en paralelo. Todos los vendedores principales van a pasar a sistemas escalables; no hay vuelta atrás. Las nuevas aplicaciones superarán el hardware, y no a la inversa. El triunfo entre los usuarios de aplicaciones software que consumen una cantidad importante de recursos hardware implica la obligatoriedad de que las máquinas obtengan una mayor potencia de proceso. Hoy por hoy, la forma más sencilla de aportar potencia sin encarecer de manera extraordinaria los equipos, pasa necesariamente por las soluciones de proceso paralelo, y, especialmente, por el multiproceso simétrico.
Incluso así, los compradores deberán analizar con mucho cuidado a sus vendedores antes de invertir en unos sistemas llamados a perdurar en el futuro. Cierto número de empresas pioneras en el proceso en paralelo, como Thinking Machines y Kendall Square Research, han cesado en su actividad o se enfrentan a dificultades financieras.
No obstante, la estabilidad del proveedor podría ser un problema menos importante con los sistemas en paralelo ofrecidos por vendedores importantes como NCR, IBM, Digital Equipment, Hewlett-Packard, Siemens Nixdorf o Sun Microsystems. Estas compañías están enviando una señal importante al mundo comercial al adoptar la tecnología en paralelo como su tecnología de alto rendimiento preferida, afirma Booz Allen.
El proceso en paralelo tiene en sí mismo una calidad casi espiritual, y mucha novedad y atractivo. Esto desaparecerá. Esta tecnología será tan corriente en el mercado a finales de los años 90 como lo es hoy la tecnología de los mainframes.
¿Cuál es la diferencia?
MPP: Funciones y características
- Memoria distribuida, tiempo de acceso a memoria no uniforme, espacio separado de direccionamiento para ca