BOINC
Izdavač: | University of California, Berkeley |
---|---|
Zadnja inačica: | 6.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) |
Izdanje najave: | 6.10.53 |
Operacijski sustav: | Linux, Windows, Mac OS X, Solaris, Unix derivati |
Vrsta: | Mrežno računarstvo, Paralelna obrada, Cluster, Distribuirano računarstvo |
Licencija: | GNU GPL, LGPL, Slobodni softver |
Web 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
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.
Sastavni dijelovi
Klijent
- 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.
Poslužitelj
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
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, ukoliko 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
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
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, ukoliko 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
Vidi još
Vanjske poveznice
- službene web stranice BOINC-a (na engleskom jeziku)
- izbor BOINC projekata (na engleskom jeziku)
- pomoć oko instalacije i podešavanja BOINC-a (na engleskom jeziku)
- posebni zahtjevi instalacije BOINC-a (na engleskom jeziku)
- statistički prikaz za Hrvatsku
- poredak zemalja
- poredak sudionika
- poredak ekipa
- dr.sc. David Anderson opisuje SETI@home, BOINC i distribuirano računarstvo