Tesi di Laurea La Solidarietà Digitale

Transcript

Tesi di Laurea La Solidarietà Digitale
Tesi di Laurea
La Solidarietà Digitale
Da Seti@home a Boinc.
Ipotesi di una società dell’elaborazione.
di
Francesco Morello
1
INDICE
Introduzione............................................................... 4
Capitolo I Calcolo Vontario....................................... 5
1.1 Dai media di massa al calcolo distribuito......... 5
1.2 Calcolo Distribuito...............................................6
1.3 Calcolo Volontario............................................... 8
1.3.1 Come funziona il calcolo volontario ?.......... 10
1.3.2 Applicazioni del Calcolo Volontario.............. 11
Capitolo II Analisi di BOINC.................................... 23
2.1 Piattaforma per il calcolo volontario ...............
23
2.2 Architettura di BOINC........................................25
2.2.1 L'interfaccia di BOINC.................................... 25
2.2.2 Progetti e Volontari......................................... 31
2.2.3 Checkpointing e Work unit............................ 32
2.2.4 Crediti e ridondanza....................................... 32
2.2.5 Gli scopi di BOINC.......................................... 33
Capitolo III Aspetti tecnici del calcolo distribuito 36
3.1 Grid Computing vs Volunteer Computing....... 36
3.2 Hardware e Software per il Distributed Computing38
3.2.1 La Playstation 3 per raggiungere il Petaflop.41
Capitolo IV Aspetti sociali del calcolo volontario 45
4.1 Riavvicinarci alla scienza.................................. 45
2
4.2 Volontari oltre la CPU........................................ 47
4.2.1 Forum, Blog e Web site .................................
47
4.3 Sondaggi e Statistiche ......................................
48
4.4 Prospettive del calcolo volontario ...................
48
Capitolo V Ipertesto ................................................
49
Conclusioni.............................................................. 50
Bibliografia............................................................... 51
3
Introduzione
Negli ultimi decenni persino le più comuni azioni quotidiane sono state
profondamente modificate dal progresso tecnologico.
Tutti i campi sono stati influenzati dalla novità digitale: la conversione al bit
ha investito la fotografia come il commercio, la comunicazione personale e
di massa, persino il terrorismo e la politica.
Questo studio è teso a mettere in evidenza come la “rivoluzione ed
evoluzione“ digitale stia modificando ed innovando il concetto di solidarietà, offrendo nuove dimensioni globali in cui lʼutente può contribuire solidalmente, allargando i confini ed abbattendo le barriere nazionali, verso
unʼipotesi prossima della “Società dellʼelaborazione”.
Ripercorrendo lʼevoluzione informatica che ha gettato le basi della solidarietà digitale e analizzando la piattaforma di calcolo volontario più famosa del web, traccerò i contorni della comunità online di supporto al calcolo
distribuito, uno strumento comunicativo che ha lo scopo di spiegare in
termini semplici questo universo e sensibilizzare gli utenti su temi scientifici ed umanitari, con la speranza di ampliare maggiormente questa già
grande comunità che aiuta la scienza.
4
Capitolo I
Calcolo Vontario
1.1 Dai media di massa al calcolo distribuito.
Nel villaggio globale dellʼepoca dei mass media, sono avvenuti innumerevoli cambiamenti. Quello che una volta veniva chiamato comunemente
audience, che si ipotizzava rispondesse a teorie ipodermiche, è diventato
lentamente un abile creatore di contenuti. Da passivi spettatori di un messaggio mediatico, questi abili e pazienti cittadini, grazie al web, hanno iniziato a tessere relazioni sociali e la comunicazione da verticale è divenuta
orizzontale. La realtà sociale di internet è ormai indiscussa: blog, comunity, forum,instant messaging, sono un esempio dellʼinnumerevole quantità
di strumenti che il cittadino comunicatore del villaggio globale ha a disposizione 24 ore su 24 ore.
I social network come my space, blogger, facebook, sono diventati il
centro di interesse sia per gli utenti, sia per gli investitori bilionari di internet. Questa veloce evoluzione nellʼutilizzo di internet può essere riassunta
in un modo: dopo vari tentativi di creare un prodotto di successo, utilizzando una prospettiva di vecchio stampo, alla fine sono stati gli utenti a
creare il prodotto di successo, User Created Content (UCC). Esempi eclatanti di UCC sono sotto gli occhi di tutti: Wikipedia, Youtube, per citarne
due, sono prodotti digitali continuamente creati dagli utenti di internet, un
internet soprannominato Web 2.0.
5
il ruolo del computer, grazie allʼincremento delle risorse di elaborazione
ed alla maggiore (quasi capillare) diffusione del mezzo, è profondamente
cambiato nel corso degli anni e grazie al web, il computer è diventato nodo di una ragnatela che collega tutti i paesi del mondo. Tutte queste nuove
caratteristiche e abilità molto utili, che hanno reso lʼutilizzo del computer
molto più gradevole da quando si comunicava solo con un prompt, non
potevano nascondere la prima caratteristica dellʼelaboratore, la computazione. Questʼultima variabile è quella che è cresciuta a dismisura se si
pensa che un pc di 13 anni fà, con a bordo Windows 95, doveva avere
come requisiti minimi, una cpu 133Mhz ed una RAM di 16 mb. La frequenza attuale dei processori moderni si aggira intorno al Ghz, con modelli di CPU che toccano perfino i 3Ghz.
La interconnessione di elaboratori così potenti, sta alla base dellʼidea
del calcolo distribuito, una nuova applicazione nella megalopoli digitale.
1.2 Calcolo Distribuito
Alla base del calcolo distribuito vi è lʼidea di unire vari computer per
generare una grande potenza di elaborazione, questa idea è stata di certo
aiutata dalla diffusione di internet durante gli anni 90, era il primo periodo
in cui i computer connessi in internet utilizzavano applicazioni per inviare
email o navigare il web.
I primi ricercatori iniziarono a realizzare che quel grande numero di
macchine connesse in Internet avrebbero potuto essere utilizzate per formare un grande super computer virtuale.
6
Il calcolo distribuito può generare più potenza di elaborazione di qualsiasi supercomputer ed il distacco tra i due sistemi di calcolo crescerà
sempre di più.
Nel 1998 fu stimato che il progetto SETI@home era stato eseguito da
circa 1 milione di computer e questo significava una potenza di calcolo di
circa 60 TeraFLOPs1, mentre il super computer IBM ASCI White, il più veloce in quegli anni, generava una potenza di calcolo di circa 12
TeraFLOPs.
Il milione di utenti di SETI@home rappresenta una piccolissima frazione degli utenti di internet e si stima che la popolazione di internauti arrivi
entro il 2015 ad un miliardo2,
Ciò che caratterizza questa versatilità e successo del calcolo distribuito
rispetto ai sistemi di supercomputer costosi ed ingombranti è proprio lʼessenza del calcolo distribuito: la rete di elaboratori che aderiscono alla condivisione di risorse è molto simile alla struttura di internet, infatti la rete non
dipende da ogni computer connesso, anzi ogni singolo nodo è proprio
autonomo e lʼassenza di un nodo non compromette la struttura della rete.
Inoltre lʼimplementazione del calcolo distribuito ha un vantaggio molto
evidente: la sua economicità rispetto ai sistemi basati sui supercomputer,
ciò significa un accesso molto più democratico allʼutilizzo di potenti risorse
1
Trillion floating-point operations per second.
2
D.P. Anderson. Public Computing: Reconnecting People To Science, Nov. 2003.
http://boinc.berkeley.edu/papers.php
7
informatiche e quindi la potenziale riuscita di vari progetti scientifici, a prescindere dai fondi stanziati per la ricerca.
1.3 Calcolo Volontario
“The worldʼs computing power and disk space is no longer primarily concentrated in supercomputer centers and machine rooms. Instead it is distributed in hundreds of millions of personal computers and game consoles belonging to the general public”3 .
Il calcolo volontario è un aspetto molto romantico dellʼera digitale, infatti
è un tipo di calcolo distribuito in cui gli utenti donano una percentuale delle
risorse informatiche a disposizione, senza scopo di lucro.
Dal punto di vista tecnico, può essere definito come una forma di calcolo distribuito in cui gli utenti donano volontariamente risorse informatiche a
progetti, i quali a loro volta usano queste risorse per analizzare dei dati più
efficientemente.
Qualsiasi utente in possesso di un computer connesso ad internet può
contribuire a questi progetti, infatti scaricando un software per simulare dei
modelli di dati e registrandosi al progetto, sarà a tutti gli effetti un volontario e ad ogni accensione del proprio personal computer, contribuirà con
una parte della potenza del suo elaboratore.
I progetti sono normalmente accademici e svolgono compiti scientifici
ma esistono anche eccezioni, ad esempio GIMPS e distributed.net, due
3 BOINC: A Stystem for Public-Resource Computing and Storage.
8
dei primi progetti che hanno riscosso molto successo, non sono accademici.
I volontari sono utenti anonimi, sebbene agli utenti è chiesto di registrarsi e di fornire un indirizzo email valido o altre informazioni, non esiste
un modo per un progetto di collegare lʼutente volontario con la sua identità
reale. A causa dellʼanonimato, i volontari non hanno nessuna responsabilità nei confronti dei progetti. Se un volontario ha un comportamento errato,per esempio, danneggiare i risultari dellʼelaborazione in modo intenzionale, il progetto non può perseguire o giudicare lʼutente volontario.
Dʼaltronde anche i Volontari devono avere fiducia nei progetti in vari
modi:
1) I volontari devono sapere che le applicazioni software che il progetto
a cui aderiscono distribuisce non danneggiano il loro computer o invadano la loro privacy;
2) I volontari devono riporre fiducia nel lavoro degli scienziati che mantengono il progetto, e su come la conoscenza intellettuale generata
dai risultari del calcolo venga utilizzata;
3) Bisogna garantire un elevata sicurezza informatica, in modo tale da
convincere gli utenti di non correre alcun rischio ed in modo da non
permettere ad un hacker di usare il progetto per altri scopi.
Ma cosa è che rende il calcolo volontario così importante?
9
Probabilmente la prima motivazione è il numero di computer sparsi per
il mondo e quindi la consapevolezza che il calcolo volontario può (e già fa)
offrire più potenza di calcolo alla scienza di qualsiasi altra forma di calcolo.
Questa potenza di calcolo permette alla ricerca scientifica di percorrere
ricerche che non potrebbero altrimenti essere neanche immaginate.
1.3.1 Come funziona il calcolo volontario ?
Per comprendere come il computer offre la sua potenza di calcolo, bisogna conoscere il concetto di Idle 4, ossia, la fase in cui una cpu5 , non è
usata da nessun programma o applicazione, questo stadio di stasi in cui si
trova normalmente una cpu è alla base del volunteer computing, infatti i
cicli di calcolo non utilizzati, vengono invece impiegati dal software di calcolo distribuito, per compiere delle elaborazioni condivise tra i membri dei
vari progetti di calcolo distribuito.
“Modern machines are capable of executing bilions of instructions in the
time it takes us to blink. This fact may be less surprising when we consider that the typical machineʼs sold today feature processors running at
multiple gigahertz supported by hundred of magabytes of main memory.
Surprisingly, the vast majority of personal computers are underutilized.
The truth is many machines are idle for as much as 90% of an entire day.
Even when active, most applications utilize fewer than 10% percent of
the machines CPU”. 6
4Un computer è nell stato di idle quando non è utilizzato da nessun programma o applicazione o quando viene utilizzato marginalmente.
5 C.p.u. central processing unit..
6 Tapping the Matrix: Revisited Carlos Justiniano - ChessBrain Project
10
Lʼantico detto ”lʼunione fa la forza” non è stato mai così attuale. Infatti la
potenza del calcolo distribuito consiste nel numero di computer che aderiscono volontariamente a questi progetti, più grande è il numero di membri,
più veloce sarà lʼelaborazione generale.
“Furthermore, this trend shows no signs of reversing, in fact, conservative
estimates indicate that there are roughly 800 milion personal computers
in use. About 150 milion are Internet connected machines, which are expected to increase to 1 bilion by 2015”7.
1.3.2 Applicazioni del Calcolo Volontario
Da un punto di vista cronologico, non è stata la solidarietà a richiamare
lʼattenzione sullʼuniverso del calcolo distribuito e neanche qualche problema molto concreto, anzi il primo progetto di calcolo distribuito nel 1994
chiamato GIMPS (Great Internet Mersenne Prime Search), si occupava e
continua a farlo, (dal momento che è un progetto attivo), di matermatica, in
modo specifico della ricerca dei numeri primi. A questo progetto ed al suo
fondatore, George Woltman ma soprattutto ai migliaia di utenti che hanno
7 Tapping the Matrix: Revisited Carlos Justiniano - ChessBrain Project
11
donato le loro risorse attraverso GIMPS si deve la scoperta di ben dieci
numeri primi di cui il più grande numero primo al mondo, il 44 esimo esattamente.
Questo progetto ha avuto molta partecipazione nel mondo accademico
e una buona ragione per parteciparne è stata quella di segnare un record
mondiale.
Il secondo progetto di calcolo distribuito, chiamato Distributed.net nasceva nel 1996 ancora in ambito accademico, si prefiggeva di sfidare i sistemi di crittografia di allora, una chiave di 56-bit. Nellʼottobre dello stesso
anno, il gruppo Distributed.net grazie ad un vasto numero di utenti che
aderirono alla sfida crittografica, scoprì la chiave di codifica e rese pubblica la necessità di creare una chiave di codifica più complessa e lunga.
Nello stesso mese il New York Times, pubblicava un articolo sul successo
informatico, intitolato: “Cracked Code Reveals Security Limits”.
Questi successi, sebbene molto importanti, ancora riguardavano un
ambito molto scientifico e soprattutto erano privi di un aspetto sociale che
attraesse un vasto numero di utenti in tutto il mondo. Possiamo ipotizzare
che i creatori dei primi due progetti, GIMPS e Distributed.net e gli utenti
che aderirono, condividessero la stessa conoscenza teorica e pratica e
questo è evidente dal numero ristretto di adesioni e dalla tipologia della
ricerca in atto.
Nel 1998 un gruppo di ricercatori della Università di Berkeley in California con a capo il professore David Anderson realizzava il primo progetto di
12
calcolo distribuito ad avere un forte appeal sociale e solidale: SETI@home.
Lʼacronimo SETI sta per “Search for Extra Terrestrial Intelligence” mentre il simbolo “@“ seguito da “home”, è stato da allora il nuovo modo di
denominare progetti di volunteer computing, rappresentando la presenza
dei computer “a casa”.
Il progetto SETI@home ha catturato il pubblico interesse, perchè dalla
sfera informatica e scientifica, ha varcato perfino la soglia della scienza,
abbracciando anche un briciolo di fantascienza, come ogni buona ricerca
extraterrestre ha di bisogno. Tutto ciò si è concretizzato in un milione di
utenti in tutto il mondo ed almeno 1 milione e 500 mila anni di calcolo eseguiti, ed ancora oggi il progetto va avanti, infatti la mole di dati da analizzare è quasi infinita se si considera che si tratta dellʼanalisi di tutti i segnali
radio provenienti dal cosmo, segnali che sono ricevuti dal più grande radio
telescopio al mondo, lʼArecibo Radio Telescope in Puerto Rico.
SETI@home ha segnato una svolta decisiva nel calcolo distribuito,
aprendo la strada per le applicazioni di “Solidarietà Digitale”. Oltre allʼattrazione nei confronti dellʼargomento della ricerca extraterrestre, ciò che
ha aiutato questo grande successo informatico è stato lʼottima scelta di
usare un formato particolare per il software SETI@home, lo screensaver8 .
8 A screensaver is a type of computer program initially designed to prevent "Phosphor burn-in" on CRT and plasma computer monitors
by blanking the screen or filling it with moving images or patterns when the computer was not in use. Today, screensavers are also
used for entertainment or other several purposes.
13
Lo screensaver usato da SETI@home.
Lʼausilio di un interfaccia così user friendly e la consapevolezza che lo
screensaver si attiva soltanto quando lʼutente non usa il computer ha davvero segnato una carta vincente per il calcolo distribuito; infatti facendo sì
che gli utenti percepissero la sicurezza e la “non intrusività” dello screensaver, si sono eliminate le barriere per entrare in milioni di computer.
Il successo del progetto SETI@home ha reso il Volunteeer Computing
una nuova “Killer application”9 e la fama di questo software si è diffusa velocemente attraverso la rete, rendendo ancora più concreta lʼapplicazione
di questo nuovo metodo per vari progetti scientifici. Nel 1998 il Dr. Anderson paragonava la capacità di calcolo della rete di computer costruita intorno a SETI@home con la potenza di calcolo del più potente super computer in quegli anni, lʼIBM ASCI White, SETI@home aveva una potenza
operativa molto maggiore e un costo dellʼ1% del super computer della
IBM.
9 (commonly shortened to killer app), in the jargon of computer programmers and video gamers, has been used to refer to any computer program that is so necessary or desirable that it provides the core value of some larger technology, such as a gaming console,
software, operating system, or piece of computer hardware. In this sense, a killer app substantially increases sales of the hardware
that supports it.
14
Progetto
Anno
Organizzazione
Area
Utenti
Stato
GIMPS
1994
Messen Prime Number
mathematics
10
Attivo
distributed.net
1997
U.S. non-profit organization
cryptography
100
Attivo
SETI@home
1999
University of California, Berkeley
SETI
850
Attivo
Electric Sheep
1999
?
art
57
Attivo
Folding@home
2000
Stanford University
biology
200
Attivo
Grid.org
2002
philanthropic by United Devices
biomedicine, ot3,734,000 Chiuso
her
Climateprediction.net
2003
University of Oxford
climate change
150
Attivo
LHC@home
2004
CERN
physics
60
Attivo
World Community Grid
2004
philanthropic by IBM
Einstein@home
2005
LIGO
astrophysics
200
Attivo
Rosetta@home
2005
University of Washington
biology
100
Attivo
Stardust@home
2006
University of Stanford
Astrophysics
biomedicine, ot700,000[2]
her
Attivo
Attivo
Elenco dei vari progetti di calcolo distribuito 10.
Nel mio studio sulla Solidarietà Digitale, è Folding@home il primo progetto di calcolo distribuito a segnare un grande salto in alto, verso ideali
solidali e umanistici. Infatti questo è il primo progetto che si prefigge di
studiare gli avvolgimenti proteici, le dissociazioni e aggregazioni delle proteine e delle loro relative incidenze sulle malattie. Il progetto è stato lanciato lʼ1 ottobre del 2000, e da allora è gestito dal Pande Group, nel diparti-
10 ^ David P. Anderson (2005-05-23). "A Million Years of Computing". Retrieved on 2006-08-11.
15
mento di Chimica dell'Università di Stanford sotto la supervisione del professor Vijay S. Pande.
Il logo di Folding@home
Il progetto studia l'avvolgimento proteico per aiutare la comunità scientifica a capire meglio lo sviluppo di molte malattie.
Attualmente il progetto Folding@home sta studiando come combattere
numerose malattie, tra cui: il Morbo di Alzheimer,il Morbo di Huntington, il
Cancro, lʼOsteogenesis imperfecta, ed il Morbo di Parkinson.
Lʼimportanza delle implicazioni studiate dal team di Folding@home è
alla base della rapida espansione del progetto, che da poche migliaia di
utenti in pochi anni, raggiunge la soglia dei 200 mila utenti attivi (dove per
attivo si intende un utente che abbia eseguito un lavoro negli ultimi 50
giorni), e come se non bastasse, il gruppo Pande crea legami forti con le
maggiori potenze in rete come Google, Apple, Intel, ma la vera innovazione che il gruppo Pande ha prodotto la quale ha aperto la strada alla po-
16
tenza di calcolo fino a raggiungere il petaflop11, è stata ampliare il tipo di
client supportati dallʼapplicazione, fino ad utilizzare le GPU 12 e le Playstation 3 13, in modo da utilizzare una potenza di calcolo molto maggiore a
quella delle normali cpu. (Questo argomento verrà spiegato meglio nel paragrafo sullʼhardware).
Un grafico che riassume la potenza di calcolo raggiunta da Folding@home
Come numero di utenza Folding@home è il secondo progetto di calcolo distribuito, preceduto solo da SETI@home, ma è il primo progetto ad
essere entrato nel Guinness dei primati avendo sviluppato un petaflops di
potenza di calcolo nel 7 novembre 2007.
Dallʼavvento di Folding@home molte cose sono cambiate, i pionieri
della “Solidarietà Digitale” hanno aperto varie chance agli scienziati e allʼintera umanità, e questo è molto evidente nellʼevoluzione del lavoro compiuto dal team dellʼUniversità di Berkeley, condotto dal Dr. David Ander11 è un'abbreviazione di Floating Point Operations Per Second e indica il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU, 1000 Teraflops = 1 Petaflop.
12 GPU è lʼacronimo di Graphic Process Unit,
13 La Playstation 3 è una console prodotta da Sony con un nuovo tipo di cpu denominato Cell.
17
son, a questi studiosi si deve infatti lʼimportante realizzazione di un programma che sta alla base della maggior parte dei progetti di calcolo distribuito attuali e futuri, il BOINC (Berkeley Open Infrastructure for Network
Computing), ossiai il framework usato dal calcolo distribuito, lo standard
applicativo della Solidarietà Digitale.
BOINC è definito come un middleware rende possibile sia per gli
scienziati, sia per gli utenti finali, creare una rete di calcolo distribuito in
pochi passi, riducendo il lavoro tecnico di molto. Quasi tutti i progetti passati sono stati convertiti per questa piattaforma, e la maggior parte dei
progetti futuri utilizzeranno BOINC.
Il motivo del vasto utilizzo di BOINC è da imputare alla semplicità di utilizzo, la creazione di un legame tra diversi progetti ed un sistema complesso di feedback che verrà analizzato e descritto nel prossimo capitolo.
I progetti ideati in questi anni abbracciano svariati campi scientifici e
sociali: Africa@home è un progetto ospitato dal Cern, sviluppato dal Swiss
Tropical Institute per contribuire a cause umanitarie in Africa, tra cui
MalariaControl.net, un programma in grado di modellizzare le modalità in
cui la malaria si diffonde in Africa. LHC@home, invece, torna a riguardare
problemi prettamente scientifici, la sigla sta per “Large Hadron Collider”
ossia, lʼacceleratore di particelle che il CERN sta costruendo in svizzera
18
con la partecipazione di quasi tutti i paesi europei. per investigare le proprieta' delle particelle elementari. Questa potentissima struttra, dal diametro di 27 Km, produrra' allʼincirca 15 Petabytes14 per anno, impossibili da
trattare senza lʼimportante aiuto degli utenti che aderiranno al progetto.
Einstein@home, sposta nuovamente lʼattenzione fuori il nostro pianeta,
alla ricerca di onde gravitazionali utilizzando le teorie di Einstein. Rosetta@home gestito dallʼUniversità di Washington simula la struttura delle
proteine, per la cura di molte malattie che affliggono la vita di milioni di
persone.
Lo screensaver utilizzato dai ricercatori di Rosetta@home
Un progetto europeo che già è stato portato a termine, è il
Climateprediction.net, ideato dallʼUniversità di Oxford e sponsorizzato dalla BBC, ha portato a termine la simulazione di modelli climatici dellʼintero
globo fino allʼanno 2070.15 Questo progetto è stato molto originale, poichè
ciascun utente simulava un modello climatico e quindi si è prodotta una
maggiore concretezza nel concetto di collaborazione, poichè lʼutente ha
14 15 millioni di Gigabytes
15 Climate prediction.net (htm). tessella.com. Retrieved on 2007-05-23.
19
potuto costatare i progressi del suo operato dallʼinizio al termine della simulazione.
La visualizzazione del modello climatico in simulazione.
Una particolare nota di rilievo va al progetto World Community Grid,
ideato e sponsorizzato dalla IBM, per aver creato uno dei migliori siti di
accesso al calcolo distribuito, dove si evince chiaramente, anche attraverso la denominazione, lo scopo è quello di trovare milioni di utenti, nel sogno di una rete globale.
La World Community Grid, recentemente è stata inglobata in BOINC
ma sotto la stessa denominazione, numerosi e diversi progetti si articolano: Human Proteome Folding, Help Conquer Cancer, Fighting AIDS,
[email protected]
16 http://www.worldcommunitygrid.org/ IBM - technology solving problems
20
Logo del progetto Stardust@home
Infine, Stardut@home, nuovissimo progetto ideato dai creatori di SETI@home, ha una particolarità importantissima: necessita del lavoro di noi
esseri umani e non di computer, nella difficile ricerca della polvere stellare,
arrivata nel nostro pianeta il 15 gennaio del 2006, dopo che la NASA aveva raccolto esemplari dalla cometa “Wild 2” nel gennaio del 2004.
Questa infinitamente piccola polvere stellare non può essere trovata
dai computer, ci vuole piuttosto intuito umano, e in questo caso la rete di
computer che aderisce, funziona da super microscopio che ciascun utente
può usare nella grande sfida microscopica, che è paragonata in dimensioni più consone, a trovare 45 formiche in un campo di rugby.17
Questo ultimo esempio di cooperazione, è molto attiva,lʼutente non si
limita solo ad aprire le porte delle proprie risorse informatiche affinche
vengano utilizzate 18, ma piuttosto esegue un reale lavoro concreto e pratico che deve compiere meticolosamente, dopo aver in modo diligente, appreso online, come procedere correttamente.
17 Stardust@home website - http://stardustathome.ssl.berkeley.edu/
18 Tapping the Matrix: Revisited - Carlos Justiniano - Resources exist behind locked doors - 2005
21
22
Capitolo II
Analisi di BOINC
2.1 Piattaforma per il calcolo volontario
Il Berkeley Open Infrastructure for Network Computing (BOINC) è
un'applicazione software di calcolo distribuito creata per gestire progetti di
ricerca che richiedono una potenza di calcolo così elevata da essere impossibile raggiungere con un solo supercomputer, ma accessibile attraverso la collaborazione di migliaia di personal computer sparsi in tutto il
mondo, coordinati attraverso Internet. Viene sviluppata da un gruppo di
lavoro dell'Università di Berkeley diretto da David Anderson.
Il logo di BOINC
Dopo il successo del progetto SETI@home Classic l'Università di Berkeley ha deciso di sviluppare un sistema capace di utilizzare il calcolo distribuito per diversi progetti di ricerca. L'obiettivo del progetto BOINC è
rendere disponibile a progetti provenienti da aree diverse (come biologia
molecolare, climatologia e astrofisica) l'enorme potenza inutilizzata dei
personal computer sparsi per il mondo.
23
Il software BOINC è progettato per poter essere adattato a diversi progetti ed è distribuito con licenza GNU Lesser General Public License 19. La
maggior parte dei progetti che lo utilizzano sono senza scopo di lucro e
vengono portati avanti da volontari.
È composto da un sistema client-server che si occupa di distribuire e
processare unità di lavoro.
La parte centrale dell'applicazione è composta dal server, che può essere eseguito su una o più macchine in modo da poter gestire progetti anche molto grandi; i server BOINC usano macchine GNU/Linux con Apache, PHP e MySQL. Il server non si occupa di eseguire calcoli, bensì di
coordinare le operazioni dei client e gestire il database dei risultati.
Il server include funzioni come la ridondanza omogenea (mandare la
stessa unità di lavoro a piattaforme simili), l'anteprima dell'unità (inviare
informazioni al server prima che l'unità sia stata calcolata completamente)
e la pianificazione locale (preparare nuove unità di lavoro prima che il
computer abbia terminato quelle correnti e creare unità su richiesta).
L'applicazione client si occupa di processare le unità di lavoro. Scarica
le unità attraverso Internet e permette di dividere il tempo di calcolo tra più
di un progetto. Per questioni di sicurezza, il client non si aggiorna automaticamente; le applicazioni dei singoli progetti di ricerca, invece, vengono
scaricate e aggiornate automaticamente.
19 http://www.gnu.org/licenses/#GPL
24
2.2 Architettura di BOINC
LʼArchitettura di BOINC consiste di una rete di client e server in cui i
client eseguono le applicazioni dei progetti. Le applicazioni sono collegate
con un sistema di controllo le cui funzioni riguardano la verifica dei risultati
delle elaborazioni, la grafica delle simulazioni .
Tutte le comunicazioni di rete sono eseguite ed inizializzate dal client, il
quale comunica con un progetto nel server di BOINC tramite il protocollo
HTTP. La richiesta è un file XML che include una descrizione di tutte le risorse disponibili presso lʼhost, una lista di tutti i lavori completati ed una
richiesta per un ammontare di lavoro aggiuntivo, espresso in termini di
CPU time (tempo di elaborazione). La risposta al messaggio include una
lista di nuovi lavori e i dati dei server dove scaricarli.
Questi passaggi descritti sono completamente invisibili allʼutente, il
quale semplicemente avviando il programma BOINC, ha dinnanzi a se
unʼinterfaccia gradevole e semplificata che rende molto semplice lʼutilizzo
di BOINC.
2.2.1 L'interfaccia di BOINC
L'interfaccia del client BOINC è molto semplice, ed è rimasta praticamente invariata sin dalle primissime versioni.
E' composta da 5 schede, ciascuna riservata alla gestione di funzioni
diverse. In alto c'è un semplice menù che ci permette di regolare le impostazioni di elaborazione.
25
Lʼinterfaccia di BOINC
Menu:
• File: da qui è possibile selezionare la modalità di elaborazione, sempre attiva, come da preferenze dell'account, oppure si può sospendere.
Si può abilitare/disabilitare l'accesso di BOINC alla rete, e si può minimizzare nella taskbar il programma o terminarlo.
• Settings: da questo menù si può aprire la finestra che ci permette di
agganciarci ai progetti, e la finestra di impostazione della connessione
nel caso di server proxy.
• About: apre la finestra con le informazioni riguardo BOINC.
Schede:
• Project: in questa scheda vengono mostrati tutti i progetti ai quali
l'host è agganciato. A fianco al nome del progetto vengono mostrate le
informazioni relative all'account, ovvero il nick, il credito totale, il rac e le
risorse dedicate.
26
Cliccando con il tasto destro su un progetto appare un menù così
strutturato:
• Web site: permette di aprire direttamente l'HomePage del progetto.
• Update: con questo è possibile effettuare l'aggiornamento del progetto, ovvero contattare il server per scaricare le nuove impostazioni dell'account, riportare il lavoro effettuato e scaricarne di nuovo se necessario (procedura di Update).
• Detach: questa voce permette di togliere il progetto dall'host. Prima
di essere eseguita viene chiesta la conferma: tutti i dati relativi a quel
progetto verranno eliminati all'istante e la procedura non è reversibile.
Ovviamente questo interessa solo quell'host, gli altri host ed il vostro account non subiranno alcuna modifica. Qualora vogliate riprendere quel
progetto sull'host basterà che rifacciate l'attach al progetto e verrà creato
un nuovo host (vedi in seguito paragrafo gestione host).
• Reset project: questa voce permette eseguire un reset del progetto,
portando tutto alla situazione iniziale, come se si fosse appena fatto l'attach a quel progetto. E' meno brutale del Detach in quanto l'host rimane
comunque agganciato al progetto, ma tutti i dati relativi al progetto vengono cancellati, quindi va usata con prudenza. Anche qui viene chiesta
conferma prima di eseguire; è utile nel caso in cui le wu sono scadute o
ci siano degli errori gravi.
27
Per agganciarsi ad un progetto dal menù "Settings" selezionare "Attach
to Project". Si aprirà la finestra dove inserire l'URL e l'ID dell'account.
• Work: in questa scheda viene mostrato il "lavoro" ovvero tutte le WU
presenti in cache. Per ogni Wu è riportato il nome del progetto al quale
appartiene, l'applicazione del progetto che la elaborerà (client), il nome,
il tempo CPU impiegato per elaborarla, il progresso in percentuale dell'elaborazione, una stima del tempo di completamento, la data e l'ora di
scadenza (deadline) e lo stato (in attesa di leaborazione, in pausa, in
download, in errore, ecc). Cliccando con il tasto destro sulle WU in elaborazione, se il client di tale progetto lo permette si puù aprire il grafico
dell'elaborazione (che è bello ma rallenta l'elaborazione, per questo non
va messo come screensaver all'istallazione di BOINC).
Quando le WU vengono finite di elaborare, i file dei risultati vengono
automaticamente inviati al server, ma la WU rimane nella lista con lo stato
di "Ready to report". Significa che la WU è pronta e BOINC può comunicare al server che è stata elaborata ed i dati sono stati inviati. Per fare questo bisogna fare la procedura di upload sopra descritta, e la WU sparisce
dalla lista.
Finchè le WU non vengono riportate al server il server non sa che sono
state elaborate ed i crediti non possono essere assegnati.
• Transfer: questa scheda riporta tutti i trasferimenti dei file che avvengono con i vari server dei progetti. Durante i trasferimenti vengono ripor-
28
tati i nomi dei file, i nomi dei progetti di appartenenza, la percentuale di
avanzamento del trasferimento, e la velocità (KB/s) con cui avviene.
• Message: in questa scheda vengono mostrati tutti i meggaggi di BOINC, è come una specie di LOG delle operazioni effettuate (avvio, trasferimento file, inizio e file delle elaborazioni di WU, scambi di dati con i
server, ecc).
In questa scheda vengono riportati gli errori, ed è quindi sempre qui
che si controlla se tutto funziona correttamente. Per ogni messaggio è
specificato il progetto a cui si riferisce (se non è specificato nulla è un
messaggio di BOINC), la data e l'ora in cui è stato generato, ed il testo del
messaggio.
Disk: in questa scheda vengono riportate graficamente le informazioni
relative allo spazio su disco.
Gestione Host
Con la parola HOST si identifica un computer. Ogni volta che ci agganciamo ad un progetto di BOINC viene creato un nuovo host nell'account di
quel progetto. Ogni host è identificato da un numero (host id) e gli host
sono monitorizzabili tutti dal web. Per accedere alla lista entrare nell'account e cliccare su View computers a fianco di "Computers on this account" nel gruppo "Account statistics". Per ogni host viene riportato l'ID, il
nome (che è il nome di rete del PC), il RAC, il credito totale accumulato, il
tipo di CPU e di sistema operativo installato. Cliccando poi sull'ID di ogni
29
host è possibile visualizzare i dati specifici di ogni host quali la data di
creazione, i risultati del banchmark, la quantità di ram, il numero di CPU,
le informazioni dello spazio su disco, il numero di volte che ha contattato il
server e la data e l'ora dell'ultima volta che è avvenuto il contatto (utile per
vedere se l'host è sempre attivo), la percentuale di attività, la velocità di
trasferimento dati, ed il tempo medio di ritorno dei risultati (Average turnaround time, usato per la distribuzione ottimizzata delle WU). Alla voce Results, è possibile vedere le informazioni di un certo numero di Work Unit
scaricate dall'host. Cliccando sul numero, si accede alla lista, e per ogni
WU è possibile vedere lo stato ed i crediti assegnati (ecc).
A volte capita di dover resettare un computer e reistallare BOINC, per
cui all'attach del progetto viene creato un nuovo host identico al precedente. Se i due host sono identici nel nome, nella stringa che identifica il tipo
della CPU e del sistema operativo si possono "fondere" in uno solo. Il link
per effettuare questa procedura detta "Merge" (fusione) compare in basso
nei dati dettagliati dell'host ("merge this computer"). Cliccandoci compare
la lista dei possibili pc con cui fondere quell'host. Una volta selezionato
quello giusto basta cliccare sul pulsante "Merge this host" per portare a
termine la procedura. In questo modo, l'host creato prima (cioè quello più
vecchio) viene "inglobato" in quello più recente (cioè quello creato dopo),
ed il totale del vecchio viene sommato a quello nuovo, così come le WU
nei result vengono messe assieme. Il vecchio host scompare e non è possibile in nessun modo recuperarlo.
30
Per cancellare un host, accanto al link per fare il merge c'è il link "Delete this host". Questo link compare solamente se il pc non ha nessun result
nella lista dei result. Ogni tanto infatti viene ripulito il database dei result
togliendo quelli vecchi già assegnati, in errore o scaduti, quindi dopo un pò
di tempo ci sarà la possibilità di eliminare l'host dall'account.
2.2.2 Progetti e Volontari
Come è stato detto già nel precedente paragrafo, i progetti BOINC sono indipendenti, ed ognuno ha il proprio database contenente i lavori da
distribuire ed effettuati e le informazioni degli account dei volontari. La durata di un lavoro può variare molto tra i progetti, con un minimo di pochi
minuti ad un massimo di mesi, come nel cado di Climateprediction.net.
I volontari partecipano eseguendo il software client BOINC nel loro
computer. BOINC è un programma open source e il client è disponibile per
la maggior parte delle piattaforme.
Dopo aver eseguito il programma i volontari possono entrare a far parte di uno o più progetti, ed infine configurare varie preferenze che specificano le modalità della condivisione delle proprie risorse. Per esempio, gli
utenti possono controllare la distribuzione delle risorse tra i progetti, specificando se assegnare uguale tempo di calcolo o maggior priorità ad un
progetto in particolare.
Aderendo a più di un progetto si ottimizza il lavoro dei progetti in generale, dato che quando un progetto è in pausa per manutenzione, il client
31
continuerà a lavorare per gli altri progetti, riducendo la possibilità che un
volontario non abbia niente da elaborare.
2.2.3 Checkpointing e Work unit
2.2.4 Crediti e ridondanza
I progetti garantiscono dei crediti agli utenti per il lavoro computazionale a cui hanno contribuito. Grazie ai crediti esiste una base per differenziare e classificare gli utenti e le squadre, ed è un modo per incentivare gli
utenti a continuare i progetti e non abbandonarli. I partecipanti sono anonimi e non è possibile controllarli ed inoltre, il codice sorgente del client
BOINC è pubblico, quindi esiste una vulnerabilità del sistema, che potrebbe essere facilmente usata per alterare i risultati o per ottenere più crediti
per risultato.
Schema del processo per ottenere dei crediti
Per risolvere questo problema serio, in BOINC viene utilizzata la ridondanza di calcolo per aumentare la probabilità che solo risultati corretti
vengano accettati e che il credito garantito sia equo.
32
In pratica ogni work unit20 viene distribuita a più volontari, per diminuire
la possibilità di errori; Tuttavia questo raddoppia o addirittura triplica i tempi di completamento di un progetto, ma al momento è lʼunico modo per
ovviare a questa vulnerabilità insita nel calcolo volontario.
Un certificato che attesta il lavoro svolto per SETi@home
2.2.5 Gli scopi di BOINC
Lo scopo generale di BOINC è di far progredire la realtà del calcolo distribuito: incoraggiando la creazione di molti progetti e sempre più utenti a
partecipare ad uno o più progetti.
Altri scopi specifici possono essere individuati:
20
La work unit è la misura minima del calcolo distribuito
33
• Ridurre le barriere per lʼutilizzo delle risorse offerte dal calcolo
distribuito:
• BOINC da la possibilità ai ricercatori con delle abilità standard di
informatica, di creare un progetto ed utilizzare una vasta risorsa di
calcolo distribuito in poche settimane e richiede qualche ora per le
operazioni di manutenzione.
• Condividere le risorse con progetti autonomi:
• I progetti basati su BOINC sono autonomi, cioè non necessitano
di unʼautorizzazione né di una registrazione centralizzata. Ogni progetto opera nel suo server ed è indipendente. Gli utenti possono partecipare a vari progetti ed assegnare ad ogni progetto una “risorsa
condivisa”, determinando la percentuale delle risorse condivise tra i
progetti. Se la maggior parte di partecipanti si registra a più progetti,
lʼuso generale delle risorse utilizzate è migliorato: infatti, se un progetto è fermo per un guasto, un altro progetto beneficierà temporaneamente di questa risorsa disponibile.
• Supportare diverse applicazioni:
• Le applicazioni eseguite dentro la piattaforma BOINC sono svariatissime; infatti è garantita un meccanismo flessibile e scalabile per
distribuire i dati ed analizzarli.
• Premiare i partecipanti:
34
• I progetti devono provvedere degli incentivi per attrarre maggiormente gli utenti e soprattutto, per mantenere il loro interesse. Il primo
incentivo per molti partecipanti è rappresentato dal credit: una
misura numerica che simboleggia quanto il computer ha contribuito in
BOINC.
35
Capitolo III
Aspetti tecnici
del calcolo distribuito
3.1 Grid Computing vs Volunteer Computing
“Public-resource computing and Grid computing share the goal of better
utilizing existing computing resources. However, there are profound differences between the two paradigms, and it is unlikely that current Grid
middleware will be suitable for public-resources computing.21”
L'idea del Grid computing, di cui recentemente si sente spesso parlare
come la prossima rivoluzione dell'informatica , risale a circa la metà degli
anni Novanta. Le 'griglie di calcolo' già da allora vengono prevalentemente
utilizzate per risolvere problemi computazionali di larga scala in ambito
scientifico. Sviluppatesi originariamente in seno alla fisica delle alte energie (in inglese High Energy Physics o HEP), il loro impiego si è i esteso
alla biologia, all'astronomia e in maniera minore anche ad altri settori. I
maggiori player dell'IT in ambito commerciale hanno già da tempo cominciato ad interessarsi al fenomeno, collaborando ai principali progetti grid
world-wide con sponsorizzazioni o sviluppando propri progetti grid in vista
di un utilizzo finalizzato al mondo del commercio e dell'impresa.
21 BOINC: A System for Public-Resources Computing and Storage - David P. Anderson
36
Una grid è in grado di fornire agli utenti di un gruppo 22 senza una particolare caratterizzazione geografica la potenzialità di accedere alla capacità di calcolo e di memoria di un sistema distribuito, garantendo un accesso coordinato e controllato alle risorse condivise e offrendo all'utente la
visibilità di un unico sistema di calcolo logico cui sottomettere i propri lavori.
Attualmente, la più importante grid europea è quella del CERN di Ginevra che ora si chiama EGEE (gLite è il nome del che produce; precedentemente LCG e prima ancora DataGrid), sviluppata - tra gli altri - da un
team italo-ceco e prevalentemente presso l'INFN, l'Istituto Nazionale di
Fisica Nucleare con la collaborazione di Datamat spa.
Grid Computing indica un progetto di calcolo distribuito, la Grid eà la rete.
Le grid possono essere distinte tra progeti dedicati (come il BlueGene)
e progetti che fanno uso di risorse ampiamente disponibili. Questʼultima
categoria viene poi ulteriormente divisa in base alla affidabilità dei client.
La Desktop Grid Computing è composta da “trusted clients”, cioè unʼinfrastruttura costruita e utilizzata proprio per un uso specifico, come ad esempio le reti di dektop aziendali; i risultati dei client che formano la rete di
calcolo possono essere ritenuti validi ed in questo modo si sorpassa
lʼostacolo creato dalla ridondanza dei pacchetti. Nella Grid Computing dove gli utenti volontariamente entrano nella rete, questi client non sono
considerati “trusted”, sia a causa di probabili errori hardware, sia di even-
22 il termine scalabilità si riferisce, in termini generali, alla capacità di un sistema di "crescere" o "decrescere" (aumentare o diminuire
di scala) in funzione delle necessità e delle disponibilità
37
tuali boicottaggi. Questo problema viene risolto aumentando la ridondanza
dei dati da eseguire attraverso la rete di calcolo distribuita.
3.2 Hardware e Software per il Distributed Computing
“Greater computing power allows a closer approximation of reality.”
David P. Anderson.
Le tecnologie hardware e software, lʼottimizzazione del codice sorgente
ed una vasta interoperabilità tra diverse architetture hardware e software
sono la grande sfida tecnica che il calcolo distribuito deve vincere per avere una rapida e vasta diffusione.
Lʼidea dellʼelaborazione parallela, cioè lʼesecuzione di più tasks, con
processori collegati risale agli anni 70, da allora i super computer hanno
iniziato una corsa rapidissima a colpi di teraflops e nel mentre, le dimensioni dei circuiti sono state ridotte in un modo sorprendente. Nel campo
dei super computer lʼIBM è il leader indiscusso con il nuovissimo Blue Gene che possiede una potenza elaborativa di 479 TFLOPS 23.
Il super computer Blue Gene della IBM.
23 IBM Journal of Research and Devlopment - http://www.research.ibm.com/journal/rd49-23.html
38
Lʼostacolo esistente nella scelta di implementare un super computer è
economico, il prezzo di questa tecnologia è molto costoso e può raggiungere i 200 milioni di dollari per la più potente configurazione. Fortunatamente, mentre la tecnologia dei super computer è evoluta passando dai
30 OPS 24 nel 1942 del “Atanasoff–Berry Computer” (ABC) al Blue Gene
con i suoi 479 TFLOPS, lʼevoluzione hardware dei computer desktop, ha
seguito una crescita altrettanto veloce, un trend conosciuto con il nome di
“legge di Moore”25, la quale sostiene che la velocità dei processori viene
raddoppiata ogni 18 mesi, un ratio di crescità che per quanto riguarda le
GPU, cioè i processori grafici, è più rapido, attestandosi intorno agli 8 mesi26 .
Il paradigma dellʼelaborazione parallela ha forgiato anche lʼarchitettura
dei computer desktop e portatili, infatti Intel ed Amd 27, produttori leader
delle CPU, hanno iniziato a realizzare delle CPU “dual core” fino alle recentissime “quad core”28, (Amd le denomina x2 CPU). Queste CPU hanno
più di unʼunità di calcolo, quindi la potenza elaborativa è raddoppiata o
quadruplicata, ottenendo per lʼappunto un ambiente autentico multitasking.
24 OPS sta per operazione per virgola mobile.
25 The Technical Impact of Moore's Law. IEEE solid-state circuits society newsletter (2006).
26 The Technical Impact of Moore's Law. IEEE solid-state circuits society newsletter (2006)
27 Athlon64 X2 product web site
28 Intel already phasing out first quad-core CPU. TG Daily. Retrieved on 2007-09-07.
39
Alcuni dei modelli più recenti di cpu con multi core.
La stessa identica cosa è accaduta con la memoria RAM 29 che ha da
tempo adottato la tecnologia DDR 30 che è già arrivata alla terza generazione ed anche in questo caso il canale di dati è raddoppiato o quadruplicato.
Per quanto riguarda le GPU, ossia i processori grafici, queste hanno
una potenza di calcolo molto superiore alle CPU dei computer, sia per
lʼelaboratezza dei calcoli che la grafica tridimensionale dei moderni videogiochi richiede, sia per lʼaccesso alla memoria della scheda video a frequenze molto più alte di quelle normalmente usate dalle memorie RAM
centrali. Questa è stata una carta vincente usata dal team di Pande, gli
ideatori di Folding@home, che hanno aumentato vistosamente la loro potenza elaborativa adottando le GPU e nonostante la notevole differenza,
non si sono fermati soltanto a questa novità ma hanno senza orma di
dubbio, trovato il partner tecnologico più adatto, stringendo un accordo
con la Sony, per avere accesso alla potenza elevata della nuovissima
Playstation 3 ed automaticamente si sono assegnati il privilegio di utilizzare il nuovissimo “Cell processor”, un nuovo processore costruito da Sony
29 Random Access Memory
30 Double data rate synchronous dynamic random access memory è un tipo di memoria usata negli attuali computer, che raddoppia la
banda ti trasferimento dei dati.
40
Computer Entertainment, Toshiba ed IBM, che permette prestazioni da
100 Gigaflop a console31.
Il Cell processor utilizzato nella Playstation 3.
Il software di Folding@home dopo essere stato riscritto per Folding@home per funzionare nella Playstation 3 32 è stato scaricato da circa
600.000 utenti e tutto ciò ha permesso di raggiungere il Petaflop.
3.2.1 La Playstation 3 per raggiungere il Petaflop.
“With the help of the computing power of over half a million PlayStation 3
consoles, the distributed computing project, Folding@Home, has now
been recognized by the Guinness World Records as the most powerful
distributed network in the world. The first record was achieved on September 16, 2007, as the project surpassed one petaflops, which had
never been reached before by a distributed computing network. Additionally, the collective efforts enabled PS3 alone to reach the petaflop mark
on September 23, 2007. In comparison, the world's most powerful supercomputer IBM's BlueGene/L performs around 280.6 teraflops which
means Folding@Home's computing power is approximately four times
BlueGene/L's (although the CPU interconnect in BlueGene/L is more than
31Folding@home embraces Playstation 3 Cancer-curing 100 gigaflops per console By Dean Pullen: Thursday, 24 August 2006
32 Folding@home. Sony Computer Entertainment. Retrieved on 2007-03-18.
41
one million times faster than the mean network speed in
Folding@Home.)”33
Parallelamente, anche la piattaformas BOINC nel marzo del 2007,registrava una potenza elaborativa di circa 530.7 TFLOPS ottenuta grazie ai
1,797,000 computer in rete 34. Il più famoso progetto, SETI@home,riportava una potenza di 276.3 TFLOPS utilizzando 1,390,000 computer interconnessi35 .
La visualizzazione grafica del progetto Folding@home in esecuzione sulla Playstation 3.
Queste considerazioni importanti, sono la prova che il paradigma del
calcolo distribuito ha una potenzialità tutta da scoprire che nonostante i
grandi passi avanti effettuati negli ultimi 5 anni, tuttora viene utilizzata
marginalmente, data la promiscuità del numero di utenti e dalla diffusione
mediatica dei progetti.
33 The Potential of the Cell Processor for Scientific Computing. Computational Research
34 D.P. Anderson and G. Fedak. "The Computational and Storage Potential of Volunteer Computing", IEEE/ACM International Symposium on Cluster Computing and the Grid, Singapore, May 16-19, 2006
35 D. P. Anderson, Eric Korpela, Jeff Cobb, Bob Bancay. A general distributed computing platform for SETI. Bioastronomy 2002.
42
Il Dr. David P. Anderson, in una pubblicazione scientifica su risorse di
calcolo e di archiviazione scrive:
“The potential resource is much larger. The number of INternetconnected PCs is growing rapidly, and is projected to reach 1 bilion by
2015. Together, these PCs could provide many PetaFLOPs of computing
power. The public-resource approach applies to storage as well as computing. If 100 milion computer users each provide 10 Gigabytes of storage, the total (one Exabyte, or 1018 bytes) would exceed the capacity of
any centralized storage system” 36.
Come si evince da questo testo, la potenzialità di calcolo nel 2015 è
proiettata verso migliaia, se non milioni di PetaFLOPs, con un numero di
computer connesi in rete, che si aggirerebbe ad 1 miliardo di unità e di
conseguenza anche la capacità di archiviazione, potrebbe arrivare a dimensioni mai conosciute fino ad ora, tali da dover utilizzare lʼExabyte.
Nella frontiera software, i progetti di calcolo distribuito con a capo BOINC, sono open source e possono essere eseguiti in tutti i sistemi operativi
diffusi (Linux, Mac OSX e Windows), esiste quindi unʼinteroperabilità elevata, una realtà molto creativa per i programmatori che hanno il compito
importante di portare il codice della Solidarietà Digitale, in tutte le periferiche, computer, telefonini e tv box che la società dellʼinformazione ci ha
donato, per riuscire ad utilizzare queste singole e grandi potenze sparse
per il pianeta, interconnettendole, per il bene collettivo della scienza e
quindi dellʼumanità.
36 David P. Anderson. BOINC: A System for Public-Resource Computing and Storage. 5th IEEE/ACM International Workshop on Grid
Computing, November 8, 2004, Pittsburgh, USA, pp 1-7.
43
44
Capitolo IV
Aspetti sociali
del calcolo volontario
4.1 Riavvicinarci alla scienza.
In un era come la nostra, dominata da fanatismi e ideologie, in cui
prende sempre più campo unʼalienazione ed ostilità nei confronti della scienza, che molte volte viene travolta dal fanatismo religioso37, il calcolo volontario contribuisce in modo molto rilevante alla proliferazione del sapere
scientifico, alla ricerca scientifica ed infine, ma non meno importante,
svolge unʼimportante funzione nellʼavvicinare la scienza alla gente
comune.
Se i possessori di computer possono donare le loro risorse ad ogni tipo
di progetto, allora protranno studiare e valutare questi progetti, imparare le
loro finalità, i metodi e le probabilità di successo. Questa consapevolezza
può proiettarci verso un futuro in cui il pubblico può influenzare la ricerca
scientifica, facendo investimenti o scomesse virtuali sul rendimento di progetti scientifici.38
Sicuramente il controllo sulle risorse e la relativa disponibilità per la scienza sarà allontanato dai fondi di governo e dalle istituzioni politiche, rendendo più trasparente e democratica la ricerca scientifica. Basti pensare in
37
The God Delusion Steve Dawckins
38
R. Forsythe, T. A. Rietz, and T. W. Ross. Wishes, expectations, and actions: A survey
on price formation in election stock markets. Journal of Economic Behaviour and Organization, 39:83-110, 1999
45
merito a quanto detto alla ricerca su varie malattie che non riguardano
lʼoccidente sviluppato, ricerche che non hanno fondi, che non hanno un
appeal economico e che quindi di conseguenza non decollano.
I vari progetti a cui si può aderire utilizzando BOINC riguardano ambiti
e nicchie del sapere scientifico: avvolgimento proteico, accellerazione
delle particelle, malaria, cancro, genoma umano, etc... sono delle realtà
scientifiche molto complesse di cui normalmente si sa ben poco.
Prima di aderire ad un progetto, lʼutente medio non ha mai sentito parlare
di avvolgimento proteico, ne tanto meno di codifica del genoma umano,
ma lʼidea di fare parte di un progetto che ha un grande valore per lʼintera
umanità, molto spesso è uno stimolo a fare parte di un progetto e gradualmente anche a conoscere dei concetti scientifici, ben lontani dallʼoggetto
delle conversazioni abitudinali.
Eʼ chiaro che un ruolo molto importante è rappresentato dalla presenza
di forum e siti internet di supporto ai progetti, i quali oltre a spiegare il progetto in sé e a guidare lʼutente verso la collaborazione, forniscono varie
delucidazioni dei concetti scientifici, ed alcuni pubblicano i risultati scientifici ottenuti grazie alla collaborazione degli utenti, fornendo così un potente feedback ed anche una valorizzazione del lavoro collaborativo della
comunità di volontari.
Ovviamente il calcolo volontario ha successo solo se molte persone
partecipano e SETI@home ne ha avuto molto di successo dalla sua nascita, riuscendo ad attrarre 4.6 milioni di partecipanti di cui circa 600.000
46
rimangono attivi. La gente è venuta a conoscenza di SETI@home attraverso vari canali di informazioni: i mass media negli USA hanno parlato del
progetto ed ovviamente internet è stato il principale mezzo di diffusione,
ma nel caso di SETI@home, un gran valore aggiunto lʼha avuto lʼutilizzo
dello screensaver che oltre ad avere una funzione grafica di sintesi del lavoro svolto, ne ha avuto unʼindiretta anche più potente: una funzione promozionale. Infatti, i computer che eseguivano SETI@home in luoghi molto
frequentati, come scuole, uffici o aziende, hanno attirato lʼattenzione di altri potenziali volontari grazie allo screensaver, che incuriositi dalle immagini misteriose simulate nello schermo si sono accostare al mondo del calcolo distribuito.
Sicuramente la priorità della ricerca sul calcolo volontario deve
riguardare la soluzione di un problema che mina la continuità dei progetti:
mantenere alto lʼinteresse degli utenti per avere sempre un numero alto di
partecipanti.
4.2 Volontari oltre la CPU
4.2.1 Forum, Blog e Web site
47
4.3 Sondaggi e Statistiche
4.4 Prospettive del calcolo volontario
48
Capitolo V
Ipertesto
49
Conclusioni
50
Bibliografia
Ian Foster e Carl Kesselman (ed.), The Grid 2: Blueprint for a New Computing
Infrastructure, 2003,
Tapping the Matrix: Revisited Carlos Justiniano - ChessBrain Project
Middleware.doc [8] -Seminario "Mobility Middleware: Challenges and Solutions ...
[9] - Internet2 Middleware Initiative
Vance, Ashlee. (2003). Sun and UC Berkeley are about to BOINC.
http://www.mersenne.org/ GIMPS
http://en.wikipedia.org/wiki/George_Woltman
ClimatePrediction.net http://climateapps2.oucs.ox.ac.uk/cpdnboinc/BBC Climate
Change Experiment - http://bbc.cpdn.org/ (parte di
ClimatePrediction.net)Seasonal Attribution Project - http://attribution.cpdn.org/
(parte di ClimatePrediction.net)
Einstein@home - http://einstein.phys.uwm.edu/
HashClash - http://boinc.banaan.org/hashclash/
Human Proteome Folding Project http://www.worldcommunitygrid.org/projects_showcase/viewHpfResearch.do
LHC@home - http://lhcathome.cern.ch/
Malariacontrol.net - http://www.malariacontrol.net/
Orbit@home - http://orbit.psi.edu/
Predictor@home - http://predictor.scripps.edu/
Rosetta@home - http://boinc.bakerlab.org/rosetta/
SETI@home - http://setiathome.ssl.berkeley.edu/
SIMAP - http://boinc.bio.wzw.tum.de/boincsimap/
SZTAKI Desktop Grid - http://szdg.lpds.sztaki.hu/szdg/
World Community Grid http://www.worldcommunitygrid.org/
51
Africa@home http://africa-at-home.web.cern.ch/africa%2Dat%2Dhome/it/africa.htm
Chess960@home - http://www.chess960athome.org/alpha/
FightAIDS@Home - http://fightaidsathome.scripps.edu/
Pirates@home - http://pirates.vassar.edu/ (parte di Einstein@home)
PlanetQuest - http://www.planetquest.org/
QMC@home - http://qah.uni-muenster.de/
Astropulse http://www.setiathome.ssl.berkeley.edu/setifuture.html#astropulse
BURP - http://burp.boinc.dk/ (Pre-Alpha)
Folding@home - http://folding.stanford.edu/italian/
The Lattice Project - http://lattice.umiacs.umd.edu
David P. Anderson. BOINC: A System for Public-Resource Computing and
Storage. 5th IEEE/ACM International Workshop on Grid Computing, November 8, 2004, Pittsburgh, USA, pp 1-7.
52