1 CMU Cisneros Granada, 13 de diciembre de 2007 JJ Merelo Depto. Arquitectura y Tecnología de los Computadores U. Granada Computación (in)voluntaria
2 2 ¿Qué está haciendo tu ordenador ahora? Nada
3 3 Y tú, ¿qué haces cuando no haces nada? ¿Te sobra tiempo de CPU?
4 4 Computación sigilosa Uso de ciclos sobrantes de CPUs humanas o computacionales Si es posible, sin que se entere el propietario.
5 5 En el principio fueron los virus y gusanos En realidad, son el ejemplo más típico de computación sigilosa. Un virus roba tiempo de CPU, espacio de disco Y acaba con la paciencia Los primeros virus fueron en realidad gusanos.
6 6 El jinete de la onda de shock Los gusanos existieron primero en la ficción que en la realidad. El primer gusano salvaje fue el gusano de Arpanet. Robert Morris, 1988 O el Creeper/Reaper Años 70, creador desconocido.
7 7 Gusanos y polillas Los gusanos, en realidad, se aprovechan de los errores. Y en general, el único recurso que usan es la conectividad. Sin embargo, los gusanos ya no son lo que eran.
8 8 ¿Cómo funcionan los gusanos? Los gusanos se aprovechan de debilidades en los programas a los que llegan Programas de email, servidores web, sistemas operativos. También de las debilidades de las personas.
9 9 Cada gusano con su pareja Las botnets son redes de ordenadores infectadas por un gusano con un fin determinado Aprovechan la CPU/ancho de banda de ordenadores infectados. Usa ordenadores zombies o drones.
10 10 ¿Para qué sirve una botnet? Extorsión Recolección de datos (keyloggers, sniffers). Ataque de denegación de servicio por encargo. Instalación de software Spam
11 11 ¿Cómo funciona una botnet?
12 12 Fases de un ataque Primero se ataca un URL. Luego el ISP Luego el proveedor de DNS Se va yendo hacia arriba en la cadena de proveedores. Complicado de evitar
13 13 ¿De qué son capaces estas redes de bots? Hay miles de redes funcionando en cada momento. Una red puede ser capaz de enviar hasta 22-24 Gigabits por segundo. Algunas tienen decenas de miles, incluso cientos de miles de ordenadores. ¼ de Internet infectada
14 14 Vale, tengo miedo. ¿Qué hago ahora? La mayoría de las soluciones son legales, no técnicas. Atacar el centro de control. O tomar control del mismo. Atacar el DNS. Dejar que se casquen entre ellos.
15 15 Pero las mentes criminales saben más Uso de tecnología P2P: El gusano Sinit usa un sistema descentralizado para enviar las órdenes. Uso de Ipv6 Encriptación de comunicación Protección de servidores con clave.
16 16 Pero todavía nos queda una solución Pasarnos todos a Linux (o Mac)
17 17 O pasarnos al lado claro de la fuerza La computación voluntaria cede recursos a una causa determinada. 1996: GIMPS Primos de Mersenne 1997: Distributed.net 1998: Bayanihan y otros basados en Java.
18 18 ¿Cómo me puedo hacer voluntario? Se trata habitualmente de bajarse un programa. Se suele tratar de un salvapantallas (salta cuando no se está usando el ordenador) O un daemon, o una tarea cron. Los portables están escritos en Java
19 19 Esa no es toda la historia Hay muchos proyectos que usan un software similar: Folding@HomeFolding@Home, Xgrid, XtremeWeb... Se usa también de forma competitiva Equipos Empresas donando tiempo...
20 20 ¿Quién es el ganador? Todos los resultados de BOINC (y similars) tienen que ser validados antes de asignar crédito al usuario. Quien tiene el control, puede engañar. Pero hay que dar crédito a quien se lo merece.
21 21 Que no es por dinero Como tú eliges el proyecto, la computación voluntaria democratiza la investigación. Se establece una confianza mutua voluntario-proyecto. El voluntario nunca es culpable. Estimula el interés popular en la ciencia
22 22 Bueno, sí lo es En la época dorada de las puntocom, surgieron varias empresas que vendían capacidad de cómputo distribuido Popular Power, United Devices, Entropia.net... Y pagaban a los usuarios. Ninguna pasó de 2002.
23 23 El cariño de verdad ni se compra ni se vende El mayor supercomputador del mundo hasta septiembre fue SETI@HomeSETI@Home 535169 Gigaflops 331000 ordenadores x 1.6 Gflops/ordenador. 6400 en España La capacidad se incrementa con el tiempo.
24 24 Pero aún hay quien da más Folding@HomeFolding@Home, un proyecto de predicción de estructura de proteinas, superó el Petaflop. Gracias, en parte a 40000 voluntarios con PS3.
25 25 Pero todavía puede ser más fácil Y más sigiloso
26 26 Navegador que navegas Hoy en día es inconcebible un ordenador de sobremesa sin navegador. Y móviles, y set-top boxes... Un navegador es una máquina virtual, con capacidad computacional nativa E independiente del SO subyacente. Usemos los navegadores para computación Sigilosa o no
27 27 AJAX al rescate Javascript sólo no es suficiente para usar el navegador como entorno de computación distribuida. Hace falta un sistema de comunicación asíncrono AJAX=Asynchronous Javascript & XML.
28 28 AJAX al alcance de todos La mayoría de los navegadores incluyen JavaScript. El modelo de objetos también es compatible. Requisito: objeto XMLHttpRequest en el navegador.
29 29 Venga, va, ¿cómo funciona?
30 30 Por las vías pasa el tren Ruby on Rails es un entorno de desarrollo ágil basado en el paradigma MVC, el lenguaje Ruby, AJAX y un gestor de bases de datos (MySQL, por ejemplo).
31 31 ¿Qué es DCoR? Un sistema de computación distribuida que usa AJAX sobre Ruby on Rails para problemas, principalmente, de computación evolutiva. La distribución se realiza entre cliente/servidor, y también podría hacerse entre diferentes servidores. Las pruebas nos permitirán establecer su factibilidad, y el entorno más favorable para la misma, así como una línea base de prestaciones. Se busca logo molón. Razón, aquí.
32 32 Los experimentos, en casa y con gaseosa Problema Royal Road Maximizar el número de unos de una cadena binaria por grupos. =3111 =0101
33 33 Montaje experimental Pruebas con cliente/servidor en el mismo ordenador (Linux) y en diferentes ordenadores (servidor:Linux, cliente:Windows).
34 34 Resultados distribución carga
35 35 ¿Qué navegador es mejor?
36 36 Vámonos de excursión Problema de la mochila binaria Maximizar el peso del contenido de una mochila respetando restricciones. Experimentos en una instalación doméstica
37 37 Prestaciones: servidores
38 38 Prestaciones: navegadores
39 39 Escalado
40 40 Presentando AGAJAJ Asynchronous Genetic Algorithm with JavaScript and JSON Se trata, una vez más, de usar el navegador para computación distribuida masiva. En este caso, todo el algoritmo evolutivo se ejecuta en el navegador
41 41 O volviendo a la carretera real
42 42 El efecto Microsiervos
43 43 ¿A dónde vamos desde aquí? La computación sigilosa es posible. Conviene elegir adecuadamente el cliente y el servidor Aunque no siempre cabe esa posibilidad. Se aceptan voluntarios
44 44 ¿Qué pasa si el computador es humano? A nosotros también nos sobran ciclos de CPU. Y a veces los humanos se han usado para simular un ordenador. Todo el mundo sabe que los ordenadores son más tontos que la gente. Y más caros.
45 45 Crowdsourcing Se trata de un mecanismo para que ciertas tareas computacionales las puedan hacer voluntarios Google Image Labeler, por ejemplo. Mechanical Turk
46 46 Afortunadamente Todavía no existe un API cerebral
47 47 Hemos terminado Muchas gracias