Talk on sneaky computation to be given at Reykjavik University. Sneaky computation is the using spare CPU cycles with little or no intervention from the user.
4. Let's listen to the sagas The sheepherder of Thorkel TrefI will from Svignaskarð went out that morning to his flock and he saw them going along, driving all sorts of livestock. He mentioned this to Thorkel. I know what is happening, said Thorkel. These are men from Thverárhlið [Cross-river Slope] and friends of mine. They were hard-hit by the winter and will be driving their animals here. They are welcome. I have enough hay , and there is enough pasture for grazing. Hænsa-Thori's Saga, http://lugl.info/fu
5.
6.
7.
8.
9.
10.
11.
12. Y en general, el único recurso que usan es la conectividad.
90. Tests as a proof of concept, most favorable environment, and a performance baseline.
91. Merelo et al. Browser-based distributed evolutionary computation: performance and scaling behavior, http://lugl.info/Ll Looking for a cool logo. Suggestions welcome
Thanks to Tomas Runarsson, who invited me and funded my stay here
La mayor parte de los ordenadores están siempre enchufados, y no aprovechan más que un porcentaje muy bajo de su capacidad. De hecho, el aumento en capacidad de los ordenadores sólo está siendo útil para juegos que desperdician cada vez más ciclos de CPU y procesadores que gastan cada vez más electricidad. Es como lo que decía Chandler (el de friends) cuando se compró el ordenador nuevo... para juegos y eso
Picture CC (like all the others in this presentation) taken from http://www.flickr.com/photos/pefectfutures/3313316367/in/photostream/
Usually when you go to other pastures to take advantage of their CPU it's not because it's winter and you have none, but the issue holds anyways. Besides, the grass is greener always at the other side of the fence.
A finales de los 90 hubo hasta media docena de empresas que vendían ciclos de CPU “sobrantes”: Popular Power, por ejemplo. Otros intentos son no comerciales: [email_address] , por ejemplo. Barabási fue quien introdujo el concepto de computación sigilosa: usando la comprobación de CRC de routers y tarjetas de red
Los gusanos lo que tratan es de aprovecharse de la red para propagarse. Son programas que se reproducen y aprovechan la conexión de red para mandarse a sí mismos a otro ordenador. Si no los paras, claro, la puedes liar. De hecho, el gusano de Morris se replicó más de la cuenta por un error y tiró la Internet de aquella época. Creeper virus was detected on ARPANET infecting the Tenex operating system. Creeper gained access independently through a modem and copied itself to the remote system where the message, 'I'M THE CREEPER : CATCH ME IF YOU CAN.' was displayed. The Reaper program, itself a virus, was created to delete Creeper, the creators of both programs are unknown.
Los gusanos ya no son simplemente formas de explorar la red hechas por un búlgaro en su sótano, sino verdaderas empresas criminales.
El virus I Love You (VBS/Loveletter) era una obra de arte de la ingeniería social: a base de un tema llamativo, lograba que la gente ejecutara el programa. Blaster fue posiblemente uno de los primeros virus, junto con Ramen (para RedHat) que no necesitaba intervención humana para propagarse: simplemente, un ordenador encendido. Santy fue uno de los primeros que se propagaba solito, usando Google y todo para buscar nuevos objetivos. Se acabó su propagación cuando Google filtró la búsqueda. Pero no siempre vamos a tener esa suerte.
Ya el blaster estaba programado para atacar windowsupdate.com en una fecha determinada. Lo que ocurre con las botnets es que son flexibles, y tienen objetivos que pueden variar. No hay nada más sigiloso que estos zombies; de hecho, se les llama zombies porque son inconscientes de lo que llevan. Estos ordenadores zombies son simplemente ordenadores infectados por un virus que lleva asociado un troyano. Ese troyano abre una puerta trasera, que permite controlarlo desde fuera.
Muchas botnets se usan para enviar spam. Hoy en día, la mayoría del spam (entre el 50 y el 80%) procede de ordenadores zombies atrapados en botnets, de hecho. Algunas también instalan adware o spyware de algún fabricante que lo solicita. Por ejemplo, el ataque del gusano Mocbot en septiembre, instalaba un programa de DollarRevenue que le reportó en 24 horas 400 y pico dólares (entre un céntimo y unos 20 por instalación) En 2004, una serie de botnets atacaron sitios de apuestas online; se pedía entre 10 y 50000 dólares para evitar el ataque.
La creación de botnets es una verdadera empresa. Son programas con sus ciclos de desarrollo, prueba, mejora, creación de diferentes versiones... Pero lo importante es que su uso se ha convertido en una empresa criminal. Los botnet herders , o pastores de la grey de bots, venden sus servicios a spammers y demás gente de mal vivir por un precio. O los más amigos de trabajar por su cuenta directamente extorsionan a empresarios amenazándoles con un ataque de denegación de servicio.
Uno de los ataques
Check password-protected
No es computación tan sigilosa; de hecho, tiene unos colores que no son exactamente de camuflaje. Pero sólo usa capacidad sobrante. ¿Qué pasó en el año 96-98 para que empezaran a surgir este tipo de proyectos? Claramente, existía ese excedente de recursos. Y ya llevaba 4-5 años la web funcionando, y la gente empezaba a tener en casa ordenadores conectados de forma permanente. Curiosamente, el Napster surgió un año después, en 1999. La primera mensajería instantánea, ICQ, surge también en 1996. Una mensajería instantánea necesita conexión permanente, porque usa su propio protocolo de direccionamiento.
El proyecto más célebre es el [email_address] que aparece en la ilustración. Pero hay muchos proyectos similares. [email_address] Busca signos de inteligencia extraterrestre analizando señales de radiotelescopios en busca de patrones regulares. No hace falta decir que no ha encontrado nada nunca, pero si le sirvió a alguien para encontrar el portátil de su esposa, que se lo habían guindado. Como en los registros de SETI aparecen las Ips a las que está conectada un nombre de usuario determinado, descubrieron que el chorizo se había conectado desde una IP determinada, lo rastrearon... La esposa declaró “Sabía que casarme con un informático serviría de algo”
Hoy en día, cualquiera se puede montar un proyecto similar usando BOINC, un sistema con origen en [email_address] y basado en un servidor con MySQL y PHP.
Esto introduce un factor social en este tipo de arquitecturas. Dar ciclos está bien, pero tiene que haber algún tipo de incentivo: pantallazos chulos, tu nombre en una lista de equipos ganadores, los ordenadores de tu empresa los más potentes y los que van mejor. El sistema de créditos sirve para eso. Por supuesto, si se trata de encontrar algo, el que lo encuentre querrá que se sepa.
All kind of social issues have to be taken into account, and that's a constant in volunteer/sneaky computing.
Now they are using GPUs, PS3 and all kind of new devices. Data from boinc.berkeley.edu/boinc_papers/internet/paper.pdfboinc.berkeley.edu/boinc_papers/internet/paper.pdf (latest paper published on the subject, 2006) If the social plart was not considered, overall performance would decrease and/or be less predictable.
Foto de: http://www.flickr.com/photos/williamhook/1983337986/ http://folding.stanford.edu/English/FAQ-Petaflop Data for Folding@home
http://www.flickr.com/photos/netkismet/3232590025/in/photostream/ Actually, it's 4000 times slower than doing it on a sigle computer; a computer is needed per cell.
http://www.flickr.com/photos/zooboing/4702020006/in/photostream/ It's indeed similar to mercury tube memories, which were originaly used int the 40s to keep radar signals
Picture adapted from here http://www.flickr.com/photos/helico/404640681/
This is a set of most browsers available.
JavaScript está construido alrededor de una serie de estándares ECMA. http://en.wikipedia.org/wiki/Ajax_(programming ) En realidad, hay otras formas de interaccionar de forma asíncrona entre el navegador y el servidor; ahora mismo, ésta es la más popular. Besides, there are new facilities in HTML5 which will make stuff even easier. XMLHttpRequesst is on its way to become a standard, being in the stage of the last working draft http://en.wikipedia.org/wiki/XMLHttpRequest
Image taken from http://www.adaptivepath.com/ideas/essays/archives/000385.php
Se podría haber usado un entorno diferente. En realidad, tampoco se usa excesivamente RoR y puede ser incluso una rémora a la hora de conseguir altas prestaciones. La gran ventaja que tiene es la integración con ajax. Es muy fácil hacer llamadas AJAX. Pero quizás hoy lo haría en otro lenguaje: Perl o usando el Google Web Toolkit. También se podría usar un entorno totalmente diferente: Microsoft .Net, por ejemplo, o Ruby. Pero no sería tan ubicuo.
En principio, se podría usar otro cualquiera. De hecho, es posible que lo cambiemos, según el “peso” de la aplicación vaya del servidor al cliente. Pero el desarrollo en RoR es rápido, y tiene una comunidad activa
En mi casa, con mi ordenador de sobremesa, y dos portátiles, el mío y el que le compramos a Lourdes, dos VAIO.
El Opera parte la pana, y en un experimento masivo, puede conseguir muchas mejores prestaciones. Lo que ocurre es que no siempre se puede elegir.
No es como para tirar cohetes, pero algo se consigue. El problema es que RoR (mongrel) tiene una sola hebra de salida, y en estas condiciones se producen bloqueos para servir al cliente los resultados. Tampoco está optimizado en este sentido. Está en modo debug y no producción (aunque esto afectaría sobre todo a las prestaciones por nodo, no al escalado). En pruebas hechas con clusters de nodos se han conseguido mejores resultados, pero la aplicación no está hecha para trabajar con muchos nodos clientes. Así que hay que plantearse un cambio en el servidor, o en la distribución cliente-servidor
Microsiervos lo publicó aquí: http://www.microsiervos.com/archivo/ordenadores/experimento-computacion-distribuida.html There are power laws all over the place, which can be correlated with the incoming links and popularity of the site it's announced in. Once again, there are social factors which influence performance.