Berkeley Open Infrastructure for Network Computing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Eskimbot (discussione | contributi)
m robot Aggiungo: hu
LucaLindholm (discussione | contributi)
 
(319 versioni intermedie di oltre 100 utenti non mostrate)
Riga 1:
{{Software
[[Immagine:Logo boinc.png|right|logo del progetto]]
|Nome = BOINC
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.
|DimensioneLogo = 200px
|Screenshot = Pantallazo-BOINC Manager.png
|DimensioneScreenshot = 200px
|Didascalia = BOINC Manager
|Sviluppatore = Università di Berkeley (California)
|UltimaVersione = 7.24.1 - Windows 64 bit ({{data rilascio|12|8|2023}})<ref>{{Cita web|url=https://boinc.berkeley.edu/download_all.php|titolo=Download BOINC client software|sito=boinc.berkeley.edu|accesso=2023-10-13}}</ref>
 
7.14.2 - Windows 32 bit ({{data rilascio|11|10|2018}})
Dopo il successo del progetto [[SETI@home|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'obbiettivo 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.
 
7.24.1 - MacOS 10.13+ ({{data rilascio|12|8|2023}})
 
7.4.22 - Linux ({{data rilascio|17|9|2014}})
 
7.24.1 - Android ({{data rilascio|12|8|2023}})
|DataUltimaVersione =
|SistemaOperativo = linux
|SistemaOperativo2 = windows
|SistemaOperativo3 = macosx
|SistemaOperativoAltri = [[Android]]
|Genere = calcolo distribuito
|Licenza = [[GNU Lesser General Public License|LGPL]]
|Lingua =
|SoftwareLibero = sì
|SitoWeb =
}}
Il '''Berkeley Open Infrastructure for Network Computing '''('''BOINC''')''' '''è un [[software libero]] per il [[calcolo distribuito]] volontario.
 
BOINC è stato sviluppato da un team presso lo ''Space Sciences Laboratory'' della [[University of California, Berkeley]] 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 [[MIPS (unità di misura)|potenza di calcolo]] dei [[personal computer]] sparsi per il mondo e collegati via internet.
 
Considerato come un “quasi-[[supercomputer]]”, ad ottobre 2023 la rete BOINC conta oltre 4 milioni di utenti registrati nel mondo<ref>{{Cita web|url=https://www.boincstats.com/stats/-5/user/list/|titolo=BOINC stats - User stats|sito=boincstats.com|lingua=en}}</ref><ref>{{Cita web|url=https://www.boincstats.com/stats/-1/project/detail/user|titolo=BOINC combined - Detailed stats {{!}} BOINCstats/BAM!|sito=www.boincstats.com|accesso=2023-10-13}}</ref>, circa 172.000 host (computer attivi)<ref>{{Cita web|url=https://www.boincstats.com/stats/-1/project/detail/|titolo=BOINC combined - Detailed stats {{!}} BOINCstats/BAM!|sito=www.boincstats.com|lingua=en|accesso=2023-10-13}}</ref> e oltre 40.000 utenti attivi ogni mese<ref>{{Cita web|url=https://boinc.netsoft-online.com/e107_plugins/boinc/bp.php?project=1|titolo=BOINC {{!}} BOINC Combined Statistics|sito=boinc.netsoft-online.com|lingua=en|accesso=2023-10-13}}</ref>.
 
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]].<ref name="licenza">{{Cita web| titolo = BOINC is now distributed under the Lesser GPL| url = https://boinc.berkeley.edu/legal.html| editore = BOINC, [[University of California, Berkeley]]| data = 15 gennaio 2005| accesso = 23 luglio 2015| urlarchivio = https://web.archive.org/web/20160304185434/https://boinc.berkeley.edu/legal.html| dataarchivio = 4 marzo 2016| urlmorto = sì}}</ref>
 
== 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: il framework venne originariamente sviluppato per sostenere il progetto [[SETI@home]] che, fino ad allora, aveva usato una piattaforma dedicata. Attualmente lo sviluppo è comunitario e tutti possono contribuire. È finanziato dalla [[National Science Foundation]] attraverso i finanziamenti SCI/0221529,SCI/0438443 e SCI/0721124.
 
Alla stregua di una piattaforma di “quasi-[[supercomputer]]”, la rete BOINC elabora una media di 28.941 [[FLOPS|PetaFLOPS]] (alla data del 20 luglio 2020)<ref>https://boinc.berkeley.edu/</ref>, 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.
 
BOINC è un [[software]] che può sfruttare le [[CPU]] e le [[Graphics Processing Unit|GPU]] di ogni [[computer]], quando queste non vengono utilizzate, per effettuare calcoli scientifici&nbsp;– in sintesi, quando una persona non usa il proprio computer, allora lo usa BOINC.
 
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 [[Compilatore|compilati]] per poter sfruttare le potenzialità delle piattaforme.
 
* '''CPU''': Il processore è il punto di partenza di qualsiasi progetto Boinc, in quanto supporta i calcoli e le simulazioni necessari. Per quanto riguarda le CPU, molti progetti sono in grado di utilizzare le estensioni [[Streaming SIMD Extensions|SSEx]], [[Advanced Vector Extension|Avx]], ecc, che possono dare ottimi risultati in termini di accelerazione del calcolo.
 
* '''GPU''': 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 aprile 2012, BOINC aggiunse anche la compatibilità con le GPU di [[AMD|ATI/AMD]], attraverso il linguaggio [[OpenCL|OpenCl]]. Queste applicazioni possono avere velocità di esecuzione dalle 3 alle 15 volte superiori rispetto a quelle basate su versioni corrispettive per CPU.
 
*'''ARM''': dal 2013, la piattaforma Boinc è disponibile anche sui device ARM (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 Pi|Raspberry]], Parallela, Odroid e altre.
 
==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).
Il software BOINC è progettato per poter essere adattato a diversi progetti ed è distribuito con licenza [[GNU Lesser General Public License]]. La maggior parte dei progetti che lo utilizzano sono senza scopo di lucro e vengono portati avanti da [[volontariato|volontari]].
 
=== Server ===
[[File:Setiathomeversion4point45.png|thumb|right|Immagine del progetto Seti@home]]
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|Lamp]], su cui è possibile installare, attraverso [[Git (software)|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.<ref>https://boinc.berkeley.edu/trac/wiki/VmServer</ref>
 
=== 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 [[time sharing|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 [[Remote Procedure Call|chiamate di procedure remote]], [[Command line interface|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 [[calcolo distribuito|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 ===
È composto da un sistema [[client]]-[[server]] che si occupa di distribuire e processare unità di lavoro.
L'''account manager'' è un applicativo che serve per gestire diversi account locali su vari computer fisici. Grazie ad essi, è possibile ricondurre tutta l'elaborazione fatta da un singolo "utente" (o anche organizzazione) ad esso, anche dal punto di vista statistico. L'idea dell'account manager è stato pensata e sviluppata congiuntamente da GridRepublic e BOINC. Due account manager sono:
* ''BAM!'' ("BOINC Account manager")<ref>{{Cita web|url=https://www.boincstats.com/bam/|titolo=BAM! - Home|lingua=en}}</ref><ref>{{Cita web|url=https://boinc.berkeley.edu/wiki/BOINC_Account_Manager|titolo=BOINC Account Manager - Wiki|lingua=en}}</ref> (Il primo Account Manager disponibile al pubblico, dal 2006)
* ''GridRepublic''<ref>{{Cita web|url=https://www.gridrepublic.org/|titolo=Grid Republic - Home|lingua=en}}</ref> (Segue l'idea di essere semplice e “pulito” quando si tratta di gestire gli account)
* ''Charity Engine''<ref>{{Cita web|url=https://www.charityengine.com/|titolo=charityengine - Home|lingua=en}}</ref> (Account manager che invoglia gli utenti a partecipare tramite donazioni e lotterie di carità)
* ''Science United''<ref>{{Cita web|url=https://scienceunited.org/|titolo=Science United - Home}}</ref> (Account manager che aiuta a indirizzare il carico di elaborazione verso progetti specifiche aree scientifiche, tipo quella della "medicina" o della "fisica")
* ''Dazzler''<ref>{{Cita web|url=https://github.com/Kodomo/Dazzler|titolo=Kodomo/Dazzler|sito=GitHub|lingua=en}}</ref>
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.<ref>https://boincstats.com/it/bam/</ref>
 
=== Sfide e challenge internazionali ===
===Server===
Uno degli aspetti fondamentali della piattaforma Boinc è la partecipazione dei volontari, non solo per quanto riguarda la mera potenza di calcolo "donata", ma anche per quanto riguarda una vera ''partecipazione attiva'' a tutti gli aspetti di un progetto (forum di discussione, debug degli applicativi, segnalazione dei problemi, ecc). D'altro canto i volontari, nel tempo, si sono aggregati in gruppi, all'interno dei quali viene, per esempio, fornito supporto ai nuovi arrivati, vengono fatte traduzioni dei progetti, ecc. Questi gruppi, inoltre, sono spesso coinvolti in pacifiche "sfide", sia a livello nazionale che internazionale, in base ai punteggi accumulati dai membri in un determinato periodo di tempo. Talvolta questi challenge sono organizzati dagli stessi amministratori di un progetto, che vogliono mettere alla prova la loro infrastruttura informatica, in una sorta di [[test da sforzo]].
[[Image:Setiathomeversion4point45.png|thumb|right|Immagine del progetto Seti@home]]
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 HTTP Server|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.
 
== Progetti che utilizzano la piattaforma BOINC ==
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).
{{vedi anche|Lista dei progetti di calcolo distribuito}}
[[File:BOINC logo July 2007.svg|thumb|right|Il nuovo logo del progetto BOINC]]
 
===Client Attivi ===
* [[ClimatePrediction.net]] - https://web.archive.org/web/20051125010853/http://climateapps2.oucs.ox.ac.uk/cpdnboinc/
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.
** [[BBC Climate Change Experiment]] - https://web.archive.org/web/20110224031239/http://bbc.cpdn.org/ (terminato, sottoprogetto di ClimatePrediction.net)
** [[Seasonal Attribution Project]] - https://web.archive.org/web/20110220170120/http://attribution.cpdn.org/ (terminato, sottoprogetto di ClimatePrediction.net)
* [[distributed.net|DNETC@HOME]] - https://web.archive.org/web/20100922061905/http://dnetc.net/
* [[Einstein@home]] - http://einstein.phys.uwm.edu/
* [[GPUGrid]] - https://www.gpugrid.net/ (in grado di sfruttare l'elaborazione tramite GPU)
* I [[Ibercivis|bercivis]] - http://www.ibercivis.es/
* [[LHC@home]] - http://lhcathome.cern.ch/
* [[Malariacontrol.net]] - https://web.archive.org/web/20060712172450/http://www.malariacontrol.net/
* [[Rosetta@home]] - https://boinc.bakerlab.org/rosetta/
* [[SZTAKI Desktop Grid]] - https://web.archive.org/web/20160814071936/http://szdg.lpds.sztaki.hu/szdg/
* [[World Community Grid]] - https://www.worldcommunitygrid.org/
* [[PrimeGrid]] - https://www.primegrid.com/
* [[Tn-grid]] - https://gene.disi.unitn.it/test/
* [[MilkyWay@home]] - https://milkyway.cs.rpi.edu/milkyway/
* Universe@home
* Drugdiscovery@home
* Citizen Science Grid
 
=== Progetti beta (in cui vengono testati gli applicativi) ===
==Voci correlate==
* Albert@Home (beta di Einstein@Home) - https://albertathome.org/it-it/home
*[[BOINC Credit System]]
* Ralph@Home (beta di Rosetta@Home) - https://ralph.bakerlab.org/
* SetiBeta (beta di Seti@Home) - https://setiweb.ssl.berkeley.edu/beta/ {{Webarchive|url=https://web.archive.org/web/20170921193903/https://setiweb.ssl.berkeley.edu/beta/ |date=21 settembre 2017 }}
 
=== Chiusi ===
==Progetti che utilizzano BOINC==
* [[Artificial Intelligence System]]
* [[Orbit@home]] - http://orbit.psi.edu/ {{Webarchive|url=https://web.archive.org/web/20060811123652/http://orbit.psi.edu/ |data=11 agosto 2006 }}
*[[SETI@home]] - http://setiathome.ssl.berkeley.edu/ il 3 marzo 2020
 
===Attivi= Note ==
<references/>
[[Image:Einsteinhome.png|thumb|right|Immagine del progetto Einstein@home]]
*[[SETI@home]] - http://setiathome.ssl.berkeley.edu/
*[[ClimatePrediction.net]] - http://climateapps2.oucs.ox.ac.uk/cpdnboinc/
*[[Predictor@home]] - http://predictor.scripps.edu/
*[[Einstein@Home]] - http://einstein.phys.uwm.edu/
*[[LHC@home]] - http://lhcathome.cern.ch/
*[[Folding@home]] - http://fah-boinc.stanford.edu/
*[[Rosetta@home]] - http://boinc.bakerlab.org/rosetta/
 
== Bibliografia ==
===In fase di sviluppo===
* Vance, Ashlee. (2003). ''Sun and UC Berkeley are about to BOINC''. [https://www.theregister.co.uk/content/61/34570.html]
*[[Pirates@Home]] - http://pirates.vassar.edu/ (parte di Einstein@home
*[[BURP]] - http://burp.boinc.dk/ (Pre-Alpha)
 
== Voci correlate ==
===In fase di progettazione===
* [[Calcolo distribuito]]
*[[Astropulse]] - http://www.setiathome.ssl.berkeley.edu/setifuture.html#astropulse
* [[Rete di calcolatori]]
*[[The Lattice Project]] - http://lattice.umiacs.umd.edu/boinc/
*[[Progetti di calcolo distribuito]]
*[[PlanetQuest]] - http://www.planetquest.org/
*[[World Community Grid]] - http://www.worldcommunitygrid.org/
 
== Altri progetti ==
==Bibliografia==
{{interprogetto}}
*Vance, Ashlee. (2003). ''Sun and UC Berkeley are about to BOINC''. [http://www.theregister.co.uk/content/61/34570.html]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{commons|Berkeley Open Infrastructure for Network Computing}}
* [https://web.archive.org/web/20070207074755/http://it.boincstats.com/ BoincStats], statistiche dei progetti BOINC
* {{en}} [http://boinc.berkeley.edu/ Sito ufficiale del Berkeley Open Infrastructure for Network Computing]
* {{en}} [http://www.boincstats.com/ Statistiche degli utenti che partecipano ai progetti promossi attraverso BOINC]
* {{en}} [http://boinc-doc.net/ Guide e manuali sul BOINC]
 
{{Controllo di autorità}}
[[Categoria:Software libero]]
{{Portale|Software libero}}
[[Categoria:Calcolo distribuito]]
 
[[Categoria:BOINC| ]]
[[cs:Berkeley Open Infrastructure for Network Computing]]
[[Categoria:Progetti di ricerca]]
[[da:Berkeley Open Infrastructure for Network Computing]]
[[de:Berkeley Open Infrastructure for Network Computing]]
[[en:Berkeley Open Infrastructure for Network Computing]]
[[fi:BOINC]]
[[fr:Berkeley Open infrastructure for Network Computing]]
[[hu:BOINC - Berkeley Open Infrastructure for Network Computing]]
[[ja:Berkeley Open Infrastructure for Network Computing]]
[[nl:Berkeley Open Infrastructure for Network Computing]]
[[pl:BOINC]]
[[pt:BOINC]]
[[ru:BOINC]]
[[sk:BOINC]]
[[sv:Berkeley Open Infrastructure for Network Computing]]
[[zh:BOINC]]