50
IEEE Fyrirlestur Reykjavik, Wednesday 11th, 2010 JJ Merelo Depto. Arquitectura y Tecnología de los Computadores U. Granada [email protected] Sneaky Computation

Sneaky computation

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

Page 1: Sneaky computation

IEEE FyrirlesturReykjavik, Wednesday 11th, 2010

JJ MereloDepto. Arquitectura y Tecnología de los ComputadoresU. [email protected]

Sneaky Computation

Page 2: Sneaky computation

2

What is your computer doing now?

Nada0

20

40

60

80

100

120

Desuso de mi ordenador

Tiempo

Por

cent

aje

Page 3: Sneaky computation

3

All these cycles are lost in time...

… like tears in the rain

Page 4: Sneaky computation

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

Page 5: Sneaky computation

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...

Page 6: Sneaky computation

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.

Page 7: Sneaky computation

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.

Page 8: Sneaky computation

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.

Page 9: Sneaky computation

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.

Page 10: Sneaky computation

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

Page 11: Sneaky computation

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

Page 12: Sneaky computation

12

Anatomy of a botnet

Page 13: Sneaky computation

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

Page 14: Sneaky computation

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

Page 15: Sneaky computation

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.

Page 16: Sneaky computation

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.

Page 17: Sneaky computation

17

Pero todavía nos queda una solución

Pasarnos todos a Linux (o Mac)Pasarnos todos a Linux (o Mac)

Page 18: Sneaky computation

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.

Page 19: Sneaky computation

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.

Page 20: Sneaky computation

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

Page 21: Sneaky computation

21

Security issues

All results are validated

before assigning credit

Mechanisms:

Voting

Spot-checking

Credibility-based fault

tolerance.

Luis F. G. Sarmenta. "Sabotage­Tolerance 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 

Page 22: Sneaky computation

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

Page 23: Sneaky computation

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.

Page 24: Sneaky computation

24

Community matters

And this is just an example of how social issues affect performance.

Page 25: Sneaky computation

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

Page 26: Sneaky computation

26

Wait, there's more

Folding@Home, went over

the Petaflop

Thanks, in part, to tens of

thousands of volunteers

using PS3

Page 27: Sneaky computation

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/

Page 28: Sneaky computation

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

Page 29: Sneaky computation

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

Page 30: Sneaky computation

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

Page 31: Sneaky computation

31

But it can be easier

And stealthierAnd stealthier

Page 32: Sneaky computation

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.

Page 33: Sneaky computation

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. 

Page 34: Sneaky computation

34

How does Ajax work?

Page 35: Sneaky computation

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

Page 36: Sneaky computation

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.

Page 37: Sneaky computation

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

Page 38: Sneaky computation

38

Initial experiments

Royal Road problem

Maximize number of ones in

groups

Toy problem for baseline

measures.

=31 1 1

=01 0 1

Page 39: Sneaky computation

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.

Page 40: Sneaky computation

40

Results single/two computers

Page 41: Sneaky computation

41

Browser wars

Page 42: Sneaky computation

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?

Page 43: Sneaky computation

43

Prestaciones: servidores

Page 44: Sneaky computation

44

Prestaciones: navegadores

Page 45: Sneaky computation

45

Scaling

Page 46: Sneaky computation

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.

Page 47: Sneaky computation

47

Back to the Royal Road

Page 48: Sneaky computation

48

Slashdot effect

Page 49: Sneaky computation

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!

Page 50: Sneaky computation

50

We're done

Thank you very Thank you very much!much!