15/11/2008

Tu PC al servicio del bien común

Posted in Ciencia tagged , , , , , , a 4:12 pm por interloper

Piensa en tu ordenador. Fíjate en cuánto lo usas, piensa en las horas que pasa encendido en casa sin nadie delante, con la pantalla apagada, y sin hacer realmente nada. Planteate el hecho de que, incluso cuando lo estás usando, la mayor parte del tiempo no estás aprovechando más del 50% de su potencia.

Ahora, imagínate poder hacer que tu ordenador, a través de tu conexión a internet, pudiese ser utilizado para la investigación de un remedio contra el SIDA, el análisis de la radiación emitida por un púlsar a millones de años luz de la Tierra, para realizar simulaciones de plegado de proteínas, o incluso a evaluar los resultados de los experimentos que se realicen en el LHC (cuando vuelva a estar en funcionamiento, claro está…). ¿Acaso no sería bueno aportar tu pequeño granito de arena al mundo de la investigación?

La computación distribuida

Los programas que ejecutamos en nuestro ordenador se componen, en general, de diversas tareas que, combinadas, dan los resultados finales o output de la aplicación. Y estas tareas puede que sean dependientes las unas de las otras, o no. Por supuesto, si la tarea C depende de la tarea B, y esta a su vez de la A, el ordenador deberá ejecutarlas secuencialmente: A, B y por último C. Sin embargo, si las tres tareas son totalmente independientes entre sí, existiría la posibilidad de ejecutarlas en paralelo, todas a la vez, de modo que el tiempo de ejecución total no fuese la suma de los tres tiempos de ejecución, sino únicamente el de la tarea más lenta.

Ahora supongamos que tenemos la necesidad de ejecutar cien millones de tareas distintas e independientes entre si, cada una de las cuales tardarían, pongamos, doce horas en ser ejecutada. Si un único ordenador tuviese que ejecutarlas, tardaría mil doscientos millones de horas en ejecutarlo todo. Pero… ¿Y qué sucede si tenemos cincuenta millones de ordenadores? Pues que podríamos repartir dos tareas por ordenador, y tardar un único día en obtener los resultados. Esa es, precisamente, la idea que se esconde detrás del paradigma de computación distribuida: tener una serie de equipos que se vayan encargando de realizar todos los procesos independientes de una aplicación con el objetivo de reducir el tiempo de ejecución necesario para obtener los resultados.

Pero habrás notado que el número de ordenadores del que he hablado en este ejemplo hipotético es muy elevado… Cincuenta millones de ordenadores no es una cantidad que esté al alcance de todo el mundo… Tanto por espacio como por gasto económico, es una completa locura. Un laboratorio de un centro de investigación puede llegar a tener cien, doscientos ordenadores… Incluso unos cuantos miles, si empezamos a hablar de organismos de investigación de peso. Pero no millones.

Y en cambio… ¿Que sucedería si los ordenadores que realizan los cálculos no fuesen, obligatoriamente, todos pertenecientes a la misma compañía o grupo? ¿Y si hubiese una manera de aprovechar los miles de equipos que, dia tras dia, permanecen conectados a internet y encendidos, pero sin un usuario delante haciendo absolutamente nada? Es así como nace World Community Grid.

World Community Grid

Fundado por IBM sin ánimo de lucro, el sistema fue lanzado en 2004. La empresa mantiene catorce servidores conectados a la red desde los que, una vez recibida toda la información del proyecto por parte de las organizaciones investigadoras, divide los contenidos de estudio en pequeños paquetes que distribuye a través de internet a los diversos ordenadores conectados a la WCG, los cuales se encargan de llevar a cabo las tareas requeridas para, posteriormente, devolver los resultados a los servidores centrales. Una vez recibidos todas las respuestas desde los clientes, éstos servidores recopilan y tratan adecuadamente los resultados, y se los hacen llegar de nuevo a las organizaciones. Puedes encontrar algo más de información aquí.

De este modo, el WCG ya ha completado tres proyectos: Human Proteome Folding Project (plegado del proteoma humano), Help Defeat Cancer (investigación para facilitar la identificación y cura de cáncer de pecho, cabeza y cuello), y Fiocruz Genome Comparison Project. Mientras tanto, actualmente hay hasta siete proyectos más activos o en espera.

Y no solo eso. Al conectarse al World Community Grid (a continación contaré cómo hacerlo), el cliente que descargaremos también nos permite unirnos a muchos otros proyectos de investigación, como Einstein@Home, uFluids, QMC@Home, o muchos más, la mayoría de ellos de gran interés. Gracias a ello, la posibilidad de aportar nuestra pequeña ayuda al progreso científico aumenta, ¡y seguro que es bien acogida y necesitada!

Instalando el cliente de WCG

Llegados a este punto, espero haberte convencido de que es bueno (y necesario) instalar el cliente de WCG en tu equipo y unirte a esta red de apoyo a la ciencia. ¿Cómo hacerlo? Es muy sencillo. Lo primero que debes hacer es descargarte el programa sobre el que ejecutar las aplicaciones. Éste se llama BOINC, está disponible para descargar desde su página en la web de la Universidad de Berkeley. Una vez instalado, podrás comenzar a añadir aplicaciones.
En la imagen de la izquierda (click para ampliar), por ejemplo, tenemos cuatro proyectos activos Si queremos añadir uno nuevo, no tendremos más que hacer click en Herramientas -> Unirse a un proyecto, y seguir las instrucciones que nos irán apareciendo. El proceso es realmente sencillo, y muy intuitivo… Yo, poco después de hacer las capturas, añadí un quinto proyecto, Ibercivis, en el que se agrupan distintas asociaciones españolas de investigación para respaldar sus proyectos en un sistema de computación distribuída como éste.

A la derecha, en esta otra captura, se ve el contenido de la pestaña de Tareas, que es la carga de trabajo real que nuestro equipo tiene por cada proyecto, así como el estado en que se encuentra cada uno en este momento, y unas cuantas estadísticas más. Una pena que, habiendo puesto a funcionar el cliente recientemente en éste portátil, no tenga todavía ningún resultado al 100% que mostrar…

Just one little problem…

Ok, dirás. Todo esto es muy bonito, voy a salvar al mundo gracias a mi ordenador, y todo ello a base de solo unos pocos clicks, pero… ¿No hay nada negativo? Por supuesto, como todo, siempre hay alguna pega a todo esto… Aunque es fácilmente solventable. ¿Y cual es ese punto en contra? El uso de nuestro ordenador para cálculo intensivo como éste provoca que la carca de trabajo aumente considerablemente, y por defecto, el cliente BOINC está configurado para usar el 100% del procesador disponible. Es decir, que si estáis ejecutando una aplicación que consume el 40% del tiempo de trabajo, BOINC se quedará el 60% restante… Lo que implica que el procesador estará trabajando a pleno rendimiento constantemente. Y en consecuencia, se calentará. Si vuestro PC está bien preparado para afrontar el calor, no hay ningún problema real. Si en cambio es como mi portátil, que si se sobrecalienta, se apaga, ya no es tan gracioso. ¿La solución? Pedirle a BOINC que no utilice todo el procesador. ¿Cómo? De la siguiente forma:

En Avanzado -> Preferencias -> Uso del procesador, podéis indicarle al programa que, como tengo yo puesto para mi equipo, no utilice nunca más del 50% del procesador (Otras Opciones, abajo del todo). Incluso podéis decirle (en la parte de arriba) que el cálculo solo se ejecute cuando no estáis delante del PC, de modo que cuando estáis trabajando con él, BOINC no se esté quedando con parte del tiempo del procesador. En mi caso, y con la configuración tal y como está en la imagen de la izquierda, la temperatura del procesador oscila siempre entre los 50 y los 70 grados, algo normal para un equipo con una carga de trabajo intensiva como la que la WCG genera.

Creo que iniciativas como ésta son las que demuestran que el trabajo desinteresado, y con la ayuda de todos, es capaz de hacer cosas realmente grandes, que los proyectos colaborativos son una vía de pensamiento que realmente funciona y que si todos ponemos un poco de nuestra parte (en este caso, un poco de procesador a calcular), los resultados pueden ser espectaculares. Instálalo, y pon tu grano de arena a esta playa que estamos construyendo.

Anuncios

2 comentarios »

  1. Larteas said,

    No habia visto el nuevo diseño, pero este post te lo has currado un huevaco tio, enhorabuena.

    A currar cabron! xD

  2. […] de BOINC (para quienes no sepan de qué hablo, les remito a mi anterior post acerca del tema, aquí), que incorpora un avance que considero bastante importante… La posibilidad de aprovechar la […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: