Computación Distribuida: SETI@home y otras hierbas

Aguja enhebradaLa computación distribuida consiste básicamente en utilizar la potencia de cálculo y, en algunos casos, la capacidad de almacenamiento y ancho de banda de un conjunto de ordenadores para resolver problemas que serían demasiado costosos (usualmente en tiempo y dinero) si usaramos un único ordenador. Este tipo de aproximación es interesante porque el incremento de velocidad de los ordenadores en el tiempo  no suele ser suficiente para que merezca la pena en invertir en un único ordenador caro. Es decir, por el mismo presupuesto puedes conseguir varios ordenadores menos potentes que en total tengan una potencia de cálculo superior.

Sin embargo la computación distribuida presenta una serie de dificultades o pegas que hay que solventar para que sea rentable. Por ejemplo, los problemas que queramos resolver con múltiples ordenadores deben ser "trozeables" en porciones más pequeñas que puedan resolverse por un único ordenador. Por poner un ejemplo de problema de la vida real que es dificilmente paralelizable y del que no podríamos sacar ventaja usando una aproximación distribuida es enhebrar una aguja. Por muchas personas que pongamos a la tarea no tardaremos menos (de hecho probablemente tardaremos más).

Existen muchos proyectos que utilizan la computación distribuida para resolver problemas complejos: desde proyectos para estudiar el plegamiento de proteinas (fundamental para el desarrollo de nuevos medicamentos) hasta problemas matemáticos complejos como la descomposición en números primos de números muy grandes pasando por proyectos que tratan de analizar señales captadas por telescopios y radiotelescopios en busca de supernovas, fenómenos poco conocidos e incluso inteligencia extraterrestre.

De hecho, algunos de los proyectos de computación distribuida que más éxito han tenido han sido los que han sido proyectados para utilizar la potencia de cálculo de voluntarios alrededor de todo el mundo. El proyecto pionero en este tipo de computación distribuida social es sin duda SETI@home, un proyecto que trata de analizar las señales captadas en el radiotelescopio de Arecibo en busca de una posible señal extraterrestre. Este proyecto puede sonar a OVNIs, marcianos, etc. pero en realidad tiene una base científica bastante seria, como puede constatarse en su página web.

Radiotelescopio de Arecibo

Aunque el proyecto SETI@home no ha conseguido aún su principal cometido (es decir, encontrar vida inteligente extraterrestre), si que ha tenido un éxito impresionante en cuanto a potencia de cómputo conseguida a base de ordenadores voluntarios participando más o menos activamente en el proyecto. De hecho, hasta la fecha millones de personas han contribuido al proyecto con millones de ordenadores y ciclos de cómputo.

Participar en estos proyectos suele ser bastante sencillo. Lo único que hay que hacer es apuntarse al proyecto en su página web, descargar un programa e instalarlo. A partir de ese momento nuestro ordenador se conectará con el servidor del proyecto, descargará un programa de análisis y los datos a analizar y hará los cálculos necesarios en el tiempo que no uses tu ordenador (en realidad la mayoría de los usuarios utilizan un porcentaje bastante bajo de la capacidad de cómputo de sus ordenadores). En el siguiente diagrama se puede ver como funcionan este tipo de proyectos.

Computación Social

Hace unos años estuve bastante metido en algunos de estos proyectos. De hecho, aún recuerdo que yo programé la generación de unos "diplomas" para los participantes del proyecto SETI@home, tal y como se puede ver en su página web. De hecho durante un tiempo estuve pensando en crear un pequeño cluster casero con ordenadores viejos para participar en estos proyectos. Al final desistí porque tal cluster puede fabricarse con poco dinero, pero el coste energético de tenerlos todos encendidos es bastante alto, con lo que no merecía demasiado la pena.

Certificado SETI@homePor último es interesante comentar que existen otros proyectos y otras posibilidad interesantes para la computación social, como por ejemplo usar imágenes de satélite (Google Maps) para detectar cráteres de impacto, clasificar galaxias, etc.

Hace unos años preparé una pequeña charla para la Sociedad Astronómica Granadina donde hablaba del tema. Puedes descargar las transparencias de la charla (Computación Social: Inteligencia extraterrestre, polvo de estrellas, cráteres de impacto y otros cálculos, PDF, 8.6 MB).