A nivel de investigación se requiere gran capacidad de cómputo para aplicaciones que van desde simulaciones del medio ambiente, biomedicina, física de partículas, estadísticas, criptografía, etc. La potencia de las computadoras es cada vez mayor, pero al mismo tiempo siguen apareciendo retos computacionales más grandes, lo que viene a continuación es una pequeña introducción con enlaces de referencia.
Computacionales con Linux Beowulf es el nombre que recibe en general las técnicas y procedimientos para usar Linux en modo de cluster computacional. Una página de referencia puede ser :
http://lcic.org/computational.html Hay librerias y API's al respecto, siendo las más conocidas las MPI (Message Passing Interface ) y las PVM (Parallel Virtual Machine) para el desarrollo de aplicaciones en cluster. Una variación interesante es el uso de los módulos MOSIX, los mismas actúan básicamente a nivel del sistema operativo que a nivel de la aplicación, es decir, son parte del kernel, finalmente las aplicaciones se montan sobre ésta capa y corren de manera distribuida sobre una gran cantidad de equipos, sin necesidad de hacer cambios en las aplicaciones. En cambio, en clusters tipo Beowulf se requiere que cada aplicación o problema sea programado especialmente para ello con ayuda de las librerías MPI y/o PVM. Con MOSIX se obtiene una capa adicional sobre la cual los procesos corren en diversas computadoras, cada proceso es atendido por una computadora, se hace un balance de carga derivando cada proceso nuevo a la computadora con menos carga. Las técnicas de clusters Beowulf logran en cambio que un único proceso corra en simultáneo en varios sistemas.
Si se trata de resolver un problema que implique la ejecucion de miles de procesos pequeños entonces tal vez sea más sencillo resolverlo con MOSIX, pero si se trata de un solo proceso que necesita una gran cantidad de cómputo entonces sería mejor el uso del esquema Beowulf lo cual implica el desarrollo de la aplicación respectiva y adaptarla a las librerias de clustering, es decir, las MPI o PVM.
Una herramientas bastante popular para el desarrollo de un cluster Beowulf es OSCAR:
http://oscar.openclustergroup.org/tiki-index.php otra es Rocks:
http://www.rocksclusters.org En MOSIX se puede visualizar una gran cantidad de nodos como si fueran uno solo, administrados por una consola maestra. Existen varias distribuciones Linux que ya vienen con MOSIX integrado al Kernel y permiten tener en poco tiempo un cluster, pueden ver más información en:
http://openmosix.sourceforge.net en particular hay una basada en Knoppix llamada Cluster Knoppix
http://bofh.be/clusterknoppix Hollywood usa clusters computacionales para desarrollar los efectos especiales de muchas de sus películas, y por supuesto el sistema operativo que utiliza es Linux por un tema de costos y eficiencia, el renderizado de cada cuadro de una película se distribuye en cada nodo permitiendo una ejecución en paralelo. Una distribución que permite ésto es Dynabolic usando MOSIX
http://dynebolic.dyne.org Hasta hace poco sólo se podía disponer de los módulos de MOSIX para el kernel 2.4, pero felizmente ya está disponible también para kernel 2.6
Grid Computing El tema de Grid Computing es toda una metodologia de trabajo en red con arquitecturas y protocolos bien definidos, las computadoras se agrupan más allá del dominio de una LAN como sucede con los clusters Beowulf para agrupar virtualmente a equipos de todo el mundo, se hacen necesario entonces diversos controles de acceso y seguridad. Lo interesante es que el poder de computo de la Grid de hace accesible desde cualquier punto de la red. Haciendo una analogía con el servicio eléctrico, ya no es necesario que cada uno tenga un generador de corriente en casa, es simplemente tener un tomacorriente y un gran proveedor de energía. La Grid permite que instituciones de menos recursos tengan acceso a poder computacional de forma remota, o que diversas instituciones puedan unir sus recursos computacionales para obtener uno más poderoso. Grid computing no necesariamente busca ejecutar una aplicación en paralelo, el principal objetivo es hacer un uso más eficiente de los recursos computacionales de la red asignándoles trabajos a los equipos más ociosos. De las 24 horas del día sólo una fracción del tiempo es usado el poder de cómputo de un equipo, ¿porqué no usar ésta capacidad el resto del día?. En:
http://www.gridcomputing.com se puede encontrar más información sobre el tema de Grid Computing. El site de IBM tiene también unos PDF's muy buenos al respecto:
http://publib-b.boulder.ibm.com/cgi-bin/searchsite.cgi?query=grid+computing+ Las ciencias matemáticas, físicas, ingenierías, etc, necesitan en determinados problemas de un alto nivel computacional que se puede lograr a bajo costo usando ésta tecnología. Ésta ciencia nació en las universidades y ahora se le encuentra en entornos comerciales, la mayoría de veces para efectos de balancear carga en congestionados servicios web, también la está aplicando Oracle en su base de datos con el producto Oracle 10g. Por supuesto que no todos los problemas se pueden resolver con Grid, sólo son algunos los que encajan en éste esquema.
IBM está contribuyendo (junto a otros fabricantes como HP, Intel y Sun) a la estandarización de protocolos y librerías que permitan crear una Grid a escala mundial, todo éste trabajo se puede ver en la página de la aplicación Globus el cual es considerado el estándar "de facto" para aplicaciones Grid:
http://www.globus.org/ y el kit de programación de Globus está en:
http://www-unix.globus.org/toolkit/ Globus es un middleware, es decir, es una interface que se ubica entre los recursos finales (las computadoras) y la aplicación de usuario. Es una mezcla de C con Java, Globus afirma que sigue el estándar OGSI (Open Grid Services Infrastructure). Problemas que se pueden resolver con Globus están en:
http://www.globus.org/research/applications/ IBM tiene su versión de éste mismo toolkit con la diferencia que es mucho más fácil de instalar
http://www-106.ibm.com/developerworks/grid/library/gr-develop/ lamentablemente sólo está preparado para correr sobre distribuciones Linux comerciales como RH Advanced Server o Suse Server. Como alternativa la distribución Rocks también permite una fácil instalación de Globus.
Las aplicaciones con Globus no están limitadas al uso computacional, también pueden abarcar comunicaciones multimedia de alta calidad, el mejor ejemplo es la aplicación Access Grid
http://www.accessgrid.org/ El potencial de la tecnología Grid recién está haciéndose conocido, y es sólo la punta del iceberg.