BOINC

Izvor: Wikipedija
BOINC
BOINC logo
IzdavačUniversity of California, Berkeley
Izdanje najave6.10.53
Zadnja inačica6.10.18 (Windows), 6.10.51 (Mac OS X), 6.10.17 (Linux) (09.11.2009 - Windows, 30.04.2010 - Mac OS X, 28.10.2009 - Linux)
Operacijski
sustav
Linux, Windows, Mac OS X, Solaris, Unix derivati
ŽanrMrežno računarstvo, Paralelna obrada, Cluster, Distribuirano računarstvo
Internetska
stranica
boinc.berkeley.edu

BOINC (akronim za Berkeley Open Infrastructure for Network Computing, Otvorena infrastruktura za mrežno računarstvo na Berkeleyju) je nekomercijalna računalna aplikacijska platforma za mrežno (grid) računarstvo, nastala 10. travnja 2002. godine, na Sveučilištu Kalifornije u Berkeleyju, gdje se i dalje razvija. BOINC platforma omogućava oslobađanje procesorsko-računarske snage više milijuna osobnih računala spojenih preko interneta ili intraneta. To se odvija u obliku projekata koji su najčešće općekorisni i pod nadzorom sveučilišta i drugih institucija diljem svijeta. Trenutno su računarski najintenzivniji oni projekti koji obrađuju matematički proračun trodimenzionalnog modela Mliječne staze, potragu za vanzemaljskom inteligencijom, izradu klimatskih modela te predviđanje meteoroloških stanja, modeliranje i simulaciju savijanja proteina, računsku obradu gravitacijskih valova te istraživanje novih lijekova.

Pojedinosti[uredi | uredi kôd]

Same ideje se dosjetilo društvo okupljeno oko Davida Andersona u Space Sciences Laboratoryju na Kalifornijskom sveučilištu u Berkeleyju. Pri razvoju BOINC-a upotrijebljeno je iskustvo proizašlo iz rada sa SETI@home projektom koji se oslanjao na distribuirano računarstvo. Realizacija BOINC-a pokrenuta je u veljači 2002. godine, a prva inačica je bila gotova 10. travnja 2002. godine. Prvi projekt nosio je naziv Predictor@home.

Glavni zadatak platforme jest odvojiti znanstveni sadržaj od upravljačkog. Korisnici BOINC platforme instaliraju na računalo jednu aplikaciju pod nazivom BOINC klijent i mogu vlastitu slobodnu procesorsku snagu dodijeliti raznim projektima. To je velika prednost u odnosu na klijente koji su vezani isključivo za jedan određeni projekt, jer jedan projekt, koji se oslanja na distribuirano računarstvo, često nema dovoljno posla kako bi opskrba korisnika raznim djelićima projekata (zadatci, eng. tasks) bila osigurana. U projektima sudjeluju uglavnom entuzijasti amateri te znanstvenici i raduju se svakom malom napretku projekta u kojem sudjeluju.

SETI@home classic projekt je bio specifičan po načinu izdavanja radnih računalnih zadataka pa ih nikada nije manjkalo. Određeni su radni zadatci bili otvoreni BOINC klijentima čak i do dvanaest puta, iako su za osiguravanje točnosti i preciznosti, u znanstvenim proračunima, potrebna tri neovisna računarska ciklusa. Razvojem kasnijih i novijih generacija BOINC klijenata, koji su bili u stanju istovremeno sudjelovati u više projekata, iskorištavanje procesorske računarske snage postalo je efikasnije. Od 18. studenog 2003. godine BOINC podliježe GNU GP licenci. Cilj otvaranja izvornog programskog kôda jest upravo brži daljnji razvoj BOINC-a, podržavanje novih operacijskih sustava te povećanje sigurnosti. Veliku ulogu u razvoju BOINC-a imaju programeri okupljeni oko slobodno-softverske zajednice.

Inačicom 6.4.5 podržana je i CUDA tehnologija nastala u tvrtci Nvidia. Time je omogućeno iskorištavanje računarske snage Nvidijinih grafičkih kartica pomoću CUDA tehnologije. Inačicom 6.10.x podržana je i ATI Stream-tehnika, koja, na sličnom principu rada kao i CUDA tehnologija, omogućava iskorištavanje računarske snage ATI-jevih grafičkih kartica.

Zadnji podaci iz ožujka 2010. godine ukazuju na snagu BOINC platforme: pri 600.000 računala (eng. host) računarska snaga iznosi oko 3,5–6,8 PetaFLOPSa, što uglavnom varira svaki dan.

BOINC manager s grafičkim prikazom projekata Rosetta@home i ClimatePrediction.net.

Sastavni dijelovi[uredi | uredi kôd]

Klijent[uredi | uredi kôd]

Jezgreni klijent
Jezgreni klijent je računalni program koji se na računalu odvija u pozadini. Nadzire znanstvenu uporabu računarske snage prema postavkama svakog sudionika. Upravlja radnim zadatcima i komunicira s projektima na poslužiteljskoj strani.
BOINC manager
BOINC manager je grafičko sučelje za određivanje postavki i nadzor jezgrenog klijenta. Baziran je na wxWidgets C++ biblioteci pa se može pokrenuti na svim operacijskim sustavim koji podržavaju wxWidgets. BOINC manageru se može pristupiti i udaljeno (eng. remote). BOINC manager podržava hrvatski jezik.
BOINC sučelje s naredbenim recima
Program boinc_cmd omogućava upravljanje jezgrenim klijentom preko naredbenih redaka. Vrlo je koristan kada nema grafičkog sučelja, kao primjerice kod poslužitelja.
Projektni zadatci
Svaki projekt priprema određenu količinu radnih zadataka, koje jezgreni klijent zatim skida preko mreže na računalo, gdje se započinju računske operacije. Jezgreni klijent nadzire iskorištavanje procesorske snage za vrijeme izvršavanja računskih operacija.

Kod starijih inačica je jezgreni klijent integriran, kako u BOINC sučelje s naredbenim recima, tako i u grafički BOINC manager. Kod najnovije inačice odvojeni jezgreni klijent komunicira s upravljačkim programima preko shared memorije.

BOINC klijent za Windows

Poslužitelj[uredi | uredi kôd]

Pozadinski sustav svakog projekta temelji se na web poslužitelju, PHP skriptnom jeziku i jednoj MySQL bazi podataka. Kod složenih projekata pozadinski sustav može biti raspodijeljen na više web poslužitelja. Ponekad projekti umjesto PHP-a kao pozadinski sustav rabe Perl ili ASP. Na taj način razna sveučilišta i institucije sebi individualno prilagođavaju komunikacijski model definiran na sveučilištu u Berkeleyju.

Raspoređivač
Raspoređivač, tj. "BOINC Scheduler" je CGI program koji se odvija na web poslužitelju pojedinog projekta. On dodjeljuje klijentima sudionika radne zadatke i nakon (ne)uspješno obavljenog procesorskog računanja upozorava o napretku pojedinog radnog zadatka (eng. work-unit), odnosno o greškama koje se eventualno mogu pojaviti. Sve događaje i napretke zapisuje u bazu podataka.
Podatkovni poslužitelj
Jednostavni HTTP poslužitelj, s kojeg sudionici preko svojih klijenata u određenim vremenskim intervalima mogu na svoja računala pohraniti radne zadatke. Sudionici gotove radne zadatke također šalju podatkovnom poslužitelju.
Validator
Validator (za svaki projekt različit program) provjerava točnost gotovih radnih zadataka pristiglih na podatkovni poslužitelj. Najčešće jedan radni zadatak dobije veći broj, međusobno neovisnih, sudionika pa će validator usporediti pristigle rezultate. U idealnom slučaju svi pristigli rezultati će biti identični.
Asimilator
Asimilator jest projektno-specifični program. Preuzima, od strane validatora, provjerene rezultate i priprema ih za daljnju znanstvenu obradu i analizu. Pri tome se određeni pristigli rezultati pohranjuju u raznim bazama podataka.
Brisač datoteka
Nakon što su rezultati "asimilirani", ulazno-izlazni podaci koji se s vremenom gomilaju, na poslužitelju postaju nepotreban teret. S brisačem datoteka se uklanjaju suvišne i nepotrebne datoteke.
Konvertor
Konvertor, tj. "BOINC Transitioner" nadzire napredak radnih zadataka, od trenutka tvorbe do izdavanja te ponovnog slanja na podatkovni poslužitelj u gotovom obliku. Pri tome provjerava da li su pristigli rezultati s više različitih računala dovoljni za uspješnu znanstvenu obradu.

Tehničke osobine[uredi | uredi kôd]

BOINC platforma lako se prilagođava potrebama pojedinih projekata. Neke od tehničkih osobina koje koriste projekti:

Homogena redundancija
Pojedini su znanstveni projekti osjetljivi na numeričke razlike, koje mogu nastati na različitim računalima. Razlog tome mogu biti operacijski sustav na računalu, procesori ili korišten kompilator. Male razlike u načinu zaokruživanja brojeva ili razlike u implementaciji pomičnog zareza mogu dati potpuno različite rezultate.

U slučaju Predictor@home projekta ustanovljeno je, da Intel i AMD procesori često daju različita savijanja proteina. Ni Intel ni AMD nisu računali pogrešno, jer se proteinske strukture ionako mogu predočiti samo statistički, no signifikantna razlika među njima je bila tolika da je poremetila rad validatora. LHC@home projekt je sličan problem riješio korištenjem vrlo opsežne matematičke biblioteke neovisne o operacijskom sustavu i drugim ograničavajućim faktorima. Važno je naglasiti da BOINC posjeduje mogućnost slanja radnih zadataka samo sudionicima s jednakim računalnim platformama. Na taj način radne zadatke obrađuju samo procesori kojima je taj zadatak i namijenjen.

Raspoređivanje lokacije
Kod nekih projekata su ulazne datoteke radnih zadataka vrlo velike. To opterećuje mrežnu infrastrukturu projekata. Neki projekti imaju prednost što mnoštvo radnih zadataka ima identičan skup ulaznih podataka. Na taj se način BOINC klijentu povlašteno dodjeljuju radni zadatci, ako su na računalu pohranjeni ulazni podatci koji se podudaraju s podatcima drugih projekata. Ova tehnika se poglavito koristi u projektu Einstein@home.
Kapi
Kapi (eng. trickles) su malene XML datoteke koje raspoređivaču dojavljuju stanje o napretku vrlo zahtjevnih i vremensko intenzivnih računskih operacija pojedinih projekata. ClimatePrediction.net projekt koristi radne zadatke, čije uspješno završavanje obrade može potrajati tjednima ili čak mjesecima. No, sudionici ipak ne žele čekati toliko na svoje kreditne bodove. Korištenjem kapi jezgreni klijent raspoređivaču javlja o napretku u rješavanju radnih zadataka, tako da se mogu podijeliti kreditni bodovi, iako se s radnim paketima još uvijek manipulira na poslužitelju projekta.
Arhiviranje podataka
Sudionici mogu odrediti granicu do koje BOINC može arhivirati relevantne ulazno-izlazne podatke na tvrdom disku. Projekti podacima pristupaju u interakciji sa sudionikom, nakon potvrde i odobrenja. ClimatePrediction.net projekt koristi upravo taj princip i pristupa podacima veličine u rangu 100 MB. Trenutno su u pripremi projekti kojima će biti glavna zadaća distribuirano arhiviranje relevantnih BOINCovih podataka.

Sudjelovanje u projektima[uredi | uredi kôd]

Sudjelovanje u projektima je dobrovoljno i neobvezujuće. Prethodno je potrebna besplatna registracija. Na računalu mora biti instaliran BOINC softver. Svaki puta kada se BOINC manager pokrene, BOINCovi upravljački programi će se prijaviti na željene projekte te će započeti pohranjivanje svih potrebnih datoteka kako bi procesorsko računanje moglo započeti. Ponuda otvorenih projekata je šarolika i obuhvaća velik broj znanstvenih disciplina (matematika, medicina, molekularna biologija, klimatologija, astrofizika itd.)

Ocjenjivanje doprinosa[uredi | uredi kôd]

Svako sudjelovanje u BOINC projektima, u obliku iskorištavanje procesorske snage, se nagrađuje kreditnim bodovima (eng. credit points. Ipak pošteno ocjenjivanje doprinosa se pokazalo kao netrivijalno. Jedinica kreditnih bodova jest cobblestone (hrv. kocka kaldrme), nazvana po Jeff Cobbu iz SETI@home projekta. 100 cobblestoneova odgovara dvadesetčetverosatnom procesorskom računanju hipotetske VAX ekstenzije s po 1000 Whetstone- ili Dhrystone-MIPSa. Jezgreni klijent individualno periodički provjerava procesorsku snagu svakog računala pomoću benchmarkova i ustanovljava koliko je procesorskog vremena utrošena za obavljanje radnog zadatka te dodjeljuje zaslužene kreditne bonove (eng. claimed credit). No, kako jezgreni klijent može raditi na više i, kako nema jedinstvenog kompilatora, optimizacija klijenata pomoću benchmarkova neće na svim računalima biti jednaka. Zato ni dodjeljivanje kreditnih bodova neće uvijek pratiti isti algoritam ocjenjivanja. Pored toga je moguće manipulirati benchmark procedure na razini programskog kôda tako da BOINC manager zahtjeva veću količinu kreditnih bodova. BOINC softver to rješava na način da se, ako pristigne više rezultata istog radnog zadataka, svim sudionicama dodjeljuje srednja vrijednost njihovih pojedinih rezultata. Neki projekti zbog toga ovisno o radnim zadatcima dodjeljuju fiksni broj kreditnih bodova, definiran pomoću testnog računala pa se neki projekti, sa stajališta pribavljanja kreditnih bodova, za jednako utrošeno procesorsko vrijeme, više isplate od drugih.[1] U bilo kojem trenutku sudionici mogu elektronskim putem zatražiti digitalni certifikat, koji potvrđuje sudjelovanje u jednom ili više projekata.

Izvori[uredi | uredi kôd]

  1. [1][neaktivna poveznica] – relativno dodjeljivanje kreditnih bodova po projektima, BOINCstats

Vidi još[uredi | uredi kôd]

Vanjske poveznice[uredi | uredi kôd]

Logotip Zajedničkog poslužitelja
Logotip Zajedničkog poslužitelja
Zajednički poslužitelj ima još gradiva o temi BOINC