Razvoj aplikacije za BOINC grid – Deo I
Svakog dana se proizvodi 2.500.000 terabajta podataka i očigledno je da količina generisanih podataka u velikoj meri prevazilazi našu sposobnost da te podatke obradimo i prevedemo u informacije. Ovo predstavlja veliki problem za naučnike i istraživače kod kojih je brzina napredovanja istraživanja zavisna od brzine računara koji su im na raspolaganju i novca. To uglavnom znači da mnogi istraživači napreduju veoma sporo zbog nedostatka potrebnih resursa ili sredstava potrebnih za dovršavanje velikih projekata. To će se verovatno promeniti s pojavom velikih kvantnih računara, koji će moći da razvrstaju i obrade podatke u deliću vremena koje bi bilo potrebno za obradu iste količine podataka primenom tehnologija koje su danas dostupne. Međutim, budući da smo barem desetak godina udaljeni od mogućnosti da iskoristimo neverovatnu moć kvantnih računara za obradu podataka, naučnici moraju da nađu nove načine za maksimalno iskorištavanje podataka, a jedna od najuspješnijih metoda je volontersko računarstvo (volunteer computing).
Sadržaj
Motivacija
Tradicionalni oblici računarstva velikih razmera, kao što su izgradnja vlastitog klastera, zakup vremena na superračunaru, zakup vremena na komercijalnim oblacima, su veoma skupi. Mnogi naučnici i istraživači ne mogu priuštiti računarstvo velikih razmera, jer jednostavno nemaju dobru finansijsku potporu, rade u naučnim oblastima koje se ne finansiraju, u malim institucijama, ili žive u siromašnim zemljama. Zato se sada aktivno radi na rešavanju ovog problema. Pojam volontersko računarstvo prvi put se javlja 1996. godine, u okviru GIMPS projekta (Great Internet Mersenne Prime Search). GIMPS je zasnovan na volonterima koji su donirali svoje računarske resurse kako bi pomogli u izvođenju matematičkih proračuna potrebnih za pronalaženje Mersenovih prostih brojeva (prosti brojevi oblika 2^n-1). Projekat je doživeo veliki uspeh, i naučnici su uvideli da ovakav pristup ima ogroman potencijal kada se radi o obradi velike količine podataka. Još jedan takav projekat je bio SETI u okvoru koga su ljudi donirali svoje neiskorišćeno procesorsko vreme za obradu radio talasa, u cilju traženja znakova vanzemaljske inteligencije. Prva verzija bila je dosta glomazna i zahtevala je da korisnici skidaju program svaki put kad dođe do bilo kakve promene. Zato su došli na ideju da razviju jedan generički program, koji će skidati i pokretati naučne programe, bez ikakve intervencije od strane korisnika. Tako je 2004. godine nastao BOINC (Berkeley Open Infrastructure for Network Computing). BOINC je open source platforma za projekte volonterskog i grid računarstva. Softver radi u pozadini na bilo kojoj vrsti računara, koristeći inače besposlene (neiskorišćene) računarske resurse. Naučnici ga koriste za kreiranje projekata volonterskog računarstva, univerziteti za izgradnju virtuelnih centara superračunara, a korporacije ga koriste za grid računarstvo.
BOINC je distribuirana računarska infrastruktura zasnovana na centralizovanom serveru koji koordinira resursima volonterskih računara. Većina BOINC projekata koristi volonterske resurse koje mu je dodelio server. Nakon završavanja posla, rezultati se vraćaju severu. Kontrolni server za određeni projekat predaje blokove rada na zahtev, evidentira vraćene rezultate i prati napore svakog učesnika. Do danas, BOINC ostaje najvažnija platforma za učešće u projektima volonterskog računarstva. Postoje i druge slične platforme, ali su one kreirane za određene projekte, kao što su Quantum Cures za lečenje retkih bolesti. Još neke poznate platforme su:
Sa oko 700.000 aktivnih računara i u proseku 7.2 petaflopsa na dan, BOINC kao celina, predstavlja šesti najbrži računar na svetu.
Neki od poznatijih projekata
POEM@HOME
Suština ovog projekta je modeliranje savijanja proteina, tj. određenog oblika koji protein zauzima, kako bi obavljao svoju funkciju. Veruje se da pogrešno savijanje proteina dovodi do desetina bolesti kao što su Alchajmerova bolest, Hantingtonova bolest, cistična fibroza i razne vrste raka. POEM radi na predviđanju aktivne strukture proteina , njihovih međusobnih interakcija i razvoju novih lekova na osnovu struktura novih proteina.
WORLD COMMUNITY GRID
Podstiče brojne neprofitne projekte koji se bave najvećim problemima čovečanstva. Pomaže istraživačima sa Harvarda da dizajniraju najefinasnije solarne ćelije, naučnicima da razviju nove lekove protiv ebole ili da osmisle personalizovane tretmane karcinoma mapirajući rak markere.
BITCOIN UTOPIA
Koristi volonterske resurse za rudarenje Bitcoin-a u cilju podrške istraživanjima. Ideja je koristiti sajt kao donatorsku platformu koja donosi mnoštvo informacija. Korisnici mogu objavljivati projekte vezane za nauku, a drugi mogu donirati svoje resurse za rudarenje kriptovaluta kako bi podržali taj projekat.
Instalacija clienta
U ovom delu ćem ose pozabaviti instalacijom client-a na razlicite operativne sisteme.
Windows
Instalacija je jednostavna, a sam program možete skinuti sa adrese http://boinc.berkeley.edu/download_all.php . Dodavanje novih projekata je jednostavno, sve sto je potrebno jeste da pokrenemo aplikaciju, kliknemo na Add Project i unesemo adresu ili izaberemo projekat koji nam se najviše dopada.
Linux
Postoje tri načina instalacije BOINC-a na Linux računare:
- Pomoću sistema za upravljanje paketima (package management system) distribucije Linuksa koju koristite,
- Pomoću Berkley-jevog instalera ili
- Build-ovanjem izvornog koda S obzirom da je metod koji uključuje package manager najjednostavniji i najbolji, njega ćemo prvo obraditi.
Mnoge distribucije Linux-a (Fedora, Ubuntu, Debian, …) imaju mogućnost da instaliraju pakete pomoću sistema za upravljanje paketima. Paketi se skidaju sa repozitorijuma i instaliraju na korisničkom računaru. Najpre je neophodno pokrenuti package manager.
Nakon toga, potrebno je ukucati BOINC u polje za pretragu. Kao rezultat dobićete listu relevantnih paketa. Na vrhu te liste će se nalaziti i paket sa nazivom boinc, kao na slici ispod. Potrebno je označiti checkbox, što će obeležiti taj paket za skidanje i instalaciju. Automatski će biti označeni i ostali neophodni paketi (boinc-manager i boinc-client). Da bi instalacija otpočela, korisnik mora kliknuti na dugme Apply. Ovim će svi neophodni paketi biti instalirani. Prednost ovog pristupa je ta što će **BOINC ** biti pokrenut kao pozadinski proces, svaki put kada se računar uključi, nezavisno od toga da li je neki korisnik prijavljen ili ne. Takođe, package manager će sam voditi računa o update-ovima, tako da korisnik ne mora da brine o tome.
BOINC je takođe moguće instalirati i pokretanjem Berkley-jeve zvanične instalacije, koju možete naći na ovom linku. Potrebno je odabrati verziju Linuxa *i za nju kliknuti na odgovarajući *link (Download BOINC) . Skidanje će krenuti automatski, a naziv skinute datoteke će biti oblika boinc_7.2.42_i686-pc-linux-gnu.sh.
Zatim je potrebno otvoriti terminal u direktorijumu u kome se nalazi skinut file, prebaciti ga u home direktorijum, i odatle ga pokrenuti. Za sve to će biti potrebno ukucati nekoliko linija koda, koje se nalaze na sledećoj skripti. Za ovu instalaciju nisu potrebne root privilegije.
Pokretanjem ovih komandi, kreiraće se folder BOINC/ i sadržaće sledeće datoteke: boinc, boincmgr, boinccmd, run_client, run_manager. Kako biste pokrenuli **BOINC **potrebno je izvršiti:
./run_client --daemon; ./run_manager
Nedostatak ovog pristupa je to što zauzima više memorije od prethodne metode jer se nekoliko deljenih biblioteka linkuje statički. Još jedna mana ove metode je to što se BOINC ne pokreće automatski pri pokretanju računara, već to korisnik mora uraditi sam. Dodavanje projekta se može izvršiti preko komandne linije korišćenjem sledećih komandi