giovedì 23 luglio 2009

BOINC: il tuo pc al servizio della scienza


I progressi degli ultimi anni nella ricerca scientifica sono in gran parte dovuti alla possibilità di applicare metodologie informatiche alla classica ricerca di laboratorio: affiancare cioè, nel caso ad esempio di ricerca medica, il lavoro svolto con il microscopio all’analisi automatica effettuata con software specifici sui personal computer.
Gli enti di ricerca sono dotati di centri di calcolo più o meno potenti, in base alle loro possibilità economiche, che vengono utilizzati, quindi, come indispensabile supporto all’ attività umana. Chiamati comunemente “supercomputer” essi sono dei veri mostri di potenza intesa sia come capacità di calcolo (espressa in flops) , sia come consumi di risorse, energetiche e pecuniarie.
Il costo di un super computer solitamente cresce all’aumentare della sua potenza di calcolo e giusto per avere un’idea, il più potente attualmente in circolazione, l’IBM Roadrunner con una potenza di calcolo di 1,1 Petaflops ed un consumo di energia di 2483 Kw, in dotazione ai Los Alamos Lab del New Mexico, vale circa 133 milioni di dollari.
Una cifra ragguardevole che, intuitivamente, non può essere sostenuta da tutti i centri di ricerca dislocati nel mondo.
Per ovviare alla mancanza di fondi, l’informatica offre una soluzione basata sulla cooperazione tra i singoli comuni pc al fine di creare un supercomputer eterogeneo e delocalizzato. Il concetto alla base è molto semplice: così come un super computer è costituito da migliaia di core installati in un unico centro, questa alternativa
raccoglie sì migliaia di core, ma appartenenti ai singoli individui, uniti virtualmente in una piattaforma software che ne gestisce il lavoro.
In gergo si parla di “calcolo distribuito” e la piattaforma più nota che si occupa appunto di distribuire il lavoro ed accentrare i risultati si chiama BOINC (Berkeley Open Infrastructure for Network Computing), sviluppata dall’omonima Berkeley University of California con lo scopo di creare un layer software intermedio che sostenga diversi progetti, ne coadiuvi il lavoro, ne tracci le statistiche e ne promuova l’utilizzo; il tutto, ovviamente, senza scopo di lucro e senza alcuna remunerazione per i partecipanti.
Attualmente la potenza di calcolo di BOINC è di circa 1 petaflops divisa tra oltre 1,5 milioni di partecipanti.
I progetti racchiusi in questa piattaforma sono molteplici e raccolgono diversi ambiti della ricerca scientifica, partendo dal famoso Rosetta@home, che si occupa di trovare cure a malattie quali i tumori mediante lo studio della struttura e delle interazioni fra le proteine, passando per l’altrettanto famoso SETI@Home, che analizza i dati ricevuti dai radiotelescopi in cerca di fonti di vita nell’universo, arrivando fino al PrimeGrid, legato allo studio dei numeri primi. (elenco completo: http://boinc.berkeley.edu/projects.php)
Vediamo ora nel dettaglio come è strutturata la piattaforma.
Ogni progetto divide il proprio lavoro in piccoli task, o work-unit, piccoli spezzoni di dati univoci contrassegnati da una precisa data di scadenza entro cui devono essere elaborati. Ogni task viene ospitato sul server di riferimento del progetto pronto per essere scaricato ed elaborato dei vari partecipanti.
Dal punto di vista dell’utente, esso non deve far altro che scaricare l’applicativo BOINC, scegliere uno o più progetti da sostenere, collegarsi ad essi mediante l’apposita procedura guidata e lasciare che il suo computer faccia il resto. Sarà BOINC stesso, in base alle impostazioni che abbiamo scelto, che si occuperà di far eseguire il lavoro al nostro computer, riconsegnare i risultati al termine, scaricare nuovi task e gestire la nostra CPU. Il tutto è ottimizzato per non essere di intralcio alle normali attività, utilizzando solo la capacità computazionale non sfruttata dai programmi in utilizzo. Per fare un esempio pratico un pc di ufficio usato per controllare la posta e scrivere documenti si stima che usi solo uno scarso 10% della CPU, lasciando il resto della potenza del tutto inutilizzata. BOINC va a lavorare con tutto ciò che è inattivo, spremendo al massimo le nostre risorse. Se però le nostre attività hanno un picco di necessità, automaticamente BOINC vedrà ridotte le sue potenzialità di calcolo grazie ad un meccanismo basato su priorità. (BOINC ha un livello di priorità molto basso, in modo da essere eseguito solo se il processore realmente “ha ancora margine di elaborazione”).
All’interno della piattaforma ogni utente è identificato univocamente e le sue attività di elaborazione vengono costantemente tracciate in modo da mantenere attiva una sorta di classifica mondiale, con un apposito ranking basato sui crediti accumulati.
Il tutto esclusivamente per condire con un po’ di spirito agonistico questa cooperazione.
Il sito di riferimento per l’Italia è la comunità di Boinc Italy, costituita appunto per raccogliere in un unico grande gruppo tricolore i volontari della nostra penisola ed è attualmente, 26ima a livello mondiale con il miglior utente piazzato in 120° posizione.
Per approfondire meglio il discorso ed addentrarsi nei meccanismi del progetto eccovi 2 link di riferimento:
Berkeley: http://boinc.berkeley.edu/
Sito di supporto italiano: http://www.boincitaly.org

Nessun commento:

Posta un commento