Printer Friendly

Public-resource computing: un nuevo paradigma para la computacion y la ciencia.

1. INTRODUCCION

Blue Gene/L es un ambicioso proyecto de IBM que busca crear el supercomputador mas poderoso del mundo. Su mas reciente sistema beta se encuentra actualmente en la cima de la lista del TOP500 de supercomputadores con sus 70.72 TeraFLOPS de poder de procesamiento sostenido. (1) Sin embargo, la marca de 70 Tera-FLOPS fue superada un ano antes por un proyecto nacido en el seno de la academia, con un presupuesto cientos de veces menor (y obtenido por medio de donaciones), y una motivacion mas idealista (pero que podria partir en dos la historia de la humanidad): la busqueda de inteligencia extraterrestre.

1.1 SETI@home

SETI@home (2) surge como respuesta a dos de los principales obstaculos que enfrenta toda iniciativa de SETI: [1]

* El afan de contar con enormes cantidades de poder de procesamiento, debido a que es necesario buscar senales debiles con parametros desconocidos (pues nadie sabe la forma en que transmitira una inteligencia extraterrestre), separandolas del ruido de fondo y filtrando las interferencias de origen humano provenientes de miles de fuentes conocidas y desconocidas. La premisa basica es que entre mas poder de computo se tenga, puede hacerse una busqueda mas amplia y con mayor sensibilidad. (3,4)

* Los recursos economicos con los que puede contar una iniciativa de SETI son escasos en el mejor de los casos, y la mayor parte del tiempo, inexistentes, debido a que es aun un area polemica de la investigacion cientifica. El ultimo proyecto de SETI patrocinado gubernamentalmente (por el gobierno de EE.UU.) fue cancelado en 1992, y desde entonces el apoyo a este tipo de iniciativas se ha limitado a patrocinios secundarios de instituciones academicas, empresas e individuos. Por eso la idea de tener un supercomputador dedicado exclusivamente a la tarea es practicamente impensable.

La idea de SETI@home es buscar el poder de procesamiento alli donde se encuentra disponible en grandes cantidades: cientos de millones de PC en todo el mundo, cuya velocidad de procesamiento crece exponencialmente por la Ley de Moore, que durante partes subsanciales de su tiempo de funcionamiento se encuentran sin uso, y que estan conectados por una red: internet.

Aun cuando SETI@home no fue el primer proyecto [2] concebido para explotar estos 'recursos publicos', se convirtio rapidamente en el mas exitoso, atrayendo a millones de usuarios dispuestos a donar el tiempo libre de sus PC por medio de un salvapantallas que proporciona una vista grafica del procesamiento de senales en proceso. Desde su lanzamiento en 1999, mas de cinco millones de usuarios se han registrado en el proyecto y un ano despues ya superaba las marcas de los supercomputadores del TOP500. A la fecha, mas de un millon de usuarios continuan activos, proporcionando mas de 70 Tera-FLOPS de poder de procesamiento sostenido. Ademas, el proyecto ostenta la marca de ser la computacion mas larga jamas realizada (1.5 millones de anos de CPU, a marzo de 2004).

El exito de SETI@home inspiro a otros proyectos academicos con necesidades similares. Sin embargo, hasta hace poco un numero relativamente pequeno de este tipo de proyectos habia tenido exito, debido en parte a la falta de un apropiado middleware (software de cliente y de servidor, herramientas de administracion, caracteristicas del lado del usuario, etc.).

2. CONQUISTANDO EL PARADIGMA DE LA COMPUTACION DE RECURSOS PUBLICOS (PUBLIC-RESOURCE COMPUTING)

La computacion de recursos publicos (llamada tambien computacion global y computacion peer-to-peer) ofrece recursos sin precedentes para la investigacion cientifica y la ingenieria. Se espera que para el 2015 haya mil millones de computadores personales conectados a internet; el poder de procesamiento que representaran es del orden de varios PetaFLOPS. Mas aun, la tasa de crecimiento de la velocidad de los coprocesadores graficos, usados en las tarjetas aceleradoras de video en PC y en consolas de juegos, es incluso mayor que la de los procesadores (se duplica cada ocho meses), y su poder de procesamiento de punto flotante puede ser varias veces mayor que el de una CPU, con una enorme y hasta ahora no explotada fuente de recursos de computo. [3] Ademas, la computacion de recursos publicos posee otros aspectos. En cuanto al almacenamiento, por ejemplo, si 100 millones de usuarios de PC donan cada uno 10 GB de almacenamiento, se alcanza una cifra de 1 Exabyte (10 (18) bytes), que excede con creces la capacidad de cualquier sistema de almacenamiento centralizado. (6)

Sin embargo, para poder aprovechar esta abundancia de recursos es necesario superar una larga serie de retos tecnicos: Adaptar una aplicacion a una multitud de plataformas, implementar sistemas de servidor y bases de datos, mantener el registro de las cuentas de usuario y sus respectivos creditos (contribucion de cada usuario al proyecto), manejar la redundancia y las condiciones de error, ademas de prever acciones malintencionadas de usuarios, y un largo et-cetera.

2.1 BOINC

La infraestructura abierta para computacion en red de Berkeley (BOINC, por sus siglas en ingles: Berkeley Open Infraestructure for Network Computing (7,8)) fue desarrollada por el Laboratorio de Ciencias del Espacio de la Universidad de California-Berkeley, con el fin de "apoyar el desarrollo del paradigma de la computacion de recursos publicos", por un lado facilitando a la comunidad cientifica la creacion de proyectos de este tipo, y por el otro, alentando al publico en general a participar en proyectos, al brindarles una forma simple de unirse a una o varias iniciativas, y controlar el uso que estas hagan de sus PC.

Los objetivos especificos de BOINC incluyen:

* Reducir las barreras de entrada a la computacion de recursos publicos. BOINC esta disenado para ser usado por cientificos, no por ingenieros de sistemas o expertos en programacion. Las herramientas que provee son simples y bien documentadas, de manera que un proyecto pueda ser creado con relativamente poco trabajo inicial, y pocas horas semanales de mantenimiento. Ademas, el servidor central de un proyecto basado en BOINC puede consistir en una sola maquina que ejecute software de codigo abierto de uso comun, tales como Linux, Apache, PHP, Python y MySQL.

* Compartir recursos entre proyectos autonomos. Aun cuando los proyectos basados en BOINC son autonomos (operan en sus propios servidores, y corren completamente independientes unos de otros), un usuario puede participar simultaneamente en multiples proyectos, definiendo para cada uno que porcentaje de los recursos de su maquina puede utilizar. De hecho, cuando un usuario se registra en varios proyectos la utilizacion de sus recursos mejora, puesto que asi si un proyecto se encuentra abajo por mantenimiento, el PC del participante puede utilizar sus recursos en otros proyectos, en lugar de simplemente esperar a que se restablezca la comunicacion con el primero.

* Soportar aplicaciones diversas. BOINC soporta un amplio rango de aplicaciones, incluyendo las ya existentes y escritas en lenguajes comunes (C, C++, FORTRAN), sin necesidad de realizar modificaciones extensas.

* Recompensar a los participantes. Para que un proyecto de computacion de recursos publicos sea exitoso, debe atraer y retener participantes, y para lograrlo debe ofrecerles incentivos. El mas importante para la mayor parte de los participantes [4] es el credito: una medida numerica de los recursos que ha brindado al proyecto. BOINC provee un sistema de creditos por participante y por proyecto, que es altamente resistente a fraudes por parte de usuarios malintencionados. Ademas, BOINC facilita a los desarrolla dores de un proyecto adicionar graficos de salvapantallas a sus aplicaciones, aspecto importante dado que estos son otros de los incentivos que mas importan a los participantes.

2.2 La Implementacion de BOINC

Un proyecto basado en BOINC se identifica con una URL maestra, que corresponde a la pagina principal del sitio web del proyecto, y funge como directorio de los servidores del mismo. Un proyecto involucra una o mas aplicaciones, que pueden cambiar en el tiempo en forma transparente para el usuario.

El complejo de servidores de un proyecto basado en BOINC esta centrado en una base de datos relacional que almacena informacion acerca de las aplicaciones, plataformas, versiones, unidades de trabajo, resultados, cuentas de usuarios, equipos de usuarios, etc. Las funciones de servidor son realizadas por un conjunto de servicios web y procesos demonio:

* Los Servidores de Programacion de Trabajo (Scheduling Servers) manejan las RPC de los clientes, que pueden consistir en solicitudes de trabajo, envio de resultados, o solicitudes de actualizacion de datos.

* Los Servidores de Datos (Data Servers) manejan los envios de resultados por parte de los clientes, realizando un proceso de verificacion de los mismos para comprobar su validez. Tanto el envio de trabajo a los clientes como la recepcion de resultados de los mismos se manejan por HTTP, de manera que los clientes pueden funcionar detras de un firewall.

BOINC provee herramientas (scripts de Python e interfaces de C++) para crear, iniciar, y detener proyectos, y comunicarse con ellos; adicionar nuevas aplicaciones, plataformas o versiones a un proyecto; crear unidades de trabajo y monitorear el desempeno de los servidores y de los clientes.

Para participar en proyectos basados en BOINC, un usuario debe descargar el cliente de BOINC. Este puede operar en diversas modalidades:

* Como salvapantallas, mostrando graficas asociadas al proyecto (que es el modo mas usual).

* Como servicio de Windows, que puede correr aun si un usuario no ha iniciado sesion en el equipo; como una aplicacion que muestra informacion acerca del proyecto y el uso del equipo.

* Como un programa de linea de comandos de UNIX.

BOINC tambien provee herramientas para realizar la instalacion remota del cliente en multiples maquinas.

Un participante se une a un proyecto visitando el sitio web del mismo, llenando la forma de inscripcion y registrando el proyecto en el cliente. Para esto debe escribir la URL maestra del proyecto y un codigo de participante que le es asignado una vez realizada su inscripcion. El cliente de BOINC se ocupa de descargar las aplicaciones y archivos necesarios, sin mas participacion del usuario

3. APLICACIONES DE LA COMPUTACION DE RECURSOS PUBLICOS

Como se ha visto, la computacion de recursos publicos ofrece posibilidades sin precedentes para diversos campos de la ciencia y la ingenieria, y ya existe un importante marco de trabajo para la creacion de proyectos que exploten este paradigma. Sin embargo, dadas las caracteristicas propias de la computacion de recursos publicos, se presentan ciertas limitaciones al rango de iniciativas que pueden aprovechar este concepto:

* Las tareas deben tener una alta relacion de cantidad de computo a cantidad de datos, es decir, se debe poder realizar una gran cantidad de computacion sobre un grupo relativamente pequeno de datos (Por ejemplo, SETI@home realiza cerca de doce horas de computacion sobre cada unidad de 350 KB de datos, produciendo resultados de 1 KB). Esto con el fin de mantener bajo el trafico de red, y por consiguiente el costo de conectividad del proyecto.

* Las tareas deben ser inherentemente independientes. Existen aplicaciones que pueden ser facilmente trabajadas en paralelo, pero que requieren una frecuente sincronizacion entre nodos. Este tipo de tareas no son compatibles con las frecuentes fallas de comunicacion que se daran entre los participantes y el servidor central de un proyecto de computacion de recursos publicos.

* Las tareas deben ser tolerantes a errores. Los participantes de un proyecto pueden generar resultados erroneos al surgir fallas en el sistema operativo o en el hardware de sus PC, o bien en el cliente BOINC en caso de que lo hayan modificado y recopilado para tratar de obtener un mayor rendimiento; o generar resultados deliberadamente falsos para tratar de obtener un mayor credito, o simplemente para vandalizar el proyecto.

* Y quizas lo mas importante, un proyecto de computacion de recursos publicos debe atraer participantes.

Esto ultimo anade un importante componente al paradigma: el aspecto social. Los creadores de un proyecto tienen que hacer mucho enfasis en la labor de atraer y mantener participantes, y para esto se han identificado diversas estrategias. En primer lugar, las metas del proyecto deben tener una alta aceptacion (Por ejemplo, existen iniciativas exitosas en campos como la investigacion biomedica y el estudio del calentamiento global). Ademas, estas deben ser explicadas y justificadas con claridad. En segundo lugar, las graficas de salvapantallas pueden ser en extremo importantes para algunos participantes, y constituyen un poderoso mecanismo promocional puesto que pueden ser vistas por muchas personas que podrian interesarse en participar. En tercer lugar, debe crearse una comunidad alrededor de un proyecto, donde los usuarios puedan compartir opiniones, consultar su credito y compararlo con el de otros participantes, crear perfiles de usuario y formar equipos. El factor motivacional de pertenecer a una comunidad que apoya directamente un proyecto con metas importantes no se debe descuidar.

CONCLUSION

La computacion de recursos publicos ofrece posibilidades sin precedentes a la ciencia y la ingenieria. El tener a disposicion potencia de computo y almacenamiento virtualmente ilimitados permitira la creacion y desarrollo de proyectos de investigacion con niveles de complejidad que hubieran sido imposibles unos anos atras. El nivel de precision con el cual los modelos matematicos se aproximan al mundo fisico, y el detalle con el que pueden analizarse enormes cantidades de datos, pueden crecer en varios niveles de magnitud mediante el uso de este potencial. Sin embargo, esto plantea un nuevo reto a los investigadores: hacer mercadeo y publicidad adecuados de sus proyectos, aprender a conquistar al publico y convencerlo para que participe.

Fecha de recepcion: 30-06-2005

Fecha de aceptacion: 01-11-2005

BIBLIOGRAFIA

(1.) TOP500: http://www.top500.org/ lists/2004/11/

(2.) SETI@home: http://setiweb.ssl.berkeley.edu/

(3.) Anderson, D. P., J. Cobb, E. Korpela, M. Lebosfsky, and D. Werthimer. "SETI@home: An Experiment in Public-Resource Computing". Communications of the ACM, Nov. 2002, Vol. 45 No. 11. (http://setiathome.berkeley.edu/ cacm/cacm.html)

(4.) Korpela, E., D. Werthimer, D. P. Anderson, J. Cobb, and M. ebosfsky. "SETI@home--Massively Distributed Computing for SETI". Computing in Science and Engineering 3(1), 2001

(5.) Skawinnski, K. Z. "IT & SETI: The Role of Computer Technology in the Search of Extraterrestrial Intelligence". California Computer News, July 2 2002. (http://www.ccnmag.com/ story.php?id=146)

(6.) Anderson, D. P. "Public Computing: Reconnecting People to Science" Conference on Shared Knowledge and the Web, Residencia de Estudiantes, Madrid, Spain, Nov. 17-19 2003. (http:// boinc.berkeley.edu/boinc2.pdf)

(7.) Anderson, D. P. "BOINC: A System for Public-Resource Computing and Storage" 5th IEEE/ACM International Workshop on Grid Computing, November 8, 2004, Pittsburgh, USA. (http://boinc.berkeley.edu/ grid_paper_04.pdf)

(8.) BOINC: http://boinc.berkeley.edu

Juan David Osorio Betancur

Psidium--Mobile Marketing

juandoso@gmail.com.

[1]. Search of ExtraTerrestrial Intelligence (Busqueda de Inteligencia Extraterrestre): Area de la ciencia cuyo objetivo es detectar vida inteligente por fuera de la Tierra. En este articulo se habla de SETI refiriendose a radio SETI, su mas importante rama, que emplea radiotelescopios para detectar senales de radio de banda estrecha (que no ocurren naturalmente) provenientes del espacio exterior. [3]

[2]. En 1997, dos anos antes de su lanzamiento, surgieron dos proyectos que atrajeron a miles de participantes: GIMPS, que buscaba numeros primos extremadamente grandes (numeros de Mersenne), y Distributed.net, cuyo objetivo era romper por fuerza bruta algunos protocolos de encripcion.

[3]. SETI@home esta trabajando con NVIDIA para la creacion de una version de la aplicacion que realice una gran parte del procesamiento en el procesador de las tarjetas de video de este fabricante.

[4]. Segun encuestas realizadas a participantes de SETI@home.

CURRICULO

Juan David Osorio Betancur. Ingeniero Telematico de la Universidad Icesi. Ha realizado investigaciones en el area de tecnologias inalambricas y computacion distribuida vinculado al grupo I2T de la misma Universidad. Actualmente es socio fundador y gerente de tecnologia de Psidium--Mobile Marketing, empresa dedicada a la prestacion de servicios de valor agregado sobre telefonia celular.
COPYRIGHT 2005 Universidad ICESI
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2005 Gale, Cengage Learning. All rights reserved.

Article Details
Printer friendly Cite/link Email Feedback
Author:Osorio Betancur, Juan David
Publication:Sistemas & Telematica
Date:Jul 1, 2005
Words:2805
Previous Article:Entorno para la visualizacion y la practica con sistemas humanos a traves de la Web (WESST--HS).
Next Article:Analisis, modelamiento y simulacion de redes enmalladas basadas en el estandar 802.16-2004.
Topics:

Terms of use | Privacy policy | Copyright © 2019 Farlex, Inc. | Feedback | For webmasters