Berkeley Open Infrastructure for Network Computing
Il Berkeley Open Infrastructure for Network Computing (BOINC) è un software libero per il calcolo distribuito volontario.
BOINC software | |
---|---|
![]() | |
![]() | |
Genere | Calcolo distribuito |
Sviluppatore | David P. Anderson, Rom Walton e Università della California, Berkeley |
Data prima versione | 10 aprile 2002 |
Ultima versione | 7.8.2 - Windows (28 agosto 2017 7.8.2 - Mac OS X 10.6+ (28 agosto 2017 )7.2.42 - Linux (28 febbraio 2014 )7.4.53 - Android (3 luglio 2016 ) | )
Sistema operativo | Linux Microsoft Windows macOS Android |
Linguaggio | C++ |
Toolkit | wxWidgets |
Licenza | LGPL (licenza libera) |
Sito web | boinc.berkeley.edu |
È stato sviluppato in origine per sostenere il progetto SETI@home, prima di diventare utile come framework per altre applicazioni di calcolo distribuito in svariate aree scientifiche, come la matematica, la medicina, la genetica, la chimica, la biologia molecolare, l'astrofisica e la climatologia. Lo scopo che si prefigge BOINC è quello di rendere disponibile ai ricercatori l'enorme potenza di calcolo dei personal computer sparsi per il mondo e collegati via internet.
Esistono versioni del software compatibili con diversi sistemi operativi, come Microsoft Windows e sistemi Unix-like, tra cui Linux, macOS, FreeBSD ed Android. BOINC è un software libero distribuito nei termini della licenza GNU Lesser General Public License.[1]
Storia
Il progetto BOINC è iniziato nel febbraio 2002 e la prima versione è stata distribuita il 10 aprile 2002. Il primo progetto BOINC-based è stato Predictor@home, partito il 9 giugno 2004. BOINC è stato sviluppato da un team presso lo Space Sciences Laboratory della University of California, Berkeley diretto da David Anderson, il quale dirige anche SETI@home: infatti venne originariamente sviluppato per sostenere il progetto SETI@home. È finanziato dalla National Science Foundation attraverso i finanziamenti SCI/0221529,SCI/0438443 e SCI/0721124.
Alla stregua di una piattaforma di “quasi-supercomputer”, BOINC conta circa 266,566 volontari, 762,811 computer attivi (hosts) intorno al mondo che elaborano una media di 18.283 PetaFLOPS (alla data del 12 febbraio 2017)[2], rendendola la piattaforma di volunteer computing multidisciplinare più utilizzata al mondo.
Progetto e compatibilità hardware
BOINC è progettato per essere una struttura libera per chiunque voglia iniziare un progetto di calcolo volontario. La maggior parte dei progetti BOINC sono nonprofit e dipendono per la maggior parte, se non completamente, da volontari.
In sostanza BOINC è un software che può sfruttare le CPU e GPU dei computer, quando queste non vengono utilizzate, per effettuare calcoli scientifici – in sintesi, quando una persona non usa il proprio computer, allora lo usa BOINC. Alla fine del 2008, il sito ufficiale di BOINC annunciò che NVIDIA aveva sviluppato un linguaggio di programmazione chiamato CUDA che utilizzava le GPU per calcoli scientifici. Con l'aiuto di NVIDIA, alcuni dei progetti basati su BOINC (i.e., SETI@home, MilkyWay@home) hanno applicazioni che girano su GPU. All'inizio di ottobre, BOINC aggiunse anche la compatibilità con le GPU di ATI/AMD, attraverso il linguaggio OpenCl. Queste applicazioni possono hanno velocità di esecuzione dalle 3 alle 15 volte superiori rispetto a quelle basate su versioni corrispettive per CPU. Per quanto riguarda le CPU, BOINC, se l'applicativo è correttamente progettato, è in grado di dare accesso alle estensioni SSEx, Avx, ecc, che possono dare ottimi risultati in termini di accelerazione del calcolo.
Dal 2013, la piattaforma Boinc è disponibile anche sui device Android (smartphone, tablet, ecc) e molti progetti utilizzano questa possibilità, grazie all'aumento considerevole sia del numero sia della potenza di calcolo di questi strumenti. Dal 2015, invece, sono disponibili compilazioni per piattaforme single-board come Raspberry, Parallela, Odroid e altre.
BOINC, in tal senso, è semi-"agnostico" per quanto riguarda l'hardware su cui gireranno i progetti, limitandosi ad "esporlo" agli applicativi i quali dovranno essere loro adeguatamente compilati per poter sfruttare le potenzialità delle piattaforme.
Struttura
BOINC è formato da una parte server e una parte client che comunicano tra loro per distribuire, elaborare e recuperare i risultati delle WU (Working Units).
Server
La parte centrale dell'applicazione è composta dalla parte "server", i cui vari compiti possono essere eseguiti su una o più macchine in modo da poter gestire progetti anche molto grandi. Il server non si occupa di eseguire i calcoli, bensì di coordinare le operazioni dei client e gestire il database dei risultati. Il server si occupa di suddividere il lavoro da svolgere nelle tante sotto-unità, che verranno poi inviate ai vari computer dei volontari agganciati al progetto. Il server, inoltre, 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).
Un server BOINC è un tipico server Lamp, su cui è possibile installare, attraverso Git, le componenti necessarie per creare l'infrastruttura: gli amministratori del progetto hanno anche provveduto a creare una macchina virtuale già preconfigurata e pronta a far partire un progetto di calcolo distribuito.[3]
Client
L'applicazione client si occupa di processare le unità di lavoro, scaricando i dati e gli applicativi dei vari progetti tramite un collegamento ad Internet. Per questioni di sicurezza, il client non si aggiorna automaticamente; le applicazioni dei singoli progetti di ricerca, invece, vengono scaricate e aggiornate automaticamente. Il client dispone di varie possibilità di configurazione per permettere un utilizzo conforme alle volontà dell'utente in termini di tempo e risorse messe a disposizione. Consente, inoltre, la divisione del tempo di calcolo su più di un progetto. Dal 2013 è possibile scaricare il client con già incluso il pacchetto VirtualBox, dal momento che alcuni progetti fanno uso di macchine virtuali per poter gestire in modo adeguato i checkpoint (salvataggio automatico del lavoro svolto), o per fornire alle "working units" l'ambiente software standardizzato di cui hanno bisogno. Per migliorare ancora la standardizzazione necessaria all'esecuzione di alcuni progetti, dal 2016 Boinc è compatibile con Docker.
Wrapper
Il team di sviluppo di BOINC ha creato un layer intermedio opzionale (wrapper) di comunicazione tra l'applicativo da eseguire e il client BOINC, così da permettere il funzionamento di software preesistente senza la necessità di riscrivere il codice per adattarlo all'infrastruttura BOINC. Le prestazioni degli applicativi che utilizzano il wrapper sono, ovviamente, leggermente inferiori a quelli che sono nativamente compilati per girare all'interno di BOINC, ma hanno il vantaggio di funzionare immediatamente senza grossi ritocchi al software stesso.
Interfaccia utente
BOINC può essere controllato da remoto tramite chiamate di procedure remote, riga di comando, e BOINC Account Manager. Il BOINC Manager dispone al momento di due GUI: Avanzata e Semplificata. L'opzione Grid è stata rimossa già dalla versione 6.6.x poiché ridondante. L'aspetto della GUI semplificata è personalizzabile dall'utente, nel senso che questi può creare i propri modelli grafici.
Crediti
Il calcolo distribuito volontario, ovviamente, non ha un compenso monetario in cambio dell'uso dei propri sistemi informatici (a differenza di progetti come Bitcoin), ma assegna un punteggio ad ogni unità di lavoro elaborata, in maniera tale da invogliare a partecipare. Il client originale di SETI era un software non-BOINC esclusivo per SETI@home. Come primo dei progetti di grid computing volontari, non era stato progettato con un alto livello di sicurezza. Alcuni partecipanti al progetto cercarono di manipolare i dati per ottenere "crediti", mentre altri ancora inviarono lavori completamente falsi (cheating); BOINC è stato progettato, in parte, per combattere queste falle nella sicurezza.
Il sistema dei crediti
. Il sistema dei crediti di BOINC è progettato per evitare trucchi, prevedendo la convalida dei risultati prima di concedere i crediti.
- Un sistema di gestione dei Crediti aiuta a far sì che gli utenti restituiscano risultati corretti sia scientificamente che statisticamente.
- Il calcolo distribuito on-line è uno sforzo per lo più volontario. Per questo, i progetti dipendono da un mix variabile e complicato di nuovi utenti, vecchi utenti, e utenti ritirati.
- Non c'è un motivo singolo e preciso per cui qualcuno decide di donare parte delle proprie risorse di calcolo ad un determinato progetto.
Account manager
L'idea dell'account manager è stato pensata e sviluppata congiuntamente da GridRepublic e BOINC. Due account manager sono:
- BOINC Account Manager (Il primo Account Manager disponibile al pubblico)
- GridRepublic (Segue l'idea di essere semplice e “pulito” quando si tratta di gestire gli account)
Gli account manager sono il punto d'unione di tutti i progetti BOINC. È stato creato un sito dove ognuno può trovare e gestire il progetto con un unico log-in e password. [4]
Sfide e challenge internazionali
Progetti che utilizzano la piattaforma BOINC
Attivi
- ClimatePrediction.net - http://climateapps2.oucs.ox.ac.uk/cpdnboinc/
- BBC Climate Change Experiment - http://bbc.cpdn.org/ (terminato, sottoprogetto di ClimatePrediction.net)
- Seasonal Attribution Project - http://attribution.cpdn.org/ (terminato, sottoprogetto di ClimatePrediction.net)
- DNETC@HOME - http://dnetc.net/
- Einstein@home - http://einstein.phys.uwm.edu/
- GPUGrid - http://www.gpugrid.net/ (in grado di sfruttare l'elaborazione tramite GPU)
- Ibercivis - http://www.ibercivis.es/
- LHC@home - http://lhcathome.cern.ch/
- Malariacontrol.net - https://www.webcitation.org/60GuurRRT?url=http://www.malariacontrol.net/
- Orbit@home - http://orbit.psi.edu/
- Rosetta@home - http://boinc.bakerlab.org/rosetta/
- SETI@home - http://setiathome.ssl.berkeley.edu/
- SZTAKI Desktop Grid - http://szdg.lpds.sztaki.hu/szdg/
- World Community Grid - http://www.worldcommunitygrid.org/
- PrimeGrid - http://www.primegrid.com/
- Tn-Grid - http://gene.disi.unitn.it/test/
- Milkyway@home
- Universe@home
- Drugdiscovery@home
In fase di test
- 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/
In fase di progettazione
- BURP - http://burp.boinc.dk/ (Pre-Alpha)
- The Lattice Project - http://lattice.umiacs.umd.edu/
- Renderfarm.fi - www.renderfarm.fi (Alpha)
Chiusi
Note
- ^ BOINC is now distributed under the Lesser GPL, su boinc.berkeley.edu, BOINC, University of California, Berkeley, 15 gennaio 2005.
- ^ https://boinc.berkeley.edu/
- ^ https://boinc.berkeley.edu/trac/wiki/VmServer
- ^ https://boincstats.com/it/bam/
Bibliografia
- Vance, Ashlee. (2003). Sun and UC Berkeley are about to BOINC. [1]
Voci correlate
Altri progetti
- Wikimedia Commons contiene immagini o altri file su Berkeley Open Infrastructure for Network Computing
Collegamenti esterni
- (EN) Sito ufficiale, su boinc.berkeley.edu.
- BoincStats, statistiche dei progetti BOINC
Controllo di autorità | GND (DE) 1025312678 |
---|