Progetti di calcolo distribuito BOINC
Iscriversi ad un progetto BOINC
Progetto Seti@Home
SETI@Home su Netbook Linux
Progetto ClimatePrediction
Da oramai moltissimo tempo, la comunità scientifica si è dotata di particolari strumenti che consentono ai propri computer di svolgere calcoli computazionali alla ricerca di elaborazioni e soluzioni a determinati problemi. Con l’espansione a larga scala dei computer e di internet, si è pensato bene di coinvolgere direttamente l’utente finale in tali progetti: in tal modo, anche chi non ha alcuna conoscenza delle più svariate discipline scientifiche può fattivamente collaborare alla crescita del sapere.
Il calcolo distribuito (o anche grid computing) infatti sfrutta le risorse di calcolo e di storage dei computer collegati in rete tra di loro per risolvere problemi computazionali a larga scala. Il programma universalmente usato per collegare tali macchine, raccogliere e distribuire unità di lavoro è il BOINC, ovvero “Berkeley Open Infrastructure for Network Computing“, sviluppato da un gruppo di lavoro dell’Università di Berkeley diretto dal prof. David Anderson. L’idea nasce a metà degli anni ‘90 del secolo scorso, ma soltanto a partire dal 1999 viene reso disponibile su scala mondiale con l’ormai famosissimo progetto Seti@Home. Visti i successi di tale progetto, oggi questa piattaforma è utilizzata da una miriade di altri progetti provenienti da aree diverse, quali la biologia molecolare, l’astrofisica, la climatologia, etc.
Grazie alla possibilità di utilizzare milioni di computer, la potenza di calcolo complessiva che ogni progetto può raggiungere è decisamente superiore a quella del computer attualmente più potente oggi disponibile (che nel novembre 2006 era il BlueGene/L, in grado di sviluppare una potenza di 280 teraflops secondo il test Linpack e 367 teraflops di potenza massima teorica! Per intenderci… Ulteriori informazioni e bibliografia sui progetti BlueGene si possono leggere qui). Il BOINC infatti sfrutta l’architettura server/client di internet: una volta installato questo programma, esso si collega al grande cervellone centrale (il server) per scaricare i dati necessari al funzionamento del progetto selezionato e soprattutto le unità di calcolo (o work unit o wu); inizia a questo punto il computing, il cui tempo è in relazione alla velocità del binomio CPU/RAM del proprio pc e delle risorse che abbiamo deciso di destinare al progetto (durante l’elaborazione non è necessario restare connessi ad Internet); terminato il calcolo, c’è bisogno di ricollegarsi ad internet per uploadare i risultati e ricevere il cosiddetto “report results”. Ogni connessione ad internet non richiede che pochi minuti, dal momento che il pacchetto dati totale non supera le poche centinaia di kilobytes. Ecco un immagine esplicativa del funzionamento nel suo complesso:

Dal momento che tutto questo avviene in maniera completamente automatica, dobbiamo ricordarci soltanto di due cose:
- attivare BOINC;
- attivare la connessione ad internet quando il software lo richiede.
Tuttavia c’è bisogno di ricordare che tali progetti sfruttano il 100% della potenza consentita dalla propria configurazione di CPU: ciò si riflette da una parte sui consumi di corrente elettrica (circa il doppio rispetto alla scrittura di un semplice documento), dall’altra sulla vita del processore, che inevitabilmente sarà più breve. Si possono in ogni caso raggiungere dei compromessi nell’uso di tale applicazione: infatti, per ogni unità di lavoro si hanno a disposizione anche diverse settimane per completarne l’elaborazione, ciò che ci permette di dedicare anche soltanto un paio di ore al giorno; oppure possiamo limitare il carico di CPU destinato al processo della percentuale che riteniamo più opportuna. Se poi siamo maniaci delle classifiche e vogliamo accumulare milioni di punti…
Ultima annotazione: dal momento che la CPU viene utilizzata al 100% delle sue possibilità , se utilizziamo la configurazione “always active”, il nostro computer sarà soggetto a rallentamenti nell’utilizzo di altre applicazioni che sfruttano il processore stesso. Dobbiamo quindi ricordarci che se lanciamo un rendering oppure una elaborazione di grafica o di video, se non vogliamo aspettare il tempo in più necessario, dobbiamo mettere in pausa BOINC oppure utilizzare una configurazione che fa partire il programma soltanto quando la CPU ha uno status di “idle” perdurante per uno o più secondi: in tal modo, ogni volta che il computer verrà utilizzato per altre applicazioni, BOINC si disattiverà automaticamente in attesa di tornare attivo quando le risorse saranno nuovamente disponibili.






