Folding@Home

Mientras buscaba controladores en la página del fabricante (EVGA) para actualizar mi PC (esencialmente, la tarjeta madre y la tarjeta gráfica), vi en el sitio una invitación para agregarse al equipo de Folding@Home de esa compañía. Ahora que tengo una máquina medianamente decente y que gran parte del tiempo está encendida sin hacer mucho (salvo descargar cosas vía Bittorrent), decidí unirme y compartirlo por acá, pero primero, cabe responder la pregunta más importante.

¿Qué es Folding@Home?

Folding@Home (FAH) es un proyecto que viene funcionando desde 2000, cuyo fin es investigar acerca de las proteinas, su formación, y el papel que tienen en muchas enfermedades alrededor del mundo.

Un poco de intormación científica (traducido del sitio oficial de FAH):

Sigue leyendo…

¿Qué son las proteinas?
Las proteinas son collares de aminoácidos — largas cadenas de moléculas. Las proteinas son la base de cómo la biología logra hacer las cosas. Como enzimas, son la fuerza tras todas las reacciones bioquímicas que hacen que la biología funcione. Como elementos estructurales,  son los componentes principales de los huesos, músculos, pelo, piel, arterias y venas. Como anticuerpos, se encargan de reconocer elementos invasores y le permiten al sistema inmunológico deshacerse de los invasores indeseables.
Por esta razón, los científicos han estudiado y mapeado el genoma humano — el plano de todas las proteinas en la biología — pero, ¿cómo podemos entender lo que hacen éstas proteinas y cómo trabajan?

¿Por qué se “doblan” (“fold“) las proteinas?
Sin embargo, conocer este mapa (del genoma humano) nos dice muy poco acerca de lo que hace la proteina y de cómo lo hace. Para poder cumplir con sus funciones (por ejemplo, como enzimas o como anticuerpos) las proteinas deben tomar una forma particular, también conocida como “doblez”. Por lo tanto, las proteinas son realmente máquinas asombrosas: antes de hacer su trabajo, ¡se construyen a si mismas! Este auto-ensamblaje se conoce como “doblado” (“folding“). Una de las metas del proyecto es simular el doblado de las proteinas para poder entender cómo se doblan tan rápida y confiablemente, y aprender qué sucede cuando esté proceso sale mal (cuando las proteinas se doblan mal).

Ok, teniendo esa pequeña información como base, podrían decir “bueno, suena interesante, ¿pero para qué investigarlo?”. La razón viene por dos partes:

Una, que se cree que cuando las proteinas se doblan mal, producen infinidad de enfermedades (muchas de ellas graves) como la enfermedad de Parkinson, Encefalopatía Espongiforme Bovina (EEB, mejor conocida como la “Enfermedad de las Vacas Locas”), una forma de enfisema heredada, Alzheimer, y aproximadamente la mitad de todos los tipos de cáncer. Cuando las proteinas se doblan mal, tienden a amontonarse (“formar agregados”) que pueden acumularse en el cerebro, resultando en Alzheimer o EEB.

Suena grave, ¿no?
Entra en juego entonces la segunda razón: muchas proteinas no solo se autoensamblan, sino que lo hacen increiblemente rápido: en una millonésima de segundo. Esto puede parecer rápido en la escala de tiempo de una persona, pero simular esto en una computadora toma muchísimo tiempo (y eso es tratándose de una supercomputadora, que le lleva ventaja a nuestras computadoras personales). De hecho, toma cerca de un día de procesamiento simular un nanosegundo (es decir, 1/1.000.000.000 de segundo), y desafortunadamente, el doblamiento de las moléculas ocurre en la escala de décimas de microsegundo (es decir, 10.000 nanosegundos). Haciendo unos cálculos simples no es difícil ver que simular un doblamiento a esa escala tomaría 10.000 días de CPU – es decir, cerca de 30 años de CPU (27,37, si queremos ser exactos). Es demasiado tiempo para esperar un sólo resultado.

Pero se encontró una solución sencilla: utilizando la estrategia que muchos hemos visto en programación (divide y vencerás) , y dividiendo el trabajo en múltiples procesadores (más de 100.000 actualmente), se ha roto la barrera del microegundo, simulando milisegundos de tiempo de doblado, y ayudando a comprender el misterio de cómo se doblan las proteinas.

Suena bien, ¿verdad? Entonces, ¿cómo ayudar?

Folding@Home trabaja de la siguiente manera: instalas un programa (de los 3 disponibles, ya ahondaré en eso) que se encarga de recibir, procesar, y luego enviar las  Unidades de Trabajo (Work Units, o WU, como las denomina el programa), y listo. El programa se encarga de usar los ciclos de reloj del procesador que no estén siendo usados (llevando el uso del procesador al 100% la mayoría del tiempo) para procesar el trabajo, y al finalizar, los envía de nuevo al servidor. Evidentemente, el programa trabaja mucho mejor si lo mantienes cuando no estás haciendo nada en tu computador (igual funciona si la estás usando, pero como el procesador se está usando al máximo, puede que la máquina se ponga lenta), haciendo que haya gente que tenga máquinas dedicadas únicamente a este programa.

Por ejemplo, mi caso de uso es el siguiente: yo armé mi máquina pensando en alto desempeño para juegos (como podrán imaginarse, los juegos ponen una carga pesada en el procesador y la tarjeta de video), cosa que la hace ideal para este programa (aunque este corre en casi cualquier máquina). Como yo no la estoy usando las 24 horas del día, decidí dedicarle tiempo al programa, de dos formas distintas (que son de los 3 programas disponibles que mencioné):

Cliente estándar:

Para computadores con procesadores de un sólo núcleo, está este cliente. Lo instalas, lo configuras (en cuanto a configuración se refiere, es simplemente decidir si quieres donar el tiempo de procesador de forma anónima, o  bajo un pseudónimo -puedes chequear si el que quieres usar está disponible haciendo click acá-, y si quieres pertenecer a un grupo, o no — por cierto, una pequeña petición al respecto… si decides donar tiempo al proyecto, pero no te interesa donarlo bajo un usuario o grupo, y no te importaría donarlo a mi nombre, te lo agradecería: en user, pones kenshin23, y en grupo 111065), y lo dejas trabajar. Así de sencillo. El programa guarda el progreso cada cierto tiempo (configurable también), y se encarga de bajar y subir el trabajo automáticamente. El cliente está disponible para Windows, Linux, y Mac.

Clientes de Alto Desempeño:

Para tarjetas de video (nótese que hoy en día, las tarjetas de video pueden procesar datos de forma paralela mucho mejor que un procesador — si no, que lo digan los Mythbusters en esta simpática demostración), que son más idóneas para este trabajo, existe este cliente (donde dice GPU2), que funciona y se configura de forma similar a la del CPU. Aquí pueden ver al cliente trabajando:

Cliente GPU de Folding@Home

(Puedes hacer click en la foto para verla mejor).

Se pueden ver varias cosas; en orden de izquierda a derecha, y arriba-abajo: el tipo de proteina, el progreso actual, avance estimado por día, tiempo restante estimado para la terminación de la WU actual, el pseudónimo bajo el cual estoy donando, el equipo al cual pertenezco (el número corresponde al equipo “folding@evga”), la tarjeta de video con la cual estoy simulando, y en todo el centro, una representación gráfica en tiempo real de la proteina siendo simulada. Ya que el CPU queda libre para hacer otras cosas, se puede usar el cliente del CPU conjuntamente con este; eso sí, deben estar configurados de forma tal que cada cliente tenga su propio Machine ID (por ejemplo, en mi máquina, el cliente GPU tiene Machine ID 2, y el otro cliente, el CPU -que se ve más abajo- tiene Machine ID 1).

Para computadores que tienen varios procesadores, o en dicho caso, procesadores con varios núcleos (mi caso — un Core 2 Duo E6750) existe el cliente SMP (misma página que el anterior, en la parte de abajo), que por ahora sólo funciona en modo consola. Su configuración es un poco más complicada que la del cliente mononúcleo, pero el funcionamiento es exactamente el mismo, solo que esta vez se utilizan completamente todos los núcleos del procesador.

Acá se ve en funcionamiento:

Cliente CPU-SMP de Folding@Home

Existe otra versión para las personas que tienen un PlayStation 3, que ya viene junto con la consola gracias a un acuerdo entre Sony y la Universidad de Stanford. Es bastante atractivo visualmente, y un gran punto a favor -gracias a la enorme potencia de procesamiento del PS3: más o menos 20 veces más que una computadora de escritorio, es decir, 2000%- es que procesa muchas WU con mayor eficiencia, haciéndolo sumamente útil en la investigación (otra razón más por la que quisiera tener un PS3… además de MGS4). De hecho, existe un grupo de cerca de un millón de PS3, que se dedican a trabajar mientras sus usuarios no están jugando.

Así se ve en el PS3:

Cliente de Folding@Home para Playstation 3

Cliente de Folding@Home para Playstation 3

En resumen, ya sabía de este proyecto desde hace bastante tiempo (de hecho, estuve corriéndolo un tiempo bajo otro pseudónimo –Kenshin_OP9-, completando unas 94 WU, y obteniendo 228.379 puntos en 3 computadoras) y particularmente, me siento bastante orgulloso de poder contribuir, asì sea poco, con esta investigaciòn (que por cierto, figura en el Libro de Record Guiness como el mayor proyecto de computaciòn distribuida en el mundo). Si dejas tu máquina encendida durante la noche, o por largos periodos de tiempo sin atenderla, ¿por què no contribuir con el proyecto? Si tienes alguna duda configurando cualquiera de los clientes (si no consigues la respuesta en el sitio oficial de Preguntas Más Frecuentes – en inglés), deja el comentario y yo haré lo posible por ayudar.

Anuncios

2 comentarios en “Folding@Home

  1. hola, soy miembro de Evga desde hace dos años y tambien miembro del equipo F@H de Evga, he leido tu articulo y me parece muy interesante y bonito: Bien hecho, muchos miembros del equipo estarian contentos en poder leer articulos asi. Saludos, Ernesto

  2. Pingback: Más aprendizaje « Un D1a en m1 Mente

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