Dobrovoljno računanje

**Dobrovoljno računanje** je vrsta distribuiranog računanja kod kojeg korisnici dobrovoljno ustupaju svoje računarske resurse (kao što su procesorska snaga i memorijski kapacitet) za podršku jednom ili više naučnih projekata.

## Historija 
Prvi poznati projekat dobrovoljnog računanja bio je *Great Internet Mersenne Prime Search* (GIMPS), koji je pokrenut u januaru 1996. godine. Ubrzo nakon toga, 1997. godine pokrenut je distributed.net, a krajem 1990-ih i nekoliko akademskih istraživačkih projekata koji su koristili Javu za distribuirano računanje.

Izraz "dobrovoljno računanje" skovao je Luis F. G. Sarmenta, koji je razvio sistem *Bayanihan*. Ovaj termin odnosi se na kolektivne napore korisnika u pružanju računarskih resursa u svrhu društveno korisnih projekata.

Najveći rast u popularnosti dobrovoljno računanje je doživjelo 1999. godine pokretanjem projekata SETI@home i Folding@home, koji su privukli stotine hiljada dobrovoljaca širom svijeta.

Između 1998. i 2002. godine nekoliko kompanija je razvilo poslovne modele zasnovane na dobrovoljnom računanju, uključujući Popular Power, Porivo, Entropia, Inc., i United Devices.

## Middleware za dobrovoljno računanje 
U početnim fazama, klijentski softver za dobrovoljno računanje bio je monolitan i kombinovao je naučne proračune i mrežnu infrastrukturu u jednu aplikaciju. Međutim, moderni pristupi koriste naprednije middleware sisteme koji omogućavaju fleksibilniju distribuiranu infrastrukturu računanja.

Neki od najpoznatijih middleware sistema uključuju:

**BOINC** (*Berkeley Open Infrastructure for Network Computing*) – najrasprostranjeniji middleware otvorenog koda razvijen na Univerzitetu Kalifornije, Berkeley.

**XtremWeb** – istraživački alat razvijen na Univerzitet Pariz-Jug.

**Xgrid** – sistem razvijen od strane Apple-a, dostupan samo za MacOS.

**Grid MP** – komercijalna middleware platforma korištena u projektima poput World Community Grid, Cell Computing i Hikari Grid.

Većina ovih sistema koristi model *povlačenja* (pull model), gdje klijent povremeno kontaktira serverski sistem kako bi preuzeo novi zadatak i predao rezultate obrade.

## Izazovi dobrovoljnog računanja 
Dobrovoljni računarski sistemi suočavaju se s nekoliko izazova, uključujući:

* Heterogenost resursa – računari dobrovoljaca imaju različite performanse i konfiguracije.
* Nepredvidivost dostupnosti – računari nisu uvijek uključeni ili povezani na mrežu.
* Potreba za minimalnim utjecajem na performanse korisnika – softver mora raditi u pozadini bez ometanja svakodnevnog rada korisnika.

Dodatno, postoje i problemi vezani za tačnost podataka:

* Nepouzdani rezultati – neki računari, posebno oni s *overclockingom*, mogu slati netačne rezultate.
* Namjerno manipuliranje rezultatima – pojedini korisnici mogu pokušati poslati pogrešne rezultate kako bi dobili nepravedne nagrade.

Uobičajena metoda za ublažavanje ovih problema je korištenje *ponovljenog računanja* (redundant computation), gdje se isti zadatak izvršava na više računara, a rezultati se prihvataju samo ako su međusobno podudarni.

## Troškovi dobrovoljnog računanja 
Korisnici koji učestvuju u dobrovoljnom računanju mogu imati određene troškove, uključujući:

* Povećanu potrošnju električne energije.
* Potencijalno smanjenje performansi računara.

Međutim, za mnoge učesnike koristi od doprinosa naučnim istraživanjima nadmašuju potencijalne nedostatke.

## Reference 
## Vanjski linkovi 
Wanted: Your computer's spare time – physics.org, 2009.

BOINC – zvanična stranica

Kategorija:Distribuirano računarstvo
Kategorija:Računarstvo
Kategorija:Informatika