Systém BOINC je softvérová platforma špeciálne vyvinutá pre distribuované výpočty využívajúca dobrovoľne poskytnuté zdroje počítačov pripojených na internet. Táto infraštruktúra je vhodná na použitie v rôznych projektoch a jedným z nich je práve projekt SETI@home pre ktorý bola vlastne táto platforma vyvinutá.
Tento článok sa zaoberá najmä ozrejmením si všetkých zmien v v projekte SETI@home, nastavením a popisom klienta BOINC a klienta SETI@home.
Samotný názov je skratkou z anglického "Berkeley Open Infrastructure for Network Computing", čo sa dá voľne preložiť ako "Otvorená infraštukrúra pre sieťové výpočty z Berkeley". Tu mi pre úplnosť nedá nespomenúť, čo je to Berkeley. Je to univerzita v Kalifornii v Spojených štátoch. Systém BOINC je teda softvérová platforma špeciálne vyvinutá pre distribuované výpočty, využívajúca dobrovoľne poskytnuté zdroje počítačov pripojených na internet. Táto infraštruktúra je vhodná na použitie v rôznych projektoch a jedným z nich je práve projekt SETI@home, pre ktorý bola vlastne táto platforma vyvinutá. Konkrétne sa budem ďalej venovať práve využitiu uvedenej platformy pre projekt SETI@home, ale v zásade to platí aj pre iné projekty pod touto platformou.
O čo vlastne ide?
Samotný BOINC je systém typu klient-server, čo znamená, že sa skladá z dvoch častí. Vlastne z troch, ale tretia časť, SETI@home klient, nie je priamo sučasťou systému BOINC, je to len jeden z projektov.
Jedna časť beží na servry a stará sa o niekoľko vecí:
- distribuovanie pracovných jednotiek - dobre známych "work unit", skrátene WU, užívateľom zúčastneným na projekte,
- prijímanie už spracovaných WU,
- kontrola a porovnávanie prijatých výsledkov,
- automatická distribúcia samotného klient modulu daného projektu v ktorom sa prevádza samotný výpočet a to je vlastne ten dobre známy klasický SETI@home klient,
- má na starosti aj web rozhranie, ktoré slúži na nastavenie parametrov pre klientov a práve tu si každý účastník môže nastaviť svoj profil, veľkosť zásobníka s WU na svojom počítači a niektoré iné parametre.
Druhá časť beží u klienta, teda na počítači učastníka projektu a má na starosti nasledovné veci:
- komunikáciu so servrom, prijímanie WU a ich odosielanie po ukončení výpočtu,
- sledovanie dostatočného naplnenia zásobníka s WU - pri poklese množstva WU v zásobníku si vyžiada nové WU od servra,
- po zmene konfigurácie na servry sa postará aby sa táto zmena preniesla na klienta, kedže sa skoro všetko nastavuje priamo na servry cez web rozhranie ako to už bolo písané,
- a pochopiteľne zobrazuje informácie o aktuálnom stave, o komunikácii so servrom ale aj o kredite, prípadne dobre známe grafické zobrazenie z klasického šetriča obrazovky ale už v novom kabáte pod grafickým rozhraním OpenGL (DirectX nebolo použité z dôvodu multiplatformovosti projektu BOINC (Windows, UNIX, ..).
Ako to funguje?
Pri prvej návšteve stránky projektu, v tomto prípade SETI@home, na adrese http://setiweb.ssl.berkeley.edu/, je potrebné kliknúť na linku v ľavej časti: "Participate in SETI@home". Pokiaľ ste boli zúčastnení na klasickom projekte SETI@home, tzv. S@H1 (SETI@home 1), je možné využiť informácie zo starého konta, váš profil, príslušnosť k tímu. Vtedy si nové konto aktivujete využitím linky "activate the account", kde následne zadáte mailovú adresu. Na tú vám bude zaslaný nový aktivačný kľúč. Pokiaľ ale k tejto mailovej adrese už nemáte prístup, vaše staré konto sa použiť nedá a musíte si vytvoriť nové. O nič ale neprídete, zrealizované WU v S@H1 sa neprenášajú do SETI@BOINC, keďže tu sa to eviduje úplne inak. Ale o tom neskôr. Jediná vec ktorá by Vás mohla mrzieť je dátum registrácie, nebudete totiž už niekoľkoročný účastník, ale vlastne nováčik. Poznámka: Účty zo S@H1 sa prenášali okolo 15. mája, takže ak ste si zmenili emailovú adresu po tomto termíne, nový systém SETI@BOINC o tom informáciu nemá a tento problém sa podľa oficiálneho vyjadrenia Davida Andersona ani nebude riešiť. V prípade nového účastníka, alebo pokiaľ je problém s prístupom k mailovej schránke, použite linku "Create a new account", kde stačí následne vyplniť pár základných údajov, podobne ako v prípade S@H1 a na vašu emailovú adresu vám bude zaslaný aktivačný kód.
Prvý krok je za nami. Účet je vytvorený. Na dokončenie už len treba stiahnuť BOINC klienta, kliknúť na linku "Download", vybrať si správnu platformu vášho počítača a po stiahnutí spustiť inštaláciu (stiahnutý súbor).
Po nainštalovaní BOINC klienta sú nutné dve veci:
- Cez menu "Settings" nastaviť "Proxy server" pokiaľ je to nutné a to väčšinou presne tak ako to máte nastavené vo vašom internetovom prehliadači. Pokiaľ máte aj napriek dobrému nastaveniu proxy servera stále problém pripojiť sa – použite program Proxomitron, ktorý nájdete v sekcii Stiahnite si.
- Pripojenie k projektu. Konečne sme sa dostali k samotnému SETI projektu! Tiež cez menu "Settings" a voľbu "Attach to Projekt" je treba zadať aktivačný kľúč, ktorý ste po registrácii dostali e-mailom a URL adresu projektu: http://setiathome.berkeley.edu, ktorú ste tiež obdržali e-mailom o registrácii.
Od tejto chvíle, ak všetko prebehlo dobre, ste účastníkom projektu SETI@home a BOINC klient sa spojí so servrom, aby stiahol samotného SETI klienta, čo je vlastne klasický S@H1 klient, avšak upravený pre systém BOINC. Od tejto chvíle máte o SETI klienta postarané, pokiaľ bude novšia verzia, BOINC klient ju automaticky nahradí na vašom disku a nemusíte sa o nič starať.
Je možné sa pripojiť k viacerým projektom a nastaviť pre každý koľko zdrojov z vášho počítača mu chcete venovať.
Následne si BOINC klient vyžiada WU od servra pre váš SETI klient a ten mu poskytne toľko WU, na taký čas, ako si nastavíte na servry. Pokiaľ ste sa tam ešte nedostali tak je to prednastavené na 1 deň.
Po stiahnutí prvého WU hneď spustí výpočet. A teraz podobnejšie k nastaveniam.
Nastavenia
Nastavenia sú hlavne na web stránke vášho účtu ale niektoré sú na BOINC klientovi.
BOINC klient
Hlavné menu - File:
Run Always: klient bude bežať stále bez ohľadu na preferencie nastavené na vašom účte na webe, tam je totiž možné zadefinovať, kedy má klient pracovať a kedy nie.
Run based on prefferences: aktivita klienta sa riadi nastavením vo vašom účte.
Suspend: aktivita je úplne pozastavená.
Disable BOINC Network Access: zakázanie komunikácie so servrom.
Run Benchmarks: spustenie benchmarkov, tieto sú podstatné aby server vedel ako môže klientský počítač zaťažiť. Počas behu benchmarkov sa nedoporučuje nič robiť s počítačom aby boli výsledky čím objektívnejšie. O výsledku sa dá dozvedieť v záložke Messages. Táto položka sa nijak nevzťahuje na váš budúci celkový kredit, ide len o optimálne zásobovanie klienta dátami na spracovanie.
Hide: klient sa skryje do tzv. SystemTray-a čo sú tie malé ikonky vedľa času. Platí aj pre iné OS ako Microsoft Windows, ale toto chovanie sme nemali zatiaľ kde otestovať.
Exit: ukončenie.
Hlavné menu - Settings:
Attach to Project: slúži na pripojenie sa k projektu na ktorom sa užívateľ chce podieľať.
Proxy Server: nastavenie proxy servra, väčšinou rovnako ako pre interntový prehliadač ale niekedy to môže byť iné, doporučuje sa nastaviť tak ako v prehliadači.
Hlavné menu - Help:
About: informácia a verzii BOINC klienta na vašom počítači.
Záložka - Projects:
V tejto záložke je zoznam projektov na ktorých sa systém zúčastňuje. Je tam zobrazený názov projektu, užívateľský účet, kredit, priemerný kredit (zjednodušene povedané je to priemerný nárast kreditu za jeden deň), miera poskytnutých zdrojov pre daný projekt.
Po kliknutí pravým tlačidlom na konkrétny projekt sa zobrazí menu:
Website: presmeruje na stránku projektu.
Update: obnova údajov so servrom, táto voľba je vhodná na manuálne spojenie so servrom, kedy sa obnoví kredit, skontroluje sa či nie je nutné stiahnuť daľšie WU a podobne. Rovnako sa práve touto voľbou oznámi na server po odoslaní už hotových WU, že sú hotové a žiada sa ich spracovanie. Samotné zaslanie hotového WU na server to totiž nerobí automaticky.
Detach: odpojenie od projektu.
Záložka - Work
Tu je zobrazená aktivita WU projektu, názov projektu, aplikácia projektu, názov WU, čas ktorý procesor na danom WU pracoval, priebeh spracovania, koľko času chýba do ukončenia WU, čas, do ktorého je treba WU dokončiť, stav WU.
Pravým tlačítkom myši je možné zobraziť starú známu grafickú reprezentáciu ale teraz v novom šate, prostredníctvom OpenGL v 3D zobrazení.
Záložka - Transfers:
Ako hovorí názov, tu vidno aktuálny prenos WU, či už sťahovanie nových alebo odosielanie hotových.
Pravým tlačítkom je možné manuálne zopakovať pokus o prenos pokiaľ niečo zlyhalo.
Záložka - Messages:
V nej sa zobrazujú správy od servra, príkazy ktoré sa naň posielajú a pokiaľ niečo nefunguje, tak sa práve tu dá väčšinou zistiť, čo sa deje. Takisto aj keď všetko funguje, tak sa to práve na tomto mieste dá "čítať".
Záložka - Disk:
Grafická reprezentácia využitia disku klientom BOINC ako aj jednotlivými projektami.
Webové rozhranie
Toľko teda ku klientovi ktorý beží na vašom počítači. Teraz nás čaká užívateľský účet na web rozhraní, kde sa nastavujú všetky dôležité parametre. Dostať sa naň sa môžete buď priamou adresou alebo cez hlavnú stránku projektu a kliknutím na linku "Your account".
Po zadaní aktivačného kľúča je možné ho zapamätať (pomocou tzv. cookies) aby ste ho nemuseli zadávať stále. Toto sa ale nedoporučuje na verejných počítačoch napríklad v internet kaviarni. Asi nechcete aby vám mohol ktokoľvek meniť vaše nastavenia .
Nastavenia majú niekoľko sekcií:
- Account information: základné informácie o účte,
- Profile: užívateľský profil, dobre známy z predošlej verzie,
- Preferences: nastavenia,
- Account statistics: štatistiky,
- Other: iné informácie.
Ďalej sa budeme venovať nastaveniam, takže sekcii Preferences. Už z podstaty BOINC vyplýva, že sú dve skupiny nastavení. Jedny, "General", sa vzťahujú na samotný systém BOINC a platia pre všetky projekty, na ktoré je užívateľ pripojený a druhé sú len pre daný projekt, v tomto prípade SETI@home.
Nastavenia General
Parametre:
Do work while computer is running on batteries? - Počítač má pracovať aj pokiaľ ide na betérie? Platí hlavne pre notebooky.
Do work while computer is in use? - Má počítač pracovať aj pokiaľ sa používa? Táto voľba vlastne prepína projektového klienta do režinu šetriča obrazovky, spustí sa len keď sa na počítači nič nerobí. Inak pracuje vždy, ale netreba sa obávať, že by spomalil počítač. Nový SETI@home klient totiž pracuje s ešte menšou prioritou ako klasický a využíva len ten čas procesoru kedy procesor počítača nerobí nič iné.
Do work only between the hours of - Tu sa dá nastaviť v ktorom čase má klient pracovať, napríklad mimo pracovného času, alebo len v noci a podobne.
Confirm before connecting to Internet? - Opýtať sa pred pripojením na internet?
Disconnect when done? - Odpojiť po skončení prenosu? Toto nastavenie je relevantné len pre klasické vytáčané dial-up pripojenie cez modem.
Keep enough work on disk to last between - Udržiavať toľko WU na klientovi aby mohol pracovať od X do Y dní. Toto je podstatná voľba, tu sa vlastne nastavuje veľkosť zásobníka na vašom počítači. Kedže maximálny čas, za ktorý po spracovaní jednej WU dostanete pridelený kredit je cca. 14 dní (ak odošlete WU po tomto termíne, WU sa využije tak či tak, ale nedostanete pridelený žiadny kredit), treba tieto parametre nastaviť podľa uváženia. Systém sám práve na základe benchmarkov a ostatných nastavení zistí, koľko WU pošle. Takže sa nenastavuje celkový počet WU v zásobe ale čas, počas ktorého môže klient pracovať offline bez nutnosti sťahovať alebo odosielať dáta. Potom to pekne vidno na klientovi v záložke Messages ako si váš klient žiada od servra X sekúnd práce.
On multiprocessors, use at most – V prípade viacprocesorového počítača môžete nastaviť minimálny počet procesorov, ktoré môže klient použiť.
Write to disk at most every - zapisovať medzivýsledky na disk každých N sekúnd.
Ostatné parametre nie sú až také podstané a preto ich tu nebudem rozvádzať. Podstané je niečo úplne iné. Každý užívateľ má totiž možnosť niekoľkých takýchto nastavení, konkrétne 4 a to podľa toho kde sa počítač nachádza alebo v ktorej skupine je.
Primárna skupina, alebo hlavná. Jej nastavenia sa aplikujú pre počítače, ktoré sú v skupine pre ktorú nie sú špeciálne nastavenia.
Skupina Doma, V práci, V škole. Pre každú skupinu je možné mať iné nastavenie práve týchto parametrov. Zaradenie počítača do danej skupiny sa tiež robí v týchto nastaveniach ale trochu inde.
Nastavenie SETI@home
Parametre:
Resource share - zdieľanie zdrojov. Tu sa nastavuje, koľko percent bude počítač venovať práve tomuto projektu.
Ostatné parametre slúžia na nastavenie vzhľadu klienta:
Graphics preferences,
Color preferences,
URL of background image,
URL of logo image,
povolenie zasielania noviniek emailom Should SETI@home send you email newsletters,
zobrazenie informácií o počítači na web stránke Should SETI@home show your computers on its web site,
a posledná voľba, do ktorej skupiny počítač patrí pokiaľ sa mu žiadna nenastaví Default computer location.
Rovnako aj tieto nastavenie je možné prispôsobit osobitne pre doma, prácu a školu, tak ako spoločné nastavenia.
Nastavenia máme za sebou. Posledná vec sú štatistiky, takže sa dostávame k sekcii "Account statistics" na hlavnej stránke správy užívateľského účtu.
Správa užívateľského účtu
SETI@home member since - údaj odkedy je užívateľ zapojený do projektu.
Total credit - celkový kredit. Tu je potrebné pripomenúť, že kredit sa neráta za počet spracovaných WU ako tomu bolo doposiaľ. Kredit sa po novom počíta podľa celkového množstva spracovaných dát, nie podľa jednotkovej miery vypočítaných WU. Ten inými slovami doslova zobrazuje, aký usilovný je člen zapojený od projektu.
Recent average credit - posledný priemerný kredit za jeden deň.
Pending credit View - prehľaď kreditu ktorý čaká na priznanie. Nový systém ako už bolo spomenuté pracuje tým spôsobom že každý WU sa pošle 3 rôznym účastníkom a až ked všetci traja odošlú výsledky na server, ten ich porovná, spracuje a až potom sa prizná kredit. A práve tu je možné toto sledovať. Ale aj keď sú všetky 3 WU úspešne spracované tak to trvá nejaký ten čas, hlavne zo začiatku, treba mať trpezlivosť. Údaje o kredite sa nestratia.
Team None (find a team) - hľadanie tímu, pripojenie k tímu, prípadne je na tomto mieste zobrazený tím, do ktorého patríte.
Computers View - prehľad počítačov. Tu je možné sledovať ako ktorý počítač pracuje, pokiaľ ich je viac, je čo sledovať. A práve tu je možné daný počítač pridať do skupiny a určiť či je doma, v práci, v škole a podľa toho sa naň budú aplikovať nastavenia. Údaje o počítači zistí systém sám a netreba ich tam dávať. Za zmienku stojí možnosť spojiť dva počítače. Napríklad ak ste medzičasom zmenili procesor, pridali pamäť alebo preinštalovali operačný sytém tak BOINC zdetekuje nový počítač. A práve voľbou "Merge" je možné ich spojiť a evidovať ako jeden.
Results View - prehľad výsledkov zaslaných na server.
Message board posts - príspevky do diskusných fór.
Systém SETI@home/BOINC
Celý systém SETI@home fungujúci na platforme BOINC pozostáva z niekoľkých programov, nazývaných aj moduly, ktoré bežia na niekoľkých počítačoch (na jednom aj niekoľko programov naraz) a zabezpečujú plnú funčnosť celého systému. Akutálny stav týchto programov, servrov na ktorých bežia ale aj stav niektorých zásobníkov je možné sledovať na tejto stránke.
Text "Running" v zelenom políčku znamená že program je funkčný, naproti tomu text "Not running" v červenom znamená že program nie je spustený (to ešte nemusí znamenať problém, niektoré programy sa spúšťajú podľa potreby).
Programy
Data-driven web pages: Verejné web stránky na ktorých generovanie je nutný prístup k databáze. Stránky ako sú fórum, stránky obsahujúce štatistiky, informácie o verziách klienta a podobne. Tieto sú niekedy ručne pozastavené pokiaľ je databáza nefunkčná.
Scheduler: Rozhoduje ktoré pracovné jednotky budú odoslané/prijaté od konkrétneho klienta. Pokiaľ je tento vypnutý, nie je možné odoslať ani prijať žiadnu pracovnú jednotku.
Feeder: Plní zásobník Schedulera s pracovnými jednotkami ktoré su pripravené na odoslanie ku klientom. Scheduler je dostatočne vyťažený komunikáciou s klientami a preto túto činnosť musí vykonávať tento modul.
File_deleter: Maže vstupné/výstupné súbory ktoré už nie sú potrebné. Tento program sa stará o to aby boli upload/download disky tak vyčistené ako je to možné.
Transitioner: Udžiava informácie o stavoch a vzťahoch medzi pracovnými jednotkami a výsledkami. Zjednodušene, eviduje informácie o všetkých výsledkoch na ktorých sa pracuje a snaží sa o ich následné spracovanie. Stále sa dookola pýta otázky: Je táto pracovná jednotka pripravená na odoslanie? Už bol prijatý tento výsledok? Je to správny výsledok? Môže sa zmazať? Keďže je stále veľké množstvo výsledkov a jednotiek na ktorých sa pracuje, je potrebné aby bolo spustených niekoľko týchto modulov súčastne aby sa udržal nepretržitý tok pracovných jednotiek a výsledkov. "Transitioner queue" (zásobník tohoto modulu) hovorí koľko jednotiek/výsledkov je v zásobníku a čakajú na spracovanie. Veľké číslo znamená že nastal problém v servrovom systéme.
Sah_validate: Potvrdzuje SETI@home výsledky tým že porovnáva prijaté výsledky od niekoľkých užívateľov. Pokiaľ bol prijatý dostatočný počet výsledkov jednej pracovnej jednotky a výsledky sú rovnaké tak pridelí kredit pre všetkých zúčastnených užívateľov. Jeho zásobník, "Validator queue", hovorí koľko výsledkov momentálne čaká na kontrolu a pridelenie kreditu.
Sah_assimilator: Vyberá vedecké informácie zo skontrolovaných výsledkov a vkladá ich do hlavnej databázy projektu SETI@home kde sa ďalej analyzujú.
Sah_splitter: Číta pásky (alebo ich obrazy na disku) ktoré obsahujú surové dáta z rádioteleskopu a vytvára pracovné jednotky pre BOINC/SETI@home klientov. Minimálne jeden je potrebný aby sa produkovali pracovné jednotky a to aj väčšinou stačí.Pokiaľ je spustený len jeden tak to znamená že je snaha minimalizovať záťaž na upload/download disky.
To je všetko. Niektorým možnostiam som sa možno nevenoval dostatočne a preto privítam akékoľvek námety a pripomienky ktoré následne zakomponujem do tohoto dokumentu.
A ako sa zaradiť no nášho tímu? Stačí klinúť na linku.
Ďalšie informácie o BOINC je možné nájsť na http://slavko.sk/boinc
- Ak chcete pridať komentáre, tak sa musíte prihlásiť
- prečítané 17883x