BOINC SETI@Home
. . .
Malo o BOINCu...
BOINC program služi kao platforma za distribuirano
izračunavanje, tj. sistem koji velike količine podataka deli na
dovoljno male delove koji se šalju različitim računarima putem mreže, a
zatim se na glavnim serverima samo kombinuju i objedinjuju rezultati. Takvim
načinom rada se dobija jedan virtuelni super kompjuter, pošto se cifre (u
zavisnosti od projekta naravno) kreću i do nekoliko desetina (čak stotina,
kada je reč o SETIu) teraflopsa (biliona operacija sa pokretnim zarezom u
sekundi), što daje dobru zamenu za jedan preskupi super kompjuter. Reda
veličina, najbrži do sada superkompjuter razvija nešto više od 230
teraflopsa (IBM BlueGene/L koji teoretski može da razvije 360Tf i prvi je na
najnovijoj listi najbržih 500 superkompjutera).
U zavisnosti od zanimanja i želja da pomognete nekoj sferi nauke, možete odabrati različite projekte. Ubedljivo najpopularniji projekat od koga je sve i počelo sa SETI Classic verzijom, a koja se ukida zbog prelaska na BOINC, je SETI At Home ili Search for Extraterrestrials Inteligence At Home (SETI@Home - SAH). To je inače nastavak istoimenog projekta koji je započet još 1975 godine. Projekat je usled nemogućnosti pronalaženja željenog signala u periodu od 20 godina rada izgubio sredsta vlade SAD za finansiranje, i to krajnje neopravdano uzevši u obzir činjenicu da je snimljeno i obrađeno signala sa ne više od 1% vidljivog svemira. To je nateralo entuzijaste sa Kalifornijskog univerziteta Berkeley, koji su i započeli inicijalni projekat, da u zoru velikog internet buma (1995), osmisle novi način za obradu signala i dalji život projekta. Dok se vreme za snimanje na radio teleskopima plaća od donacija, obrada se vrši uz pomoć volontera preko interneta, tj. distribucija zadataka se vrši preko interneta, a obrada na računarima volontera. Cilj je, kao što svi znate, potraga za inteligentnim radio signalima iz svemira, tj. radio signalom koji će biti provereno veštačke prirode i pokazati da na posmatranoj lokaciji u svemiru postoje bića dovoljno inteligentna za komunikaciju. To je bio SETI Classic. Usled enormnog priliva volontera u godinama posle puštanja projekta u rad (zvanično je započeo rad u maju 1999. godine) došlo se do tačke kada je bilo više resursa korisnika na raspolaganju nego podataka za obradu. Tako su se u sam proces obrade dodavale nove mogućnosti koje su noviji i sve brži računari mogli da obrade. A onda se došlo do zaključka da je takav način iskorišćavanja resursa globalne mreže i računara u njoj moguće iskoristiti za rad na više zahtevnih, a za nauku veoma bitnih projekata. Da bi olakšali snalaženje napravljena je otvorena platforma – BOINC (Berkeley Open Infrastructure for Network Computing) koja je osnova za uključivanje različitih projekata. Jedna od pozitivnih strana BOINCa je što u slučaju trenutnog (nekoliko dana) prestanka rada jednog projekta kompjuter nastavlja da radi na nekom drugom projektu, i to tek kada ostane bez zalihe posla, koje se mere u danima.
Sam proces obrade signala ukratko ide ovako; Signal se snima u zakupljenom terminu na radio teleskopu u Arecibu na data trake. Ovi podaci predstavljaju analogno snimljene signale, koji se dalje diskretizuju, a zatim i digitalizuju kako bi bili podesni za obradu na računaru. Tu dolazi do određenih aproksimacija, ali se ne gubi mnogo na preciznosti signala korišćenjem poznatog Nikvistovog pravila o odabiranju. Signal se sada deli na delove koji će konačno biti dovoljno mali da se šalju korisnicima u kojima će svaki računar pokušati da pronađe sledeće elemente koresteći brze Furijeove transformacije:
Isti elementi se i sada pretražuju na novoj platformi BOINC SETI. Prednost BOINC podataka koji se obrađuju je što omogućavaju korišćenje podataka snimljenih i na drugim radio teleskopima, a ne samo sa Areciba. U beta testiranju je i nova verzija SETI klijenta koji takođe radi pod BOINCom, a koji ima veću rezoluciju kvantovanja, pa su i digitalizovani podaci precizniji i zahtevniji za izračunavanje. Ukoliko jedan računar naiđe na "zanimljiv" signal, on se obeležava i upisuje u bazu podataka da bi se kasnije zatražilo ponovno snimanje istog područja radi potvrde signala. Do sada se samo jednom desilo da je nađen signal koji je prošao čak 4 provere pre nego što je nestao i to posle obrađenih ukupno više od milijardu jedinica. Korisniku čiji računar bude učestvao u identifikaciji eventualnog vanzemaljskog signala garantuje se dobijanje dela zasluga za otkrivanje. . . .
Inicijalno, kao i kod SETI Classic-a, predviđeno je da proces koji vrši izračunavanje radi u pozadini ili kao screen saver i to kada računar ne radi ništa drugo. Proces koji vrši proračun je proces najnižeg prioriteta i isključuje se na svaki zahtev operativnog sistema, što ne dovodi do ometanja u radu sa drugim programima. Ako neko pogleda u task menager (Windows), videće da je zauzeće procesorskih resursa 99-100% što je normalno, ali će se svi potrebni resursi za neki drugi proces na zahtev osloboditi. Naravno, posledica rada procesora na 100% opterećenja je i zagrevanje nekoliko stepeni više od uobičajene vrednosti. Ali da ne bude zabune, sa prosečnim hladnjakom i cooler-om, procesor će biti sasvim dovoljno ohlađen da ne dođe do fizičkih posledica po procesor. Za detalje o konkretnim vrednostima normalnih i graničnih operativnih temperatura procesora koji koristite treba se raspitati. Naravno tokom razvoja projekta, kako Classic-a tako i BOINCa, pojavljivao se sve veći broj korisnika koji ima računare posvećene isključivo radu na projektu, što je u našim uslovima malo verovatno da će neko uraditi. Za takve ljude (mada to mogu svi koristiti) urađeni su i posebno optimizovani klijenti za BOINC, koji su kompajlirani za određene vrste procesora sa specifičnim skupom instrukcija kao sto su MMX, SSL, SSL2, itd. Na kraju krajeva, BOINC je program otvorenog koda, pa ga možete menjati i kompajlirati samo za sebe.
. . .
A sada o instalaciji BOINCa...
Kada instalirate program potrebno je povezati se na neki
projekat (ver. 5.x.y : PROJECTS -> Attach to project). Startovaće se
čarobnjak koji će vam tražiti project URL.
Za različite projekte
različiti su i linkovi (project URL)
project URL:
http://setiathome.berkeley.edu
Bilo bi poželjno da u ovom momentu već budete povezani na internet, da bi projekat mogao neometano da skine ono što je u stvari program za izračunavanje za konkretan projekat (primer za SETI: setiathome_4.18_windows_intelx86.exe). Posle ovoga počinje skidanje radnih jedinica koje će se obrađivati na vašem računaru, i računar počinje sa radom. Veličina jedinice za download je oko 350kb (kao i kod Classic-a), ali se skida više jedinica u zavisnosti od toga koliko ste dana rada zahtevali. To su podatci koji se upisuju na matičnoj stranici projekta (za SETI: http://setiathome.berkeley.edu/home.php#prefs ). Kod SETI Classic-a je mogućnost keširanja (cache), tj. čuvanja više radnih jedinica na računaru bila moguća samo uz pomoć eksternih pomoćnih programa, kao što je SETI Driver koji sam ja koristio, koji je dozvoljavao računaru mogućnost da posle završenog proračunavanja jedne radne jedinice, odmah počne rad na sledećoj jedinici bez potrebe za permanentnom internet konekcijom. Kod BOINC platforme ta mogućnost je već implementirana u sam software.
Na matičnoj strani projekta (na web-u) u kome učestvujete
(recimo SETI), idite na YOUR ACCOUNT i videćete sva svoja podešavanja. Pod
GENERAL PREF. -> EDIT PREF. nađite "Connect to network about every" i tu
stavite za početak neku manju vrednost, na primer 2 dana. Naravno
moćićete i češće da se vezujete na SETI-jeve servere, ali ćete imati
podataka na svom kompjuteru za najviše dva dana izračunavanja, tj. 48 sati. Ako imate neku prosečnu konfiguraciju, sa procesorom, recimo oko
2GHz, obrađivaće se jedna jedinica podataka (WorkUnit ili WU) za 3-4 sata.
Radna jedinica je pri skidanju sa interneta imala oko 350kb, dok se serveru vraća između 10 i 20 kb rezultata.
To znači
da ćete za 2 dana rada na kompjuteru imati između 12 i 16 jedinica, što je
4-5Mb za download na svaka 2 dana (ako vam je kompjuter uključen 24h i radi
samo za SETI), tj. realno negde na 4-5 dana.
Već je pomenuto da se za svoj rad dobijaju krediti, koji predstavljaju posvećenost projektu. Ranije (u SETI Classic-u) je to bio samo puki broj obrađenih jedinica, a sada je kombinacija više stvari, tako da se dobija između 20 i 30 kredita po jedinici. Ovo je bitno za ličnu statistiku, a ako imate i malo takmičarskog duha pored nauke, sve postaje još zanimljivije. Ova igra sa statistikom je dovela do nečega što se u SETI žargonu naziva statistička zavisnost, gde učesnici počinju da jure rezultate zbog svog kotiranja na nekoj od listi korisnika, i da se pravi razlozi, a to je nauka, zaboravljaju. Ipak zanimljivo je pratiti i statistike vezane za određene projekte, kao i vaše pozicioniranje na traženim listama. Liste su globalne, lokalne (zemlje) i po timovima (kojima se može i ne mora pristupiti ili ih samostalno formirati). Sam BOINC software ima vrlo šture statističke podatke, tako da postoje drugi načini za veoma opširne uvide u lične i globalne statistike. Jedna od web lokacija koja pruža takve informacije je i http://www.boincstats.com/. Kod SETI Classic-a su se za to koristili takođe eksterni pomoćni programi kao što je SETI Spy koji sam ja koristio. Krediti kao opis posvećenosti su uvedeni i da bi se na neki način ujednačio sistem ukupnog ocenjivanja posvećenosti na više različitih projekata. Na primer u Einstein-u se jedna jedinica obrađuje oko 8 sati na istoj platformi na kojoj je SETI jedinici dovoljno 3 sata za obradu, pa se dobija oko 75 kredita po jedinici. Algoritam koji dodeljuje kredit je prilično zamršen, a kombinuje platformu na kojoj je vršen proračun, kao i vreme obrade podataka. Pošto se stekne kvorum za datu jedinicu (vraćanje bar 3 validna rezultata), uzima se prosek odobrenih kredita (uopšteno, svaki korisnik vraća rezultat za koji zahteva neznatno različitu količinu kredita zbog obrade na različitim platformama) i oni se dodeljuju svim korisnicima koji su vratili rezultate. Ukoliko ima korisnika koji su takođe obrađivali tu radnu jedinicu (četvrta kopija poslata na obradu), pri povratku rezultata dobiće kredit koji je već odobren svima ostalima, pod uslovom da je rezultat vraćen u roku od 14 dana. Ovo nije baš najsavršeniji sistem, ali se razvija još uvek.
. . .
Jos poneki korisni savet...
Ako neko ima više računara i hoće da svi rade pod istim nalogom (što znači da će sav dobijeni kredit ići na isti nalog) samo neka ponovi isti postupak na svim računarima. Na matičnoj strani projekta pod Preferences ćete naći spisak svih računara koji rade na tom projektu, a pod datim nalogom. Tu se takođe može videti lista radnih jedinica (WU) koje su obrađene pod datim nalogom, koje se obrađuju, koje su završene i čekaju da im se dodeli kredit, koje su dobile i koliko kredita, itd.
Ako neko neće da koristi program kao screen saver, već hoće da ovaj radi stalno u pozadini, ubrzaće izračunavanje, pošto se resursi neće trošiti na iscrtavanje grafike. Grafika je inače gotovo istovetna SETI Classic-u uz određene 3D efekte.
Za korisnike sa dial-up konekcijama – modemima (kao što sam i ja), treba napomenuti, da BOINC klijent nije previše pametan kada je u pitanju povezivanja na matične servere. Ako u meniju COMMANDS izaberete opciju “Network activity based on preferences” program bi trebalo da vas pita kada da se veže na internet, ali to pod verzijama 4.xx nije radilo, tj. BOINC se sam bez pitanja povezivao na mrežu, dok je pod verzijom 5.x.y problem rešen, ali ja i dalje koristim jednu zgodnu opciju. Možda predstavlja malo mučenja, ali nije strašno. Kada se vežem na net koristim COMMANDS -> “Network activity always available”, a kada se skinem sa net-a COMMANDS -> “Network activity suspended”. Već vidite u čemu je štos... Manuelno dozvoljavam i onemogućavam BOINC klijentu povezivanje na mrežu.
Kada se vežete na net, i kada omogućite BOINCu pristup serveru (Network activity always available), on će automatski početi da šalje gotove rezultate i da traži nove za obradu. Kada sve završi (u BOINCu u zalistku TRANSFERS neće biti ničega više na spisku) idite na zalistak PROJECTS (ne meni PROJECTS) i videćete spisak projekata u kojima učestvujete i klikinite na projekat, a onda na UPDATE (meni sa leve strane - Tasks) da bi potvrdili sve ono što ste poslali. Ovo BOINC radi automatski, ali posle određenog vremena, pa je za dial-up korisnike (to mogu i svi drugi da koriste) bolje da taj upit od servera traže manuelno...
. . .
Kada se prvi rezultati vrate serverima, potrebno je da prođe određeno vreme validacije, tj. usklađivanja traženog i odobrenog kredita, kao i čekanje kvoruma pre nego što će korisniku biti priznat rad na datoj jedinici i dodeljen određen kredit. To je još jedna od velikih promena u BOINCu u odnosu na SETI Classic kod koga se odmah pri povratku rezultata beležio vraćen rezultat i automatski inkrementirao broj obrađenih jedinica. Realna validacija je na serverima vršena tek naknadno, pošto je datom korisniku već bio priznat rad na nekoj jedinici. To je dovelu u iskušenje neke od "statističkih zavisnika" da koriste razne "prečice" pri obradi i vraćanju rezultata kako bi bez obzira na konkretno učestvovanje u projektu bili bolje kotirani na listama korisnika. Sada validatori (procesi sa serverske strane) prvo proveravaju i objedinjuju rezultate, a tek onda odobravaju dodelu kredita. To dovodi do toga da se kredit za završenu jedinicu može dobiti tek posle nekoliko sati ili čak dana (a najviše 14 dana ukoliko se obrađena jedinica vrati istog dana kada je i preuzeta).
Koristan link na kome se može videti status svih procesa na SETI serverima nalazi se na stranici: http://setiathome.berkeley.edu/sah_status.html
Kada kompjuter počne da dobija zasluge za svoj rad i kada bez problema nastavi da preuzima i obrađuje nove jedinice podataka, vaš posao se svodi samo na posmatranje. Za svo to vreme vaš kompjuter ima zanimaciju sa učešćem u jednom ili više globalnih projekata koje ste vi izabrali. I to je to...
|
||||||