# Volunteer computing

Il Volunteer computing è un tipo di calcolo distribuito in cui i proprietari di computer possono donare le loro risorse di calcolo (potenza di elaborazione, archiviazione e connessione Internet), relativamente ai tempi di inattività di tali risorse, a uno o più progetti di ricerca. Le apparecchiature messe a disposizione, desktop, computer portatili, tablet e telefoni cellulari, opportunamente collegati tra loro, finiscono così di costituire l'equivalente di un unico, enorme supercomputer virtuale in modo che calcoli che avrebbero richiesto decine di migliaia di anni di elaborazione su una singola macchina possono essere processati in pochi mesi. Il volunteer computing si basa su due pilastri: il primo è quello computazionale, il secondo, altrettanto importante, è quello partecipativo. Da un punto di vista operativo nel volunteer computing un problema complesso è suddiviso in numerosi task che sono risolti da uno o più computer alla volta.

## Storia

Il primo progetto ascrivibile al volunteer computing, termine coniato da Luis F. G. Sarmenta nella descrizione del suo progetto Bayanihan, è stato il Great Internet Mersenne Prime Search avviato nel gennaio 1996. Nel 1999, furono lanciati i progetti SETI@home e Folding@home, che a seguito della relativa copertura mediatica attirarono e continuano ad attirare centinaia di migliaia di volontari. Tra il 1998 e il 2002, furono anche fondate diverse società tra le quali United Devices, con modelli di business che coinvolgevano il volunteer computing. Nel 2002, fu lanciato il progetto BOINC (Berkeley Open Infrastructure for Network Computing) presso lo Space Sciences Laboratory dell'Università della California, Berkeley su finanziamenti della National Science Foundation con lo scopo di fornire per il volunteer computing un completo sistema middleware, comprendente un client, un client GUI , un sistema di runtime, software per i server e software di implementazione del sito web del progetto. Il primo progetto basato su BOINC, lanciato nel 2004 dallo Scripps Research Institute, fu Predictor@home seguito successivamente da SETI@home e ClimatePrediction.net. Numerosi nuovi progetti basati su BOINC sono stati creati nel corso degli anni seguenti, tra cui Rosetta@home, Einstein@home, e AQUA@home. Nel corso del 2007 anche il progetto World Community Grid della IBM ha iniziato ad utilizzare BOINC abbandonando la piattaforma United Devices.

## Inconvenienti per i partecipanti

* Aumento del consumo energetico: derivato dal fatto che una CPU utilizza generalmente più energia quando è attiva rispetto a quando è inattiva. Anche il desiderio di partecipare da parte del volontario, che può sospendere le funzionalità di risparmio energetico o lasciando il computer acceso anche la notte, porta ad un complessivo maggior dispendio energetico. Inoltre, se il computer non può raffreddarsi adeguatamente, il carico sulla CPU aggiunto del volontario potrebbe causarne il surriscaldamento. L’aumento del consumo energetico può essere risolto in qualche misura impostando un'opzione per limitare la percentuale di utilizzo del processore utilizzato dal client (come, per esempio, in BOINC).
* Diminuzione delle prestazioni del PC: se l'applicazione di volunteer computing viene eseguita mentre il computer è in uso, può influire sulle prestazioni del PC a causa del maggiore utilizzo della CPU, della cache, memoria locale, e della connessione di rete. Anche qui è possibile ovviare all'inconveniente "tarando" l'utilizzo delle risorse in maniera abbastanza precisa.