Upload
juan-j-merelo
View
331
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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.
Citation preview
IEEE FyrirlesturReykjavik, Wednesday 11th, 2010
JJ MereloDepto. Arquitectura y Tecnología de los ComputadoresU. [email protected]
Sneaky Computation
2
What is your computer doing now?
Nada0
20
40
60
80
100
120
Desuso de mi ordenador
Tiempo
Por
cent
aje
3
All these cycles are lost in time...
… like tears in the rain
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
So, what's sneaky computation
Use of spare xPU cycles
x=C,G,N...
If possible, with the owner
being none the wiser
Parasitic, volunteer,
community grid...
6
Sneaky computation was born in sin
Actually, the most typical
example of sneaky
computation.
A worm/virus steals CPU
and disk space
And mindshare to boot
First viri were actually
worms.
7
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.
8
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.
9
¿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.
10
Looking for their better half
Botnets are sets of computers
infected with a particular
worm.
Computers are called zombies
or drones.
They can include up to
several million computers
11
Botnets for fun and profit
Blackmail
Individual data collection
(keyloggers, sniffers).
Distributed Denial of
Service on tap.
Software installation under
request (adware)
Spam-relaying
12
Anatomy of a botnet
13
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
14
What can botnets do?
Thousands working at any
moment
Throughput: 22-24
Gigabits/second.
They include tens of
thousands, or hundreds of
thousands.
¼ of Internet infected
15
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.
16
From the Eastern maffia R&D Department
Use of P2P technology:
The Sinit worms uses a
decentralized system to send
commands.
Use of Ipv6
Communication encryption.
Password-protected
servers.
17
Pero todavía nos queda una solución
Pasarnos todos a Linux (o Mac)Pasarnos todos a Linux (o Mac)
18
All is not evil in the world
Volunteer computing lends
cycles to chosen
experiments.
1996: GIMPS
Mersenne primes
1997: Distributed.net
1998: Bayanihan and other
Java-based systems.
19
How do I become a volunteer?
Downloading a client
program
Initially working as
screensaver
Currently when there's
other activity
Also a daemon, or a cron
job.
Most OS-independent
systems written in Java.
20
That's not the whole story: meet BOINC
Used by projects worldwide
Folding@Home, Xgrid,
XtremeWeb...
Encouraged as a
competitive tool
Teams
Companies giving time
21
Security issues
All results are validated
before assigning credit
Mechanisms:
Voting
Spot-checking
Credibility-based fault
tolerance.
Luis F. G. Sarmenta. "SabotageTolerance Mechanisms for Volunteer Computing Systems." Future Generation Computer Systems: Special Issue on Cluster Computing and the Grid, Vol. 18, Issue 4, March 2002: http://lugl.info/a3
22
Money for nothing, that's the way you do it
Since choice is made by the user,
volunteer computing democratizes
research.
Mutual trust volunteer-project
Volunteer is always right.
Boosts popular interest in science.
See BOINC wiki: http://lugl.info/Bl
23
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.
24
Community matters
And this is just an example of how social issues affect performance.
25
You can't buy love
Biggest superomputer (september 2006):
SETI@Home
535169 Gigaflops
331000 computers x 1.6 Gflops/computer.
Biggest user in Iceland: 3 Gflops
http://lugl.info/0m44
Capacity increases over time.
Credit assignment is essential for
performance → the social factor is part of
the computer
26
Wait, there's more
Folding@Home, went over
the Petaflop
Thanks, in part, to tens of
thousands of volunteers
using PS3
27
The start of parasitic computing
Barabási's experiment: use NIC
to compute boolean
satisfiability problems: 2-
SAT, 3-SAT
Design packet so that
checksum is solution to the
problem.
Proof of concept, 2001
http://www.nd.edu/~parasite/
28
Life as a bug
Game of life simulated
using ICMP over a
network of 10 ⁵
computers.
Implicit Simulations using
Messaging Protocols,
G.A. Kohring,
http://arxiv.org/abs/cs/0208021
Proof of concept stage
29
Parasitic storage
Using packets sent through
the network to permanently
store information.
Characteristics analysis of
parasitic storage,Jincai
CHEN, Jiang ZHOU,
Gongye ZHOU, DOI
10.1007/s12200-010-0010
-3
30
Juggling bytes
Establishing a mechanism
that keeps data packets
on the network by
repeated sending.
Ping (ICMP) used for
sending packets.
4 Gigabytes capacity for
70000 parasitifiers
31
But it can be easier
And stealthierAnd stealthier
32
Ajax to the rescue
Javascript by itself can't be
used as a distributed
computing vehicle.
An asynchronous
communication protocol is
needed
Ajax=Asynchronous
Javascript & XML initially
Other languages can be
used for transport.
33
Ajax for everybody
Most, if not all, browsers
include Javascript
ECMA standard
Object model is also
compatible.
W3C standard
Constraint:
XMLHttpRequest in the
browser.
34
How does Ajax work?
35
Parasitic Javascript
JavaScript is used all the time
in web applications.
Running time restrictions for
scripts.
Ajax requests only to
originating domain
Unless in Chrome
environment.
Nick Jenkin: Parasitic
Javascript http://lugl.info/3C
36
Implementation of a distributed computing system in Ruby on Rails
Ruby on Rails is a
framework based on MVC
paradigm.
Uses Ruby, AJAX and a
DBMS such as MySQL.
37
What is DCoR?
A distributed computation system via Ajax built
on RoR used mainly for evolutionary
computation.
Topology is client-server, but server-server is
also possible.
Tests as a proof of concept, most favorable
environment, and a performance baseline.
Merelo et al. Browser-based distributed
evolutionary computation: performance and
scaling behavior, http://lugl.info/Ll
Lo
ok
in
g
fo
r
a
co
ol
l
og
o.
Su
gg
es
ti
on
s
we
lc
om
e
38
Initial experiments
Royal Road problem
Maximize number of ones in
groups
Toy problem for baseline
measures.
=31 1 1
=01 0 1
39
Experimental setup
Client/serrver on the same or different computers.
Evolutionary operators applied on server; clients
performing fitness evaluations only.
Using Royal Road problem.
40
Results single/two computers
41
Browser wars
42
Let's go backpacking
Binary bin-packing problem
Maximize the weight of the
content of a container
respecting restrictions.
Same setup used for
experiments.
Who needs a cluster?
43
Prestaciones: servidores
44
Prestaciones: navegadores
45
Scaling
46
Introducing AGAJAJ
Merelo et al., Asynchronous Genetic
Algorithm with JavaScript and JSON:
http://lugl.info/1o
Framework changed to CGIs in Perl
All the evolutionary algorithms is
performed on the client
Server used for interchange of
individuals.
47
Back to the Royal Road
48
Slashdot effect
49
Where do we go from here?
Sneaky computation is
possible.
And good!
Social factors are
essential.
Programming is not trivial.
Server must be carefully
designed.
(In)volunteers accepted!
50
We're done
Thank you very Thank you very much!much!