Vabatahtlik arvutusteenus

Vabatahtlik arvutusteenus (ingl. Volunteer computing) on hajusarvutuse tüüp, kus inimesed annetavad oma arvutite kasutamata ressursse teaduslikule projektile, mis kasutavad neid ressursse hajutatud arvutamiseks ja/või salvestamiseks.
Enamjaolt on vabatahtlikud tavainimesed kellel on isiklikud arvutid, mis on ühendatud internetiga. Lisaks võivad ka organisatsioonid, nagu koolid ja ettevõtted, pakkuda oma arvutite ressursse. Projektid on tavaliselt akadeemilised (ülikoolipõhised) ja teostavad teadusuuringuid. Siiski on erandeid, nagu näiteks GIMPS ja distributed.net mis ei ole akadeemilised.
Ajalugu.
Esimene vabatahtliku arvutustehnoloogia projekt oli Suur Interneti Mersenne'i algarvu otsing (ingl. "Great Internet Mersenne Prime Search" ), mis algas jaanuaris 1996. Sellele järgnes 1997. aastal distributed.net. Aastatel 1997 ja 1998 arendas mitu akadeemilist uurimisprojekti vabatahtliku arvutustehnoloogia jaoks Java-põhiseid süsteeme; näiteks Bayanihan, Popcorn, Superweb.
Aastatel 1998 kuni 2002 loodi mitmed ettevõtted mille ärimudelid kasutasid vabatahtlikku arvutusteenust, näiteks Porivo, , , Entropia.
Aastal 2002 loodi "Berkeley Open Infrastructure for Network Computing" (BONIC), mille vabatahtliku arvutustehnoloogia raamistikku kasutatakse erinevate teaduslike simulatsiooniprojektide jaoks, sealhulgas valkude voltumine, kliimaprognoosid ja biomeditsiinilised arvutused.
Vahetarkvara.
Varajaste vabatahtliku arvutustehnoloogia projektid koosnesid ühest klientprogrammist, mis ühendas nii teadusliku arvutuse kui ka hajutatud arvutusinfrastruktuuri. Selline arhitektuur oli jäik ning uute klienttarkvarede versioonide kasutuselevõtt oli keeruline.
Viimasel ajal on vabatahtlik arvutustehnoloogia liikunud vahetarkvara süsteemidele, mis pakuvad teaduslikust arvutamisest sõltumatut hajutatud arvutusinfrastruktuuri.
Näited vahetarkvaradest:
Tööpõhimõte.
Üks suurematest vabatahtliku arvutusteenuse vahetarkvaradest on BOINC server koosneb kahest põhiosast, nimelt põhiandmebaasist ja serveri deemonprotsessidest ("söötur, ülekandija, assimilaator, validaator, (failide) kustutaja, töö generaator ja planeerija"). 
Kui projektihaldur saadab töö BOINC-i serverisse, loob "töö generaator" mitu "tööülesannet" põhiandmebaasis. Seejärel teeb "ülekandija" andmebaasis "tööülesande-tulemuspaarid". Paarid söödetakse "sööturi" poolt "planeeriasse" ja jaotatakse mitmele BOINC-i "töölisele" (vabatahtlikule). Kui iga "tööline" tagastab oma tulemuse, teatab planeerija selle "validaatorile". Kui valideerimine on lõpule jõudnud, töödeldakse andmeid ning viimaks viiakse läbi "assimileerimine". 
Lõpuks saab projektihaldur BOINC-i serverist assimileeritud tulemused.(lisa 1)
Veakontroll.
Arvutustulemuste veakontrolli saab teostada mitmel viisil, üheks meetodiks on hääletamine, teine aga sabotaažikontroll.
Hääletamise puhul iga ülesanne kopeeritakse ja eraldatakse mitmele klientprogrammile, et vahetarkvara saaks koguda mitmeid tulemusi ja võrrelda nende väärtusi. Ülesande jaoks kogutud tulemused klassifitseeritakse seejärel tulemusgruppidesse vastavalt tulemuste väärtusele. Vahendusprogramm otsustab hääletamise teel, millise tulemusgrupi tulemus peaks olema ülesande lõplik tulemus. 
Kaks levinud hääletamismeetodit on enamuse ja m-esimese hääletamine.
Lihtsuse tõttu kasutatakse lihtsaid hääletamismeetodeid laialdaselt reaalsetes vabatahtliku arvutamise süsteemides nagu näiteks BOINC.
Töötaja sabotaažikontrolliks määrab vahetarkvara mõnikord kontrollülesande, mille õige tulemus on juba teada. Vahetarkvara saab tuvastada töötaja kui sabotööri, kui too tagastab vale tulemuse kontrollülesandele. 
Sabotööri tabamisel veakontrolliga võib kasutada järgmisi kahte meetodit:
Tagasikeeramist ja musta nimekirja saab kasutada samaaegselt efektiivseks sabotaaži vältimiseks.