20 de febrero de 2011

El concepto de cluster (3 de 3)

Del baúl de los recuerdos ha venido a aparecer la documentación de mi proyecto fin de carrera. Me ha sorprendido releer la introducción de mi trabajo (un framework para simulación de computadores aplicado a coherencia de caché en máquinas NUMA) y ver claramente lo que me dicen por ahí: que soy de letras y una infiltrada en el mundo tecnológico. Voy a publicar esa introducción en tres fragmentos. Para ponerlo en contexto, tengamos en cuenta que esto lo escribí allá por el 2005, que no he cambiado una coma y que probablemente entonces era mucho más inteligente que ahora...

La primera de estas soluciones sería superar las incapacidades de potencia de cálculo y velocidad del más rápido de los procesadores posibles de construir (y a menor costo) uniendo las capacidades de muchos procesadores más simples. Así, los clusters computacionales han permitido el tratamiento de volúmenes sorprendentes de información y dan respuesta a necesidades de potencia antes desatendidas. Tendríamos por ejemplo, los clusters que computan renderizados de imágenes, modelados meteorológicos o bursátiles. Y como versión más tosca de este tipo de clusters aparecerían los clusteres de balanceo de carga que reparten el trabajo entre varias máquinas de forma semiparalela. Por ejemplo en el caso de granjas de servidores web que se reparten la responsabilidad de atender las peticiones de los navegadores de los clientes.

Por otro lado, la redundancia de algunos de los sensores y procesadores de los organismos humanos inspiran otro tipos de clusters. Los clusters de alta disponibilidad o tolerantes a fallos, capaces de afrontar sus tareas con pérdidas tolerables de prestaciones aún después de haberse producido un fallo en alguno de sus elementos.

Pero ¿han conseguido los clusteres generar un nuevo modelo computacional comparable al de la máquina de Turing? La respuesta es no. Finalmente, se han conseguido mejoras (y no siempre) en la velocidad de ejecución de algoritmos complejos , pero en el plano teórico no hay nada que impidiese a una máquina de Turing llevar a cabo la misma tarea. ¿Quiere decir esto que esta línea de investigación está agotada y es inútil? Aquí cada uno de las partes en la controversia darían su propia versión de los hechos.

Los clusters como tecnología serían indiscutiblemente prácticos y útiles. Por un lado, independizan la capacidad computacional de las máquinas del avance en la construcción de procesadores con más capacidades y también de mayor coste. El poder resolver una tarea con elementos más económicos y con sistemas más escalables tiene obvias ventajas en el mundo real de aplicación de la informática. Así que en este sentido no parece probable que dejen de existir este tipo de máquinas o que se deje de investigar en esta línea.

Sin embargo, desde el punto de vista teórico ya hemos visto que este tipo de máquinas no ha revolucionado la ciencia como algunos esperaban ya que no aporta finalmente ningún modelo novedoso de computación. ¿Cuál ha sido el fracaso? La idea inicial basada en la observación del ser humano y de su complejo procesamiento paralelo no parecía equivocada, la pregunta es ¿son los clusters computacionales máquinas realmente paralelas o sólo dan una ilusión de paralelismo? Si los algoritmos ejecutados sobre un cluster computacional pueden teóricamente (sin limitaciones de tiempo y memoria) ejecutarse sobre una máquina de Turing, está claro que el paralelismo es inexistente y no es más que una ilusión de paralelismo equivalente a la que ya existía en las máquinas monoprocesador que ejecutan aplicaciones multitarea y multiusuario dando una impresión de paralelismo irreal. Sin embargo, la línea de investigación no debería ser abandonada como inválida, pues nada demuestra que sea errónea, son los resultados alcanzados los que aún no son satisfactorios.

Esta búsqueda de un nuevo modelo de computación realmente paralelo no se ha abandonado en absoluto. Los nuevos conceptos aportados por la relatividad en el campo de las ciencias físicas y experimentales han venido a abrir camino a nuevas hipótesis para este modelo paralelo novedoso. Los computadores cuánticos permiten abordar un nuevo modelo computacional en el que los estados de computación ya no serían 0 ó 1 binarios y excluyentes, sino que podrían coexistir simultáneamente. En este mismo sentido (avanzando paralelamente como no podría ser de otro modo) las más novedosas teorías en la ciencia psicológica empiezan a modelar los procesos mentales humanos de este mismo modo: con estados simultáneos. Es decir, con paralelismo real.

Así pues, en mi opinión la evolución de la informática como ciencia seguirá la actual búsqueda y materialización de este nuevo modelo computacional. Y por otro lado, la informática como tecnología seguirá abordando, dada sus ventajas, y por bastante tiempo la construcción y mejora de máquinas multiprocesador o clusters.

No hay comentarios: