La idea de la
computación distribuida es simple pero genial. Partimos de una gran tarea compleja en un
servidor central, pero en lugar de abordarla con un único procesador, la dividimos en
muchas tareas pequeñas y enviamos cada una de ellas a una máquina diferente. Una vez que
cada tarea se ha procesado se envían los resultados al servidor central y este se encarga
de juntar todos los resultados que va recibiendo. El problema ahora queda reducido a
encontrar muchas máquinas que se puedan conectar al servidor central y que se encuentren
libres para poder realizar estas tareas. El primer factor queda resuelto si nuestro
servidor central se encuentra conectado a una red, ya sea de área local, intranet o
internet en el más amplio de los casos. Ya tenemos todas las máquinas que queremos, eso
sí, cada una de ellas dedicada a sus propias tareas, que en un principio poco tendrán
que ver con nuestro gran proyecto. Sí, pero piensen por un momento en todos esos tiempos
muertos en los que los PCs están encendidos pero inactivos. Qué mejor solución pues,
que contando con la aprobación del usuario instalar en la máquina un software cliente
encargado de procesar una fracción de la gran tarea y hacer que se ejecute cuando se
activa el salvapantallas. Así pues, el problema queda resuelto, pues mientras que el
usuario se encuentre trabajando con la máquina dispondrá de toda su potencia de proceso,
pero cuando no esté utilizándola la capacidad de proceso se dedicara a nuestro potencial
proyecto aprovechando así una capacidad de procesamiento que de otra forma se perdería.
Este esquema viene a cambiar la tradicional concepción de una arquitectura
cliente-servidor pura, pues ahora todas las máquinas de la red son clientes y servidores
al mismo tiempo. Es lo que se viene en denominar peer to peer (P2P) o de igual a igual. De
esta forma conseguimos nuestro objetivo a un coste bastante más bajo y en un tiempo mucho
menor que el caso de que tuviéramos un único gran servidor dedicado al proyecto.
Como comentábamos esta idea puede ser aplicada en diversos ámbitos, como por ejemplo en
una compañía, la realización de tareas que requieran altas capacidades de proceso, para
lo cual se utilizarán los PCs conectados a la intranet de esta empresa. Sin embargo, si
queremos afrontar un proyecto de ámbito universal y con un elevado grado de complejidad
habremos de ser capaces de abordarlo mediante análisis diferenciales que puedan ser
realizados de forma separada, en paralelo mediante diferentes máquinas presentes en
nuestro ambicioso terreno de juego: Internet. A continuación presentaremos dos de estos
proyectos.
El proyecto SETI @ Home desarrollado por la Universidad de California en Berkeley comienza
en Mayo de 1999. Más de 2 millones de voluntarios lo convierten en la experiencia más
grande de procesamiento distribuido hasta la fecha. SETI (the Search for Extra-Terrestrial
Intelligence) es un nombre colectivo para designar los diferentes programas encargados de
buscar evidencias de vida en el cosmos. Para ello se utiliza como fuente los datos
recogidos por radiotelescopios, que como si de grandes pabellones auditivos se tratase, se
encargan de escudriñar el cielo en busca de señales de radio provenientes del espacio.
Como comprenderán, la capacidad de computación necesaria para analizar todos los datos
que se recogen es desmesurada. Pero, ahí es precisamente donde nace SETI@Home como
proyecto de aplicación de computación distribuida de la Universidad de Berkeley. Los
datos de partida en este caso son los recogidos por el telescopio de Arecibo en Puerto
Rico, el mas grande del mundo (y que ustedes recordarán de la película Contact o quizás
de Goldeneye con James Bond encaramado en él). El radiotelescopio toma como frecuencia
base 1420 Mhz analizando una banda de 2.5 Mhz de ancho (desde 1418.75 Mhz hasta 1421,25
Mhz). Diariamente se recoge una cinta con 35 Gbytes de datos que se envía por correo
(postal) a la Universidad de Berkeley. Una vez allí, la banda de 2.5 Mhz se divide en 256
rodajas de 10 Khz de ancho mediante un programa denominado splitter. De cada rodaja se
toma un intervalo temporal de 107 segundos, lo que constituye una unidad de trabajo (0.25
Mbytes). Estas unidades de trabajo son las que son enviadas por el servidor a los PCs de
los voluntarios del programa distribuidos por Internet. De esta forma, de cada una de las
cintas se extraen casi 166.000 unidades de trabajo. Una vez en los PCs, estos se encargan
de realizar transformadas de Fourier rápidas (Fast Fourier Transform-FFT) sobre los datos
buscando señales significativas en diferentes combinaciones de frecuencia y ancho de
banda hasta totalizar más de 275 billones de operaciones sobre cada unidad de trabajo en
una primera fase de búsqueda de señales candidatas. Sobre las señales se realiza a su
vez un test de integridad, procesándose cada paquete de datos repetidas veces en
distintos ordenadores para descartar errores. Una vez determinadas las diferentes señales
candidatas, y ya en el servidor, se procede a detectar y eliminar las interferencias a
frecuencias de radio. A continuación el proceso continúa con la selección de las
señales persistentes como las candidatas finales, es decir, aquellas que se
han detectado en la misma frecuencia y ubicación celeste más de una vez. A partir de
ahí se realizarían nuevos análisis (descarte de errores, medidas de interferometría)
involucrando diferentes telescopios y grupos de trabajo que puedan confirmar que la fuente
de la señal recibida se encuentra a una distancia interestelar (de forma que se descarten
satélites y otras posibles fuentes emisoras de origen humano). Si tras todas una serie de
análisis, la existencia de una señal se hubiera confirmado, se realizaría un anuncio
público. Hasta la fecha SETI@Home no ha encontrado ninguna señal que podamos considerar
bajo esta categoría, si bien en 1977 se detectó, la conocida como señal WOW, una
señal, que parece ser es el patrón de una señal positiva y que de haber sido detectada
por SETI@Home habría tenido el aspecto de la señal de la figura. ¡Estén atentos!
De una forma similar a SETI@Home surge una nueva iniciativa conjunta de las empresas Intel
y United Devices centrada esta vez en la investigación del cáncer. En este caso se pone
el procesamiento distribuido de internet al servicio de la investigación molecular
realizada en el departamento de Química de la Universidad de Oxford en Inglaterra y la
Fundación Nacional para la Investigación del Cáncer en los EE.UU. El objetivo de estos
centros es la búsqueda de drogas que actúen contra el cancer y la leucemia. Para ello es
necesario realizar complejos análisis de compatibilidad molecular sobre moléculas,
susceptibles de convertirse en un tratamiento efectivo para lo que se precisa de una alta
potencia de proceso. Así, en el caso concreto que nos ocupa se han identificado varias
proteínas responsables del desarrollo de leucemia y otros tipos de cáncer. A través de
un proceso denominado screening virtual un software de análisis se encarga de
identificar moléculas capaces de influir sobre estas proteínas y determinar cuales de
estos candidatos moleculares tienen una alta probabilidad de ser sintetizados en una
droga. Así pues en este caso los PCs de los voluntarios reciben una unidad de moléculas
a través de Internet de forma que cuando se activa el salvapantallas de nuestro PC el
software THINK comienza a analizar los datos moleculares creando un modelo tridimensional
y cambiando su estructura para intentar acoplarlo a una zona de la proteína. Si una de
las estructuras se acopla con éxito y provoca una interacción con la proteína, se
registra como un éxito. Cualquiera de estos éxitos puede conducir finalmente
a una cura. Todos los éxitos son registrados, clasificados y pasados a la siguiente fase
del proyecto. Por cada proteína se vienen a analizar unos doscientos millones de
moléculas lo que pude suponer un mínimo de 24 millones de horas de procesamiento
numérico. De esta forma, se ha estimado que mediante este programa el tiempo necesario
para desarrollar un nuevo tratamiento para el cáncer puede reducirse de doce a cinco
años.
Estos proyectos son de una entidad tal que para cualquier investigador que los emprendiese
hace tan solo unos años suponía saber que le iba a ser imposible conocer los resultados
de su investigación en vida. Ahora, gracias a la computación distribuida el tiempo
necesario para constatar estos resultados disminuye de forma trascendente. Pero dejemos
que el Dr. Anderson, responsable de ambos proyectos nos ofrezca sus impresiones.
En línea con el doctor David Anderson.
El pasado día 15 de
Enero entrevistamos a través de Internet al Dr. David Anderson, Chief Technology Officer
(CTO) de United Devices y fundador y director de los proyectos SETI@Home e Intel-UD Cancer
Research.

|
Juan J.S.Aguila-Collantes (JJSAC): Buenos días David y muchas gracias por
dedicarnos tu tiempo. Hablemos del principio. ¿Cuáles son tus orígenes con el P2P
David Anderson (DA): Obtuve el doctorado en Informática en 1985 y me dediqué a la
enseñanza en la Universidad de Berkeley hasta 1991.
Mis áreas de interés en investigación incluían muchas cosas, entre ellas la
computación distribuida.
La idea básica de la computación distribuida utilizando múltiples ordenadores en
red para trabajar en paralelo en un único problema había sido propuesta en el Centro de
Desarrollo de Palo Alto de Xerox (Xerox PARC) varios años antes.
A finales de los 80 la gente estaba más interesada en los multiprocesadores de memoria
compartida como Sequent y la Connection Machine. Pero yo siempre pensé que la
computación distribuida a través de Internet, era mejor por tema de economía.
JJSAC: Y después por 1999 se lanzaba el proyecto SETI@ Home, que tú liderabas,
¿no es así? Cuéntanos como nació y se desarrolló el proyecto.
DA: Bueno, de hecho comenzó algo antes. Ya en 1995, David Gedye, un antiguo alumno
mío y un muy buen amigo, tuvo la idea. Me la contó y localizó a Dan Werthimer, un
astrofísico muy bueno que había estado buscando inteligencia extraterrestre durante
muchos años, y que también vivía en Berkeley. Pasamos varios años tratando de obtener
dinero para financiar el proyecto. Finalmente David abandonó el proyecto, empezo una
familia y estaba muy ocupado, ya sabes, y así me convertí en el director.
En 1998 conseguimos una pequeña cantidad de dinero de la Planetary Society y Paramount
Pictures, sí, la de las películas. Pequeña, pero suficiente para contratar a 2-3
programadores, construir el sistema de grabación de datos en Arecibo, y desarrollar el
software del cliente y el servidor. También fue de gran ayuda las donaciones de hardware
que recibimos de Sun Microsystems (servidores) y Fujifilm (cintas magnéticas).
A finales de 1998 se finalizó el software básico pero nos llevó varios meses más
depurarlo a fondo y crear las versiones salvapantallas para Windows y
Macintosh. Tuvimos suerte al contratar a un programador que había ayudado a escribir el
salvapantallas After Dark para Mac.
En abril lanzamos la versión Unix del programa cliente, y por fin un mes después las
versiones de Mac y Windows. Despegó muy rápidamente a la semana teníamos 200.000
usuarios, y ahora debemos estar alrededor de los 3 millones y medio. En los dos años y
medio que han pasado desde entonces hemos tenido que hacer muchos cambios para poder
seguir el ritmo.
JJSAC:
¡Y menudo ritmo! De no ser gracias al procesamiento distribuido, ¿cuánto tiempo
calculas que se hubiera necesitado para alcanzar las mismos resultados con un equipo con
las prestaciones más avanzadas?
DA: Si tuviéramos un solo PC, SETI@home habría tardado alrededor de 850.000
años. Si tuviéramos el ordenador más rápido del mundo, nos llevaría unos 10 años.
Pero ese ordenador cuesta 110 millones de dólares (más impuestos), que es demasiado para
nosotros.
JJSAC: Oye, en 1977 se detectó la famosa señal WOW que puede
interpretarse como una posible muestra de vida inteligente extraterrestre. ¿Qué opinas
de ella? ¿Se ha encontrado en el proyecto SETI@Home alguna señal de este tipo?
DA: Uno de los problemas con la búsqueda de inteligencia extraterrestre vía radio
(al menos, con telescopios con base en la Tierra) es que no sólo recibes las señales del
espacio, sino también las señales generadas por el hombre desde la Tierra y las de los
satélites pasando por nuestras cabezas, y que rebotan en la atmósfera o en la Luna.
Cualquier señal que escuches sólo una vez (como la señal WOW!) no pasa de ser
interesante.
Las señales como esa se deben verificar escuchándolas repetidamente (a ser posible con
el telescopio y el software de alguien más , en el caso de que la señal sea el resultado
de un fallo o de un problema hardware).
Por supuesto, todo esto asumiendo que la señal es constante durante un largo periodo de
tiempo.
SETI@home ha construido una base de datos de alrededor de un millardo de señales
candidatas. Nuestros ordenadores están ahora ocupados buscando repeticiones
(señales provenientes del mismo punto estelar y aproximadamente la misma frecuencia, pero
en instantes diferentes). Esto nos llevará varios meses.
JJSAC: ¿Crees que gracias a SETI@Home seremos capaces de llegar a percibir
claramente una señal de vida extraterrestre algún día?
DA: Probablemente no. Nuestra tecnología (Arecibo, el poder de computación) está
todavía en su infancia, y las señales de otras estrellas serían MUY difíciles de
detectar, porque las estrellas están tan lejos.
JJSAC: ¿Qué tipo de señal crees que sería o será?
DA: Si captamos una señal, podría contener información (como una transmisión de
TV) o no (como el radar). Podríamos estar destinados a escucharlo o podríamos no
estarlo. Entonces, ¿por qué deberíamos mirar?. Creo que hay tres razones fundamentales:
1. Cualquier información sobre vida alienígena sería muy valiosa para los biólogos, y
podría ayudarnos a comprender más sobre la vida en la Tierra.
2. La señal podría contener información sobre tecnología como en la película
Contact, donde contenía instrucciones para viajar más rápido que la luz
o podría contener información que es interesante culturalmente como
música, literatura, o filosofía de una civilización alienígena.
3. Una señal vendría probablemente de una distancia de muchos años luz, esto quiere
decir que podría tardar cientos de años que una respuesta alcanzase a los alienígenas y
muchos miles de años que llegase a su estrella.
Creo que sería muy bueno para la raza humana comenzar a pensar en términos de largos
periodos de tiempo (mejor que sólo consumir tan rápido como podamos), y también pensar
en nosotros como especie única con un destino común en vez de un puñado de tribus en
guerra.
JJSAC: Y así emplear la tecnología para subir un peldaño más en la escalera de
la evolución. Oye, pero además de SETI, tenemos también otros casos en los que podemos
aplicar el procesamiento distribuido en el bien de la Humanidad, como por ejemplo el
proyecto de investigación contra el cáncer de United Devices y la Universidad de Oxford.
DA: En 2000 y 2001 se crearon varias compañías United Devices, Entropia,
Porivo, Popular Power para comercializar la computación P2P. Estas compañías afrontaban
el mismo problema: Cómo atraer a un gran número de usuarios. Varias de ellas lanzaron
proyectos investigación contra el cancer, SIDA- siseñados para conseguir montones
de usuarios, que habrían así utilizado sus ordenadores para una tarea en bien de
la Humanidad además de sus tareas de trabajo habituales.
Este enfoque ha tenido bastante éxito - United Devices tiene alrededor de un millón de
usuarios, por ejemplo pero la mayoría de las empresas se han movido hacia un
modelo Intranet que se concentra en dejar a un cliente utilizar sus
ordenadores de sobremesa para tareas de computación distribuida antes que utilizar los
ordenadores de toda la población.
En este caso concreto, el proyecto de investigación del cancer se encarga de buscar
potenciales drogas contra el cancer. Esto se hace examinando una lista de varios millones
de moléculas, y ejecutando una simulación molecular para ver cuales se enlazan con las
proteinas que están presentes en las membranas de las células del cancer.
Así en efecto estamos usando los PCs como laboratorios virtuales en los que
podemos investigar compuestos químicos sin necesidad de crearlos.
JJSAC: ¿Cuántas personas a fecha de hoy están poniendo a disposición sus PCs
para cada uno de los proyectos?
DA: SETI@Home tiene tres millones y medio de usuarios, y el proyecto de
investigación del cancer alrededor de un millón.
JJSAC: Hablando de la distribución. Oye, ¿ves una evolución (como piensas que
vaya a evolucionar) de las arquitecturas de red con esto del procesamiento y
almacenamiento distribuido? ¿Podríamos estar en la antesala del fin del modelo
cliente-servidor?
DA: Algunas tareas computacionales como SETI, análisis genético, etc.
poseen propiedades tales que las permiten utilizar el procesamiento distribuido. A
saber, pocas o nulas dependencias entre los datos, y mucho cálculo por unidad de datos.
Otras tareas no poseen estas propiedades, y se adaptarán mejor a una arquitectura
centralizada (ej. Multiprocesador de memoria compartida).
Del mismo modo, a algunas tareas de almacenamiento les va bien la distribución. Como
servicio de medios digitales (TV/películas/radio), servicio web, archivo de ficheros,
algunas bases de datos, etc.
Por otra parte, tareas de almacenamiento que conlleven actualizaciones de datos frecuentes
se adaptan mejor a la arquitectura cliente/servidor.
JJSAC: En el caso de que se extrajera algún resultado concreto positivo a partir
de una de las señales procesadas ¿se le comunicaría al usuario de la máquina?
DA: Sí en el caso de SETI@home. En el caso de la iinvestigación del cancer, lo
dudo. Los resulatdos son propiedad de la Universidad de Oxford, y como a la mayoría de
las Universidades no les gusta compartir su propiedad intelectual.
JJSAC: ¿Recuerdas alguna anécdota?
DA: Mi correo electrónico preferido de un usuario es el siguiente:
Estimado Dr. Anderson,
Me bajé la versión para Mac de SetiAtHome esta mañana y la instalé y deje
ejecutándose en el Mac PowerPC Performa CD6200 que está en la habitación de mi hijo de
13 años. Ha estado ejecutándose durante todo el día. Cuando le llegó la hora de irse a
la cama, yo fui a apagarlo (porque hace un poquito de ruido y siempre le ha molestado
cuando estaba durmiendo).
Por primera vez me dijo: no. Yo le dije: Pero tu antes siempre lo
querías apagado--¿no te molestará?. El respondió: No. Está bien. Antes me
molestaba porque no estaba haciendo nada. Ahora está haciendo algo.
El piensa que Seti es fantástico.
JJSAC: No me extraña, pues la verdad es que en ambos casos las interfaces son lo
suficientemente atractivas como para que con solo ver el salvapantallas la gente se
enganches. Es curioso en las oficinas el efecto avalancha que puede llegar a
generarse. Incluso conozco gente que nunca apaga el PC pues como este niño considera que
está trabajando.
Pero además de estos proyectos de investigación, desdetu compañía (UD) también se
comercializa la computación distribuida en el sector privado. ¿Se encuentran abiertas
las empresas al P2P y como se ve desde la dirección que los equipos de los empleados se
destinen a procesar información corporativa?
DA: Ha sido algo dificil de vender, pero ha habido un avance. Muchas compañías
tienen aproximadamente 1 PC por empleado, y esto les permitiría realizar importantes
cálculos sin tener que comprar un banco de caros procesadores.
La resistencia tiene que ver más con el control A los departamentos de IT les
gusta tener los ordenadores físicamente bajo su control que con la seguridad de
los datos.
JJSAC:¿Qué estáis ofertando a las empresas?
DA: Un sistema de seguridad agente, software, servidor y un SDK para
facilitar la migración de sus aplicaciones existentes a una ejecución distribuida.
JJSAC: ¿Y qué hay sobre el Gobierno? La red ARPA, antecesora de Internet, tiene
su origen conceptual en la distribución. ¿Están trabajando o han demostrado interés en
algún tipo de aplicación?
DA: Sí. Nosotros (United Devices) estmos en conversaciones con el Gobierno de los
Estados Unidos acerca de la utilización de sus ordenadores (¡varios millones!) para el
procesamiento P2P. También hay un gran proyecto llamado The Grid dedicado a
vincular los grandes ordenadores de las universidades con los laboratorios de
investigación del Gobierno.
JJSAC: Suena interesante. Oye, para finalizar, ¿Con que proyectos nos vas a
sorprender en el futuro?
Yo estoy muy interesado en un proyecto que pretende utilizar la computación distribuida
para predecir los cambios climático en le largo plazo; específicamente ¿estamos en
vías de destruir nuestro planeta por la excesiva y acelerada combustión de petroleo que
estamos haciendo?
Yo quiero combinar este, y otros proyectos, en SETI@home de forma que la gente pueda
utilizar fácilmente sus ordenadores para una diversidad de causas.
También estoy trabajando en otro proyecto que no tiene relación con este y que tiene que
ver con la enseñanza eficaz a una población diversa de estudiantes. Pero dudo que esto
tenga tanto éxito como SETI@Home
JJSAC: ¡Fascinante!. Muchas gracias David, ha sido un placer hablar contigo. Te
deseamos mucha suerte en todos estos proyectos, que sigas teniendo tanto éxito como hasta
la fecha y te invitamos a que vuelvas a hablarnos de ellos cuando quieras.
DA: ¡Gracias!.
|