BOINC SETI@Home

Miloš Tešić

 

OK... da počnemo...  

 

Kao i kod svih novih projekata i ideja i ovde počinjemo od problema.

Period od desetak dana zastoja u radu SETI BOINCa sada je za nama. Ovo je ujedno bio i jedan od najvećih zastoja u radu projekta do sada za više od godinu dana funkcionisanja. Sve se polako vraća u normalu, pa je došlo vreme da se i mi neometano bavimo istraživanjem pomenute platforme za distribuirano izračunavanje.

 

Napomenuću da je naredno objašnjenje u vezi BOINCa vezano za rad na Windows NT platformi sa 32bitnim x86 procesorom (u prevodu - mašina sa WinXP operativnim sistemom i Intelovim PIV ili AMD Athlon, Sempron procesorom)... Za ostale platforme (Unix/Linux, Mac, BSD sa 32bit / 64bit procesorima) potražite više objašnjenja na matičnim stranama projekta.

Naravno najveći deo teksta se odnosi na najpopularniji projekat BOINCa, a to je SETI, uz samo pominjanje još ponekog projekta.

 

 

. . .

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).
Valja reći i da je u najboljim danima SETI Classic imao preko 5 miliona korisnika (oko 500.000 konstantno aktivnih), dok je SETI BOINC već prešao 300.000 korisnika.

 

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:

 

Šiljak (Spike), tj. nagli skok u spektru signala; Puls, odnosno ponavljanje šiljka u određenom vremenskom periodu; i Triplet, tj. trostruko ponavljanje iste sekvence na jednakim vremenskim intervalima. Kasnije je dodato i traženje Gaussians-a, tj. ujednačenog povećanja energije signala koje bi trebalo da označava moguć veštački izvor radio signala.

primer Gaussin-a

 

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...


Naravno pre nego što uopšte počnete instalaciju programa, potrebno je da odete na matičnu stranu projekta u kome hoćete da učestvujete i registrujte se za učešće u izabranom projektu i za najviše dan-dva dobićete na mail potvrdu registracije sa podacima koji će biti potrebni kada budete instalirali program, tj. kada se budete povezivali na projekat.
Najnoviji BOINC klijent je verzije 5.2.13 (ako se ne varam, pošto se često pojavljuju nove verzije; (videti: http://boinc.berkeley.edu/download.php ). Kada se registrujete username će vam biti e-mail (mora da bude validan), a šifru, naravno, birate sami. Za klijente verzije 4.xx dobijao se activation key, ali se sa verzijama 5.x.y prešlo na standardno logovanje sa šifrom, mada je ostao i activacioni ključ (ključ sa uputstvom za korišćenje se dobija na upisani e-mail).

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)
primer za SETI:

project URL: http://setiathome.berkeley.edu
Ja, recimo, koristim još i Einstein At Home (traženje brzo-rotirajućih neutronskih zvezda - pulsara)
project URL: http://einstein.phys.uwm.edu/
ima još mnogo projekata... pogledaj na: http://boinc.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.
Bitna stvar je da kada preuzmete podatke oni se moraju obraditi za najviše 14 dana i vratiti serveru ili se neće uvrstiti u bazu podataka, a i vama neće biti priznat rad na njima. Znači vezujte se na njihove servere na bar 2-3 dana. Ovo je ujedno i najveća promena u odnosu na Classic, pošto je tamo bilo moguće vratiti rezultate i posle nekoliko meseci, što komplikuje poprilično objedinjavanje podataka na serverima
Berkeley-a. Sada je praksa da se šalju 4 istovetne radne jedinice različitim korisnicima, pri čemu su tri dovoljne za “kvorum” koji obezbeđuje dobijanje kredita za završen posao i slanje završnih podataka u bazu podataka. Ukoliko rezultate vratite za više od 14 dana (što znači da niste bili na net-u 14 dana), sve ono što je vaš računar radio tih dana biće odbačeno. Na ovaj način se u projekat uključuju samo korisnici koji aktivno učestvuju, dok se ostali sa razlogom zapostavljaju. Naravno ukoliko se od 4 poslate jedinice vrate rezultati za samo 2, biće poslata još jedna, a najviše 8 jedinica ukupno, dok se ne skupe 3 validna rezultata za dobijanje kvoruma i slanje na dalju obradu i dobijanje kredita za završen rad. Tako bi trebalo da se rezultat ipak dobije iako iz nekih razloga neki korisnici ne vrate svoje rezultate. Nauka je na prvom mestu...

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...


...Happy crunching...