Computación voluntaria

Por Jose María Mateos, el 29 abril, 2011. Categoría(s): Divulgación • Tecnología

Era el 11 de diciembre de 1994 y David Gedye celebraba su fiesta de cumpleaños. Por aquel entonces, Gedye estaba trabajando en el desarrollo de un juego on-line para niños llamado Castle Infinity en la compañía Starwave. Mientras charlaba con su colega y compañero de trabajo Craig Kasnov, recordando el 25 aniversario del Apolo XI, pronunció la frase mágica: «si se pudiese hacer ciencia de verdad en los ordenadores de la gente…».

Aquella idea duró más allá de la resaca de la fiesta y se la comentó inmediatamente a Woody Sullivan y Dan Werthimer, quienes habían estado trabajando en el proyecto SETI durante varios años. «La idea de que SETIpudiese ser capaz de utilizar muchos más ciclos de computación fue lo que me animó a comentarles la idea a Woody Sullivan y a Dan Werthimer», comenta Gedye.

La pregunta clave para mí siempre fue «¿podemos hacer ciencia útil con esto?» No quería ser el instigador naïf de un gran desperdicio de atención y de recursos si luego solamente iba a haber una mejora marginal con el poder de (como imaginábamos en aquel momento) decenas de miles de ordenadores domésticos. En realidad, el listón estaba más alto porque el requerimiento real era que había que hacer ciencia de verdad con conjuntos de datos muy pequeños que pudiesen enviarse con los módems de 56K de la época.

Así se plantó la semilla de SETI@Home, un programa que cualquier persona podía instalarse en el ordenador de casa para ayudar a buscar vida extraterrestre mediante el sencillo sistema de ceder aquellos ciclos de CPU que no se están utilizando. Pero fue mucho más: el comienzo del acceso doméstico a la computación distribuida; en lugar de utilizar un ordenador potentísimo para realizar unos ciertos cálculos, se divide el problema en partes más pequeñas y manejables que se resuelven por separado utilizando ordenadores más pequeños.

Todo eso en casa a unos pocos clicks de distancia.

El cliente tenía este aspecto.

BOINC
Tiempo después, la idea inicial de SETI@Home evolucionó y se convirtió en BOINC (Berkeley Open Infrastructure for Network Computing, Infraestructura Abierta de Berkeley para Computación en Red), un software más general para permitir ejecutar múltiples proyectos de computación distribuida en los ordenadores de casa, a elección del usuario. BOINC funciona de forma muy similar a la delSETI@Home original: se instala en cualquier ordenador y entra en acción solamente cuando no se está realizando ninguna tarea, aunque se puede configurar para que utilice un porcentaje de la capacidad de proceso de forma continuada. Una vez que se ha instalado, se puede elegir a qué proyectos se quiere destinar el tiempo de procesamiento. Si se elige más de uno, el tiempo se divide equitativamente entre todos. El procesamiento se interrumpe cuando el ordenador vuelve a utilizarse, y se retoma la tarea desde el punto en el que se dejó cuando el sistema a quedar libre. Es, a todos los efectos, completamente transparente para el usuario, que no tiene por qué notar ningún descenso de rendimiento en sus tareas cotidianas.

Un ejemplo de los proyectos que utilizan este programa para realizar sus procesos de cálculo es LHC@Home, una propuesta para utilizar la computación voluntaria en el análisis de parte de los datos generados por el Gran Colisionador de Hadrones. En funcionamiento desde 2004, ha empleado millones de horas de computación en miles de ordenadores de voluntarios, como ellos mismos explican en una de las páginas del proyecto. En un informe presentado en junio de 2006 se publicaron los resultados de una serie de simulaciones que se procesaron usando LHC@Home. Estos datos suponen una confirmación de que el tiempo que BOINC ocupa en los ordenadores domésticos se termina traduciendo a resultados tangibles.

En España, iniciativas como IberCivis permiten que cualquier grupo de investigación nacional haga uso de esta tecnología. Elisa Cauhé, del Instituto de Biocomputacion y Fisica de Sistemas Complejos de la Universidad de Zaragoza, explica brevemente cómo funcionaIberCivis desde el punto de vista del investigador: «cualquier instituto de investigación puede entrar en contacto con el equipo de Ibercivis.

Se realiza una seleccion de aplicaciones semestralmente, aunque en caso de urgencia puede anticiparse la incorporación de alguna.» Los requisitos que tienen que cumplir las aplicaciones de cálculo para ser incorporadas a IberCivis incluyen un interés científico-tecnológico, bajo flujo de datos de entrada y salida para no saturar las líneas comerciales, y emplear un software que no necesite licencias.

Aunque desde 2008, año de lanzamiento de IberCivis, se han incorporado 11 aplicaciones, actualmente hay en marcha únicamente 2, y «tenemos varias esperando a lanzar una segunda ejecución». «El total de horas de CPU acumuladas desde junio de 2008 asciende a 25 millones de horas. La media diaria actual se situa en torno a las 35000 horas de cpu.» Estos datos pueden consultarse en esta página de estadísticas que proporciona información acerca de la capacidad computacional agregada de todos los ordenadores incorporados al proyecto.

Estadísticas de uso de IberCivis: horas de CPU al día.

Para todo grupo de investigación es importante saber cuándo van a tener disponibles sus resultados. En este caso, «cada grupo suele calcular los tiempos de computacion de cada trabajo, y a partir de ello les informamos de cual puede ser la duración esperada, dada la estadistica que ya tenemos recogida. Durante la ejecucion pueden monitorizar la cantidad de tareas enviadas y pendientes.» Hay que tener en cuenta que típicamente las tareas que se procesan mediante este sistema son demasiado grandes como para poder realizarse rápidamente en un cluster estándar, y los tiempos serán del orden de semanas o meses.

CCC
Por supuesto, muchos avances tecnológicos, por no decir todos, pueden tener una aplicación humanitaria. El Citizen Cyberscience Center (Centro para la Ciberciencia Ciudadana, CCC) es una asociación entre el CERN, UNITAR y la Universidad de Ginebra que tiene un triple objetivo:

  1. Desarrollar aplicaciones de ciencia ciudadana que se centren en investigación de asuntos humanitarios y de desarrollo, así como en ciencia básica, coordinando proyectos colaborativos entre científicos del norte y del sur.
  2. Organizar talleres para científicos en países en vías de desarrollo para extender el conocimiento acerca de la ciencia ciudadana.
  3. Proporcionar material educativo on-line sobre los desafíos a los que se enfrentan este tipo de proyectos, animando a una mayor participación pública.

François Grey, del CERN, amplía esa información por correo electrónico y añade que «el CCC se creó para promover la computación voluntaria, especialmente en los países en desarrollo, como una tecnología apropiada de bajo coste». La motivación para la creación de esta asociación fue el éxito conseguido en las iniciativas Africa@Home y Asia@Home, dos experiencias piloto previas en forma de reuniones y talleres de trabajo que compartían el objetivo de que los científicos de países asiáticos y africanos pudieran familiarizarse con las particularidades de esta tecnología y comenzaran a ponerla en funcionamiento. Grey se centra en el caso  asiático para explicar el espíritu tras este proyecto: «los representantes de 10 países del sudeste asiático participaron en talleres en Taipei, y varias instituciones Chinas participaron en otros tallleres en Beijing, en 2009 y 2010».

Aunque pueda parecer paradójica la necesidad de recurrir a la computación voluntaria en un país como China, que ha realizado impresionantes avances en el mundo de la supercomputación en los últimos años, hay que tener en cuenta que «China es aún un país en desarrollo, mayoritariamente pobre. Aunque el gobierno tenga un proyecto estrella para construir un gran superordenador, cada año entran en las universidades chinas más de 10 millones de estudiantes, y la mayoría de los investigadores únicamente tienen recursos rudimentarios».

Daniel Lombraña, investigador del CCC, explica que este es el tercer año que se realizan estos talleres en Taipei y Beijing, y que además se introducirá como novedad la celebración de un hackfest (un taller que reúne a entusiastas de la programación con el propósito de resolver problemas de forma conjunta) denominado Drumbeat Event, «en el que científicos y hackers de la comunidad Mozilla unirán sus esfuerzos durante dos días para intentar crear prototipos de proyectos de inteligencia distribuida o computación voluntaria». Este evento concretamente se celebrará en Beijing y la agenda puede consultarse en este enlace. «Como resultado directo de estos talleres se han conseguido generar un par de proyectos locales, como son Computing for clean water, Cas@Home o el proyecto local del instituto de investigación Academia Sinica denominado Puzzle@Home. Además, este año, dado el interés que suscitó el proyecto Quake Catcher Network en Taipei, este año el taller de Taipei tendrá como tema principal la aplicación de la computación voluntaria en sismología.»

La pregunta inmediata es: ¿este tipo de talleres y los proyectos que surgen de ellos pueden servir para  generar resultados tangibles que realmente tengan impacto en la vida de las personas? O, dicho de otra manera, ¿realmente puede hacerse «ciencia de verdad» utilizando ordenadores domésticos, como pensó en un principio David Gedye? Dos ejemplos pueden servir para contestar esta pregunta.

Malariacontrol.net
La malaria es una enfermedad causada por parásitos que se transmiten a través de la picadura de los mosquitos. En 2008 se contabilizaron 247 millones de casos mundialmente, incluyendo un millón de muertes, principalmente en niños en África. Aunque cada vez más países están llevando a cabo medidas de control de plagas y dispensando tratamiento para los enfermos, aún queda un largo camino por recorrer. Tom Smith, del Departamento de Epidemiología y Salud Pública del Instituto Tropical y de Salud Pública de Suiza, explica que «estamos simulando los efectos de diferentes formas de combatir la malaria en el número de personas que se infectarían, enfermarían o morirían. También consideramos cuánto costaría implementar las diferentes estrategias, y cómo podrían combinarse diferentes formas de actuación». Aunque todavía es pronto como para poder emitir un veredicto sobre el impacto de esta iniciativa, sí «se han proporcionado pruebas que han apoyado el uso de estrategias de tratamientos preventivos intermitentes, que son una manera muy efectiva de controlar la malaria en niños; estos tratamientos se están implementando en algunos lugares».

Si solamente se dispusiese de un procesador actual y se quisiera ver el ajuste de uno solo de los modelos que se manejan, se tardarían 40 años en terminar la simulación.

Computing for Clean Water
Computing for Clean Water es un proyecto integrado en el World Community Grid de IBM, otra iniciativa de computación voluntaria orientada a países en desarrollo que utiliza BOINC para repartir el trabajo y que engloba varios otros proyectos, comoFightAIDS@Home o The Clean Energy Project. Computing for Clean Water cuenta además con la colaboración de la Universidad de Tsinghua. François Grey explica que el proyecto surgió tras uno de los talleres Asia@Home en Beijing a los que asistió un representante de IBM que se entusiasmó con la idea. «Por casualidad, uno de los investigadores con los que yo colaboraba en la Universidad de Tsinghua tenía un proyecto que se prestaba a la computación voluntaria. Nunca habían considerado esta opción, pero ahora que está funcionando se asombran de la cantidad de datos que pueden procesar.»

Como se explica en su página web, la misión de este proyecto «es proporcionar un conocimiento más profundo sobre la escala molecular en los orígenes del flujo eficiente del agua a través de una nueva clase de materiales filtrantes.» Grey añade: «a los investigadores que están trabajando en esto acaban de aceptarles un artículo en la revista Physical Review Letters E, una publicación internacional bastante respetada, que incluye algunos de los primeros resultados de las simulaciones de Computing for Clean Water. El artículo proporciona un análisis físico detallado de cómo diferentes tipos de nanotubos filtran agua en distinta medida, basándose en las simulaciones. Se publicará en un mes, aproximadamente.»

El futuro es de todos, procesador a procesador y cerebro a cerebro Como se ha visto con los ejemplos anteriores, hoy en día es extremadamente sencillo utilizar un procesador doméstico, típicamente muy desaprovechado, y unirse a la multitud de proyectos científicos que emplean esta tecnología. Pero la cosa puede ir más allá. Tom Smith explica que ahora mismo «se están planeando proyectos de pensamiento voluntario, que consiste en repartir tareas que son difíciles de automatizar, pero que la gente puede hacer fácilmente. Por ejemplo, algunos tipos de procesamiento de imagen. Una idea es clasificar entornos de acuerdo a los tipos de peligros para la salud que puede haber en ellos, distribuyendo fotografías gracias a Internet y preguntando a los voluntarios que las clasifiquen de acuerdo a su contenido.»

Este funcionamiento es el mismo que el que emplea desde hace unos años el proyecto Galaxy Zoo, que pide la ayuda de voluntarios para identificar las características de las galaxias que van apareciendo en las imágenes del archivo del telescopio Hubble que se muestran en su página web. Cualquier persona puede registrarse y, siguiendo un sencillo formulario, ayudar a distinguir una nebulosa irregular de un cluster estelar, simplemente observando la fotografía. Esto es muy simple para un ser humano pero muy complicado para una máquina.

Colaborar para hacer avanzar la ciencia nunca había sido tan sencillo. La pregunta, a estas alturas, es por qué no hacerlo.



Por Jose María Mateos, publicado el 29 abril, 2011
Categoría(s): Divulgación • Tecnología