Domov
Novinky
Projekt
Archív ?lánkov
Optimalizácia
Návody
Galéria
Stiahnite si
Odkazy
Diskusné fórum
Fórum - archív
Vyh¾adávanie
TO-DO
Kontakt

BOINC.SK


Od 1.1.2002


Astronomick
snmok
da

APOD






Page Rank
 
 
Hodnotenie èinnosti plánovacích postupov pre dobrovo¾nícke výpoèty
Derrick Kondo1 David P. Anderson2 John McLeod VII3

1INRIA, France 2University of California at Berkeley, U.S.A. 3Sybase Inc., U.S.A.

Anotácia

BOINC, stredne chránený systém pre dobrovo¾nícke výpoèty, dovo¾uje hostite¾om pripojenie k viacerým projektom. Každý hostite¾ periodicky žiada prácu zo servera projektu a vykonáva prácu. Tento proces zahròuje štyri súvisiace postupy:

  1. spustite¾né úlohy na hostite¾ovi, èo urobi?

  2. kedy a z ktorého projektu by mal hostite¾ žiada ïalšiu prácu?

  3. ko¾ko jednotiek by mal server posla v odpovedi na danú žiados?

  4. ako odhadnú zostávajúci èas výpoètu úlohy?

V tomto èlánku zvažujeme nieko¾ko alternatív pre každý z týchto postupov. Použitím simulovania, študujeme rôzne kombinácie postupov, porovnávame ich na základe nieko¾kých vykonaní metriky a v rozsahu parametrov, takých ako premenlivos trvania úlohy, nepresný hranièný termín, a poèet pripojených projektov.

1 Úvod

Dobrovo¾nícky výpoèet je forma distribuovaného výpoètu, v ktorom široká verejnos dobrovo¾níkov spracováva a akumuluje zdroje pre výpoèet projektov. Ranné dobrovo¾nícke výpoètové projekty zahàòajú Great Internet Mersenne Prime Search [12] a Distributed.net [1]. BOINC (Berkeley Open Infrastructure for Network Computing - Otvorená infraštruktúra pre sieové výpoèty z Berkeley) je stredne chránený systém pre dobrovo¾nícky výpoèet [6, 3]. BOINC projekty sú nezávislé; každý má svoj vlastný server, aplikácie a úlohy. Dobrovo¾níci sa podie¾ajú èinnosou softvéru BOINC klienta na svojich poèítaèoch (hostite¾och). Dobrovo¾níci môžu pripoji každého hostite¾a k hociktorému súboru projektov. Aktuálne je okolo 40 projektov založených na BOINC a okolo 400,000 dobrovo¾níckych poèítaèov vykonáva priemerne viac než 500 TeraFLOPs.

BOINC softvér pozostáva zo zložiek klienta a servera. BOINC klient spúša aplikácie projektu, a vykonáva CPU plánovanie (implementované na vrchol lokálneho plánovaèa operaèného systému). Všetky sieové komunikácie v BOINC sú spúšané klientom; tento periodicky vyžaduje jednotky od serverov projektov, do ktorých je pripojený. Niektorí hostitelia majú prerušované fyzické sieové pripojenia (napríklad, prenosné poèítaèe alebo tie s pripájaním cez modem). Také poèítaèe sa môžu pripoji len každých nieko¾ko dní, a BOINC sa pokúša naèíta dostatok práce na "zamestnanie" poèítaèa až do nasledujúceho pripojenia.

Tento proces získavania a vykonávania práce zahròuje štyri súvisiace postupy:

  1. CPU plánovanie (CPU scheduling): z aktuálne spustite¾ných jednotiek, ktorú spusti?

  2. Sprístupnenie práce (Work fetch): kedy žiada projekt o ïalšiu prácu, ktorý projekt žiada, a ako ve¾a práce požadova?

  3. Odoslanie práce (Work send): keï projekt prijíma požiadavku práce, aké jednotky by mal posla?

  4. Odhad èasu dokonèenia (Completion time estimation): ako odhadnú zostávajúci CPU èas úlohy?

Tieto postupy majú ve¾ký vplyv na výkonnos projektov založených na BOINC. Pretože štúdium týchto postupov na mieste je obtiažne, vyvinuli sme simulaèný program, ktorý modeluje BOINC klienta a súbor projektov. Tento simulaèný program sme použili na porovnanie nieko¾kých kombinácií postupov plánovania, v rozsahu parametrov takých ako premenlivos trvania úlohy, nepresný hranièný termín, a poèet pripojených projektov.

So simulaèným programom sú naše hlavné ciele ukáza efektivitu postupov plánovania v scenároch predstavujúcich aktuálne naèítanie práce projektu, a tiež hypoteticky extrémnych scenároch ktoré odrážajú schopnos plánovaèa zaobera sa naèítaním novej ïalšej jednotky.

Zvyšok èlánku je usporiadaný nasledovným spôsobom. V èasti 2, opisujeme rôzne postupy plánovania podrobne. Potom v èasti 3, podrobne opisujeme simulaèný program a jeho vstupné parametre. V èasti 4, opisujeme našu metriku pre hodnotenie rôznych aspektov každého postupu plánovania. V èastiach 5 a 6, predstavujeme výsledky nášho hodnotenia a ich rozvinutie. V èasti 7, porovnávame našu prácu s ïalšími príbuznými prácami. Koneène, v èasti 8, rekapitulujeme hlavné zhrnutia tohoto èlánku.

2 Detaily postupu plánovania

Postupy plánovania majú nieko¾ko vstupov. Prvým sú hardvérové charakteristiky hostite¾a, také ako poèet procesorov a porovnávacie testy. Klient h¾adá rôzne charakteristiky použitia, také ako efektívny podiel (podiel doby spusteného BOINC a doby dovoleného výpoètu), a štatistiky jeho sieovej pripojite¾nosti.

Druhým sú užívate¾ské preferencie. Tieto zahàòajú:

  • Zdroje poskytované pre každý projekt.

  • Obmedzenia pre využívanie procesora: èi poèíta pokia¾ je poèítaè používaný, maximálny poèet CPU pre používanie, a maximálny podiel CPU èasu pre používanie (dovo¾uje používate¾ovi zredukova zahrievanie CPU).

  • Interval pripojenia (ConnectionInterval): minimálna doba medzi periódami aktivity siete. Toto dovo¾uje užívate¾ovi poskytnú "tip" o tom, ako èasto sa pripája, a to dovo¾uje modemu používate¾a poveda BOINCu ako èasto ho má žiada o automatické pripojenie.

  • Interval plánovania (SchedulingInterval): "èasový interval" plánovaèa CPU BOINC klienta (implicitná hodnota je jedna hodina).

  • Zásoba práce (WorkBufMinDays): ko¾ko práce do zásobníka.

  • Prídavná zásoba práce (WorkBufAdditional): ko¾ko práce do zásobníka okrem WorkBufMinDays.

Koneène, každá úloha (tj. pracovná jednotka) má nieko¾ko projektom špecifikovaných parametrov, vrátane odhadu poètu jej operácií s pohyblivou rádovou èiarkou, ako aj hranièný termín, do ktorého by mala by odoslaná. Väèšina BOINC projektov používa nieko¾konásobný výpoèet, v ktorom dva alebo viac prípadov každej úlohy sú spracované na rozdielnych hostite¾och. Ak hostite¾ nenavráti úlohu do jej hranièného termínu, užívate¾ obyèajne nedostane kredit za úlohu. Budeme študova dva alebo tri varianty každého postupu, ako je opísané nižšie.

2.1 Postupy plánovania CPU

CS1: cyklická obsluha rozvrhovania èasu medzi projektmi, váženého pod¾a ich podielu zdrojov.

CS2: simulácia váženej cyklickej obsluhy (round-robin - RR) plánovania, identifikujúc úlohy, ktoré nestihnú svoje hranièné termíny. Naplánuje teda úlohy s najskorším hranièným termínom najskôr (earliest deadline first - EDF). Ak sú zostávajúce CPU, naplánuje ïalšie úlohy použitím váženej cyklickej obsluhy.

2.2 Postupy volania práce

WF1: drža dostatok práce stojacej vo fronte postaèujúcej pre WorkBuf-MinDays+WorkBufAdditional, a rozdeli túto frontu medzi projekty pod¾a podielu zdrojov, aby každý projekt mal vždy prinajmenšom jednu úlohu rozbehnutú, alebo stojacu vo fronte.

WF2: udržiava "dlhodobý dlh" práce pre každý projekt. Použitie simulácie váženej cyklickej obsluhy k odhadu jeho CPU schodku. Vyvola prácu od projektu pre ktorý je dlh - manko najväèší. Zabráni opätovnému privolávaniu práce od projektu s "napnutým" hranièným termínom. Detaily tohoto postupu sú dané v [14].

2.3 Postupy posielania práce

WS1: daná požiadavka na X sekúnd práce, pošle súbor úloh ktorých odhadovaná doba výpoètu (založená na FLOPS odhadoch, porovnávacích testoch, atï.) je najmenej X.

WS2: správa žiadosti obsahuje zoznam všetkých rozpoèítaných úloh na hostite¾ovi, vrátane ich hranièných termínov a èasov dokonèenia. Pre každého "kandidáta" úlohy J, robí EDF simuláciu aktuálnej pracovnej náplne s J pridanou. Pošle J len ak táto vyhovuje jej hraniènému termínu, všetky úlohy ktoré aktuálne vyhovujú ich hranièným termínom pokraèujú tak aby boli dokonèené, a všetky úlohy, ktoré nestihnú svoje hranièné termíny, ich ešte viac "nezmeškávali".

2.4 Postupy odhadu dokonèenia úlohy

JC1: BOINC aplikácie hlásia ich vykonané èasti periodicky v priebehu výpoètu. Spo¾ahlivos odhadu založeného na vykonanej èasti zvyšuje pravdepodobnos s postupom úlohy.

Preto, pre úlohy v priebehu BOINC používa odhad FA + (1 - F)B, kde F je vykonaná èas, A je odhad založený na uplynutom CPU èase a vykonanej èasti, a B je odhad založený na porovnávacích testoch, výpoète s pohyblivou rádovou èiarkou, užívate¾ských preferenciách, a CPU úèinnosti (stredná hodnota prevodového pomeru CPU èasu k reálnemu èasu pre tento projekt).

JC2: udržova pre každý projekt korekèný faktor trvania (duration correction factor - DCF), odhad prevodového pomeru efektívneho CPU èasu k pôvodne odhadovanému CPU èasu. Toto je vypoèítané konzervatívnym spôsobom; zvýšenia sa odzrkadlia okamžite, ale zníženia sú exponenciálne vyhladené.

"úplný" postup je alternatíva každého dielèieho postupu (napríklad, CS2_WF2_WS2_JC2).

3 Scenáre plánovania

Tieto postupy plánovania vyhodnocujeme použitím simulaèného programu BOINC klienta. Simulaèný program imituje logiku CPU plánovania a postupy volania práce klientom presne pod¾a zdrojového kódu samotného. Tento bol vhodne vyrobený pretvorením zdrojového kódu BOINC klienta tak, že kód plánovaèa je naprosto oddelený od kódu požadovaného pre pripojenie do siete a sprístupnenia pamäte. Ako taký, sa simulaèný program pripojí k reálnemu BOINC kódu plánovania s malou modifikáciou. V skutoènosti, len kód pre sprístupnenie siete (tj. RPC pre nadviazanie kontaktu s projektom a dátovými servermi) je nahradený simulaèným testovacím kódom. Teda, logika plánovania a skoro celý zdrojový kód simulovaného klienta sú identické s reálnym.

Simulaèný program dovo¾uje špecifikova nasledovné parametre:

  • Pre hostite¾a:

    • Poèet CPU a rýchlos CPU.

    • Podiel èasu k dispozícii

    • Trvanie intervalov dostupnosti ako exponenciálne rozdelenie s parametrom λavail

    • Interval pripojenia - ConnectionInterval

  • Pre klienta:

    • Interval plánovania CPU

    • Minimálna zásoba práce - WorkBufMinDays, dodatoèná zásoba práce - WorkBufAdditional

  • Pre každý projekt:

    • Podiel zdrojov

    • Medza latencie (tj. hranièný termín úlohy)

    • Odhad FLOPs - poètu operácií úlohy

    • Aktuálne rozdelenie (normálne) FLOPs úlohy


Parameter

Hodnota

Trvanie

100 dni

Delta

60 sekúnd

Tabu¾ka 1. Parametre simulaèného programu.


Parameter

Hodnota

podiel zdrojov

100

medza latencie

9 dní

odhad FLOPs úlohy

1,3.1013 (3,67 hodín na urèenom 3GHz hostite¾ovi)

priemer FLOPs úlohy

1,3.1013 (3,67 hodín)

std dev (smerodajná odchýlka) FLOPs

0

Tabu¾ka 2. Parametre projektu.


Každá kombinácia parametrov je nazvaná scenár.

Pri simulaèných experimentoch používame hodnoty ukázané v tabu¾kách 1,2,3 a 4 ako základné vstupné parametre do simulaèného programu. V našich simulaèných experimentoch variujeme nastavenie jedného alebo malej podmnožiny týchto parametrov, pri ponechaní konštantných hodnôt ostatných parametrov. To je vhodné pre identifikovanie (extrémnej) situácie, kde konkrétny postup plánovania pracuje zle.

Hodnoty ukázané v týchto tabu¾kách sú vybraté tak realisticky, ako je možné použitím dát vybratých z reálnych projektov, pretože presnos simulácie silno závisí na týchto hodnotách a ich proporciách vzh¾adom k ostatným. Pre parametre hostite¾a a projektu používame stredné hodnoty zistené z reálnych BOINC projektov ako je opísané v [7, 2]. Pre parametre klienta používame implicitné hodnoty v reálnom klientovi.


Parameter

Hodnota

Poèet CPU

2

priradená rýchlos CPU vo FLOPS

1.109

podiel èasu k dispozícii

0,8

λavail

1,000

interval pripojenia ConnectionInterval

0

Tabu¾ka 3. Parametre hostite¾a.


Parameter

Hodnota

Perióda plánovania CPU

60 minút

Základná zásoba WorkBufMinDays

0,1 dòa (2,4 hodiny) )

Dodatoèná zásoba WorkBufAdditional

0,25 dòa (6 hodín)

Tabu¾ka 4. Parametre klienta.


4 Vykonávanie metriky

Používame nasledovné metriky v hodnotení postupov plánovania:

  1. Neèinnos (Idleness): nevyužitý podiel z celkového CPU èasu k dispozícii, pretože nie sú žiadne spustite¾né úlohy. Tento je v rozmedzí [0;1], a je v ideálnom prípade nula.

  2. Strata (Waste): podiel CPU èasu využitého úlohami, ktoré nestihli svoj hranièný termín.

  3. Nedodržanie podielu (Share violation): miera presnosti rešpektovania podielov zdrojov užívate¾a , kde 0 je najlepšie a 1 je najhoršie.

  4. Monotónnos (Monotony): obrátená miera toho, ako èasto hostite¾ prepína medzi projektmi: 0 je tak èasto ako je možné (daný interval plánovania a iné faktory) a 1 znamená bez prepínania. Táto metrika reprezentuje skutoènos, že ak dobrovo¾ník venoval rovnaký podiel zdrojov pre dva projekty, a jeho poèítaè navštevuje èinnosou len jeden z nich po dlhú dobu, bude neuspokojený.

5 Výsledky a diskusia

5.1 Postupy plánovania CPU

V tejto èasti porovnávame postup ktorý používa len cyklickú obsluhu rozvrhovania èasu (CS1_WF2_WS2_JC2) s postupom, ktorý bude potenciálne plánova (niektoré) úlohy v EDF móde, ak ich hranièné termíny sú v riziku nestihnutia (CS2_WF2_WS2_JC2).

Pre simulovanie reálneho stiahnutia úloh z projektov musíme zaisti, aby existovala zmes projektov s množstvom ve¾kostí úloh a hranièných termínov. Preto definujeme termín zmes (mix) nasledovným spôsobom. Sahovanie úloh má mix M ak obsahuje M projektov, a klient je registrovaný každým projektom Pi, kde 1 ≤ i ≤ M, a každý projekt Pi má nasledovné charakteristiky:

priemer FLOPs na úlohu = i × FLOPs základný

medza oneskorenia = i × medza oneskorenia základná

podiel zdrojov = i × podiel zdrojov základný,

kde základné hodnoty sú hodnoty definované v tabu¾kách 1, 3, a 4.


obr-1-a

(a) strata

obr-1-b

(b) monotónnos projektu


obrázok 1. Plánovanie CPU


Variujeme M od 1 do 20 pre každú simuláciu sahovania úloh. Výsledky sú ukázané v obrázku 1. Pozorujeme, že CS2_WF2_WS2_JC2 èasto prevyšuje CS1_WF2_WS2_JC2 o viac než 10% kvôli strate keï mix projektu je väèší ako 3. Zvýšený výkon CS2_WF2_WS2_JC2 môže by vysvetlený zmenou na EDF mód, keï hranièné termíny úloh sú v riziku.

Pre neèinnos, nedodržanie podielu, a monotónnos projektu, výkonnos CS2_WF2_WS2_JC2 a CS1_WF2_WS2_JC2 je približne ekvivalentná. nedodržanie podielu je nízke, obyèajne pod 0,10, a rastie len nepatrne s poètom projektov a kombinácií (mixu). Pokia¾ ide o neèinnos, oba postupy majú výrazne nízke (blízko nuly) neèinnosti pre hocijaký poèet projektov a kombinácií (mixu). Naopak, monotónnos projektu inklinuje k znaènému zvýšeniu s rastom mixu projektu. Zisujeme, že pomerne dlhé úlohy môžu èasto spôsobova monotónnos, hlavne keï úloha je v nebezpeèenstve nestihnutia hranièného termínu a plánovaè prepne na EDF mód aby zaistil jej vèasné dokonèenie. V skutoènosti, vzrast monotónnosti s dåžkou úlohy je nutný ale akceptovate¾ný, daný dôležitejším cie¾om stihnutia uzávierky úlohy a minimalizova stratu. Teda, v takmer všetkých prípadoch, postup CS2_WF2_WS2_JC2 kombinujúci EDF s RR pôsobí rovnako ako CS1_WF2_WS2_JC2.

Ako ved¾ajší úèinok z týchto experimentov, determinujeme rozšírite¾nos BOINC klienta vzh¾adom na poèet projektov. (Jeden by sa mohol spýta, ako sa užívate¾ môže zapísa do 20 projektov. Tento scenár môže ve¾mi dobre vzniknú, keïže poèet projektov rýchlo stúpa, a myšlienka projektu "spoloèného fondu" bola navrhnutá, kde projekty sú zoskupené istou charakteristikou [napríklad: nezárobkový, výpoètová biológia], a užívate¾ský register pre fondy nielen pre projekty.)

Zisujeme, že dokonca keï poèet projektov sa blíži k 20, strata, neèinnos, a nedodržanie podielu zostávajú relatívne konštantné v celom rozsahu medzi 1-20. Výnimkou je monotónnos projektu, ktorá stúpa rýchlo, ale je akceptovate¾ná. Teda vyvodzujeme, že plánovaè "ladí" s poètom projektov. Vo zvyšku tohoto paragrafu, preskúmame ïalej CS2_WF2_WS2_JC2 postup vzh¾adom na nepresný hranièný termín a ve¾kos zásobníka.


5.1.1 Vo¾ný termín uzávierky


obr-2

Obrázok 2. Vo¾nos


V tejto èasti vyšetríme citlivos CS2 WF2 WS2 JC2 na medzu èakacej doby vzh¾adom k priemernej dobe výpoètu úlohy na danom poèítaèi. Vo¾nos (slack) definujeme ako podiel hranice èakacej doby a priemeru FPOPS odhadu násobeného prevrátenou hodnotou rýchlosti hostite¾a. Potom spustíme simulácie testovania plánovaèa so samostatným projektom a rozsahom hodnôt vo¾nosti od 1 do 60. Vo¾nos 1 znamená, že medza latencie je približne ekvivalentná dobe výpoètu. Vo¾nos 60 znamená, že hranica latencie je 60 krát väèšia než priemerná doba výpoètu na danom poèítaèi. My vyberieme túto maximálnu hodnotu pretože ona v skutoènosti reprezentuje strednú vo¾nos spomedzi všetkých existujúcich BOINC projektov [7]. To jest, spracovanie úloh v mnohých projektoch je rádovo v hodinách, kde ako medza latencie je v termíne dni.

Obrázok 2 ukazuje výsledok simulácie testovania vo¾nosti. Samozrejme, podiel nedodržania a monotónnosti sú 0 pokia¾ máme len samostatný projekt. Neèinnos je 0 kvôli malému intervalu pripojenia a tak plánovaè èiní perfektnú službu vyžadovania práce. Avšak, inklinuje k privolaniu viac práce, než môže vypoèíta. Zisujeme, že pre vo¾nos 1 je strata 1, a rýchlo klesá k 0 keï vo¾nos dosahuje 5. Strata príslušná k hodnotám vo¾nosti 2, 3, 4, a 5 je 0,75; 0,24; 0,02 a 0 v tomto poradí. Pod¾a toho, pre hodnoty vo¾nosti väèšie alebo rovnajúce sa 5, strata ostáva pri 0. Po starostlivej prehliadke našich experimentov simulácie zisujeme, že nevyužite¾nos hostite¾a (nastavená na 20% èasu) je ten hlavný faktor, ktorý spôsobuje vysokú hodnotu straty, keï je vo¾nos blízko 1. To jest, ak hostite¾ je nevyužite¾ný 20% èasu, potom 3,67 hodiny práce na danom poèítaèi zaberie 4,58 hodiny v priemere a pravdepodobne prevýši medzu latencie 3,67 hodiny.

Iný dôvod straty je celková ve¾kos zásobníka práce, ktorá je nastavená na implicitnú hodnotu 0,35 (= 0,25 + 0,1) dòa. Keï ve¾kos zásobníka práce sú špecifikovaná, klient zaisuje, aby privolával najmenej takú hodnotu práce pri každej žiadosti. Nastavenie hodnoty ktorá je príliš vysoká, môžu ma za následok privolanie príliš mnoho práce, ktorá nemôže by dokonèená do uzávierky. Túto záležitos ïalej vyšetríme v nasledujúcej sekcii.


5.1.2 Ve¾kos zásobníka

Na podporu našej hypotézy , že ve¾kos zásobníka je závažný faktor ktorý prispieva k strate, sme vykonali simulácie s rozdielny ve¾kosami zásobníka. Predovšetkým sme zisovali ako strata variuje ako funkcia ve¾kosti zásobníka a vo¾nosti. Menili sme vo¾nos od 1 do 5, èo zodpovedalo rozsahu hodnôt vo¾nosti na obrázku 2, èo konèilo kladnou stratou (okrem vo¾nosti 5, kde strata bola 0). Variovali sme ve¾kos zásobníka medzi cca 1 a 8,4 hodiny práce. Maximálna hodnota v tomto rozsahu zodpovedá prednastavenej hodnote ve¾kosti zásobníka používanej klientom, tj. 0,35 dòa, a používanej pre experimenty s vo¾nosou v èasti 5.1.1.

obr-3

Obrázok 3. Strata ako funkcia minima ve¾kosti zásobníka a vo¾nosti


Obrázok 3 ukazuje výsledok našich simulácií. Rozdielne farby každého segmentu krivky zodpovedajú rozdielnym hodnotám straty. Keï ve¾kos zásobníka je v jeho maximálnej hodnote, vyplývajúca strata ako funkcia vo¾nosti je identická so stratou ukázanou na obrázku 2. Ako sa ve¾kos zásobníka znižuje, strata (a poèet zmeškaných uzávierok) dramaticky klesá. Pre prípad kde je vo¾nos 2, strata je konštantná pre ve¾kosti zásobníka medzi 5 a 7 hodinami. Je to jednoducho preto, že ve¾kosti úloh sú okolo 3,67 hodiny, a tak prírastkové zvyšovania ve¾kosti zásobníka nemôžu zmeni poèet úloh stiahnutých zo servera.

Hoci zmenšovanie ve¾kosti zásobníka môže tiež zníži stratu, výnimka je keï vo¾nos je 1; strata ostáva na 1 bez oh¾adu na ve¾kos zásobníka. Je to kvôli nevyužite¾nosti hostite¾a a jeho vplyvu na dobu výpoètu úlohy. To má menší vplyv, keï vo¾nos dosahuje 2, kedy je hostite¾ nevyužite¾ný len 20% èasu, a zodpovedá spomaleniu menej než 2.

Vyvodzujeme, že zmenšovanie ve¾kosti zásobníka práce môže ma za následok obrovské zníženie straty, ale výhody sú limitované dostupnosou klienta. Avšak, jeden nemôže nastavi ve¾kos zásobníka práce ¾ubovo¾ne nízku, pretože to by mohlo ma za následok èasté zahltenie servera so žiadosami o prácu od klientov. Budeme vyšetrova tieto zaujímavé problémy v ïalšej práci.

5.2 Postupy vyžadovania práce

V tejto èasti porovnáme dva spôsoby urèovania ktorý projekt má požadova ïalšiu prácu, a ko¾ko práce má požadova. Keï sa vytvára požiadavka práce, prvý postup (CS2_WF1_WS2_JC2) sa pokúša zaisti, aby fronta práce bola naplnená požadovaním práce pod¾a poskytnutých zdrojov, aby prinajmenšom jedna jednotka bola poèítaná, alebo stála vo fronte. Druhý postup (CS2_WF2_WS2_JC2) stanovuje, aký je "dlhodobý dlh" prisúdený každému projektu, a požaduje prácu od projektu s najväèším rozdielom medzi dlhom a naplnením. (Podrobnosti o každom postupe môžete nájs v [14].)

Zisujeme, že strata pre CS2_WF1_WS2_JC2 inklinuje k dramatickému zvýšeniu s mixom projektov (pozri obrázok 4a), a že narušenie podielu je relatívne vysoké (pozri obrázok 4b), keï úlohy pre projekty s tesnými uzávierkami sú stiahnuté, a predbiehajú iné menej naliehajúce jednotky, spôsobujúc, že tieto premeškajú svoje uzávierky. Naopak, CS2_WF2_WS2_JC2 zlepšuje stratu o takmer 90% a nedodržanie podielu o takmer 50%, pretože postup sa vyhýba privolávaniu práce z projektov s tesnými uzávierkami. (Neèinnos a monotónnos pre oba postupy boli skoro identické.)


obr-4-a

a) strata

obr-4-b


b) nedodržanie zdrojov


Obrázok 4. Vyžadovanie práce


5.3 Postupy odosielania práce

V tejto èasti porovnávame dva postupy pre odoslanie práce zo servera. Prvý postup (CS2_WF2_WS1_JC2) jednoducho posiela množstvo práce žiadanej klientom. Druhý postup (CS2_WF2_WS2_JC2) kontroluje prostredníctvom simulácie EDF priamo serverovou stranou, èi by nanovo žiadané úlohy vyhoveli ich uzávierkam, èi všetky rozpoèítané úlohy na klientovi by stále stihli svoje uzávierky, a èi všetky rozpoèítané úlohy na klientovi, ktoré nestihnú svoje uzávierky, nespôsobia zmeškanie pre ïalšie.

Zistili sme, že druhý postup posielania práce CS2_WF2_WS2_JC2 je výhodný len keï je relatívne mnoho úloh na klientovi (majúcom ve¾ký zásobník práce stojacej vo fronte), a ak množstvo práce na úlohu má vysokú premenlivos. Toto by mohlo vytvori "ideálny" stav tam, kde by nové úlohy mohli preruši rozpoèítané úlohy. A tak k ukázaniu efektivnosti postupov posielania práce sme zvýšili interval pripojenia a ve¾kos zásobníka práce na 2 dni, variovali smerodajnú odchýlku FPOPS na úlohu faktorom s relatívne k priemernej ve¾kosti úlohy, a vytvorili dva projekty s rovnakými podielmi zdrojov a ve¾kosou úloh, ktoré sa odlišujú faktorom 10.

Na obrázku 5 variujeme smerodajnú odchýlku s ve¾kosti úlohy faktorom s medzi 1 a 1000. Zisujeme, že CS2_WF2_WS2_JC2 èasto nedosahuje CS2_WF2_WS1_JC2 o 20% alebo viac z h¾adiska straty, za cenu neèinnosti, ktorá je èasto vyššia o 20% alebo viac. Hlavný dôvod pre tento výsledok je, že CS2_WF2_WS2_JC2 je prirodzene konzervatívnejší v odoslaní úloh ku klientovi, èo redukuje nestihnutie uzávierky, ale na druhej strane spôsobuje èastejšiu neèinnos.

obr-5-a

a) strata


obr-5-b

b) Neèinnos


Obrázok 5. Odosielanie práce

5.4 Postupy odhadu dokonèenia úlohy

Na vytvorenie a formovanie jednotiek projektu, vývojár aplikácie musí poskytnú odhad množstva práce v FPOPS na jednotku. Tento odhad je na druhej strane používaný plánovaèom klienta spolu s hranièným termínom jednotky na formovanie žiadostí práce a na urèenie akú prácu naplánova ïalej. Avšak, odhady užívate¾a sú èasto notoricky mimo od aktuálnej hodnoty práce. Toto bolo evidentné v dobrovo¾níckych systémoch spracovaniach údajov ako BOINC a tiež pri využívaní tradièných MPP [13]. Plánovaè ako taký, používa korekèný faktor trvania na kompenzovanie hocijakej chyby v odhade, založený na histórii vypoèítaných úloh.

V tejto èasti meriame dopad použitia DCF na rozpätie chýb odhadu porovnaním CS2_WF2_WS2_JC1 s CS2_WF2_WS2_JC2.

Nech f je èinite¾ chyby taký, že odhadovaná užívate¾ova práca na jednotku je daná aktuálnou prácou delenou f. Keï f = 1, odhad užívate¾a zodpovedá aktuálnemu presne. Keï f > 1, potom odhad užívate¾a podceòuje množstvo reálnej práce.

Pozorujeme, že spoèiatku, keï odhad zodpovedá skutoènosti, potom ako postup s DCF (keï je nastavený k vyrovnaniu hocijakej chyby) tak aj postup bez DCF (keï je vždy nastavený na 1) majú identický výkon v zmysle straty (vid obrázok 6). Pre vyššie chybové èinitele, postup s DCF znaène zaostáva za postupom, ktorý ho vynecháva. Strata pre DCF ostáva pozoruhodne konštantná bez oh¾adu na èinite¾ chyby, kým strata pre postup bez DCF rýchlo stúpa. V skutoènosti, strata dosahuje takmer 1, keï je odhad práce 4 krát menší než skutoèná. Pokia¾ ide o rýchlos konvergencie k správnemu DCF, po podrobnej kontrole krivky našej simulácie sme zistili, že DCF konverguje priamo k správnej hodnote po poèiatoènom volaní práce. (Pre struènos ukazujeme len obrázok pre stratu; všetky ïalšie hodnoty pre neèinnos, narušenie podielu, a monotónnos projektu boli nulové.)


obr-6


Obrázok 6. Dokonèenie jednotky

6 Umiestnenie

Plánovaè klienta bol zrealizovaný v C++ a rozmiestnený na asi milióne hostite¾ov cez Internet [6, 3]. Jedno z primárnych hodnotení pre èinnos v reálnych nastaveniach je spätná väzba od užívate¾ov o postupoch plánovania. Užívatelia majú nieko¾ko spôsobov priamo alebo nepriamo monitorova plánovanie klienta, vrátane schopnosti zaznamena aktivity plánovaèa klienta s jednoduchým oznaèením ladenia, alebo hodnotou kreditu im prideleného. (Všeobecne, projekty priznajú len kredit za prácu vyhotovenú pred uzávierkami.) Od zavedenia postupov zodpovedajúcich CS2_WF2_WS2_JC2, poèet sažností poslaných BOINC vývojárom bol znížený na asi jednu za mesiac. Tieto sažnosti sa prièítajú najmä názorovým rozdielom ako by mal BOINC plánovaè pracova, a nie zvl᚝ podstatné pre hodnotenie èinnosti ako je definovaná v èasti 4.

7 Súvisiace práce

Dvaja autori tohto èlánku nedávno podrobne opísali rovnaké postupy plánovania v [14]. Ale tam bolo malé hodnotenie èinnosti, pretože študujú. Mimo tejto práce, výpoètové mriežky [10, 11] sú najbližšie hlavnej èasti skúmania týkajúceho sa dobrovo¾ných výpoètov, a plánovanie v nestálosti a rôznorodosti bolo vyšetrené intenzívne v oblasti skúmania mriežky [4, 5, 8, 9]. Avšak je ve¾a dôvodov preèo tieto stratégie sú neaplikovate¾né na dobrovo¾né výpoèty.

Prvý, rozvrhovacie algoritmy a postupy èasto predpokladajú, že práca môže by viazaná na zdroje samotné, èo v dobrovo¾ných výpoètoch je vylúèené bezpeènostnými bránami a NAT - prekladmi sieových adries. V dôsledku toho plán urèený postupom pre prostredia mriežky nemôže by úspešne rozvinutý, pretože zdroje sú nedosiahnute¾né zo servera priamo.

Druhý, v dobrovo¾ných systémoch spracovania údajov sú viaceré faktory (a èasto rádovo) viac nestále a rôznorodé než grid systémy, a teda èasto vyžadujú nový súbor stratégií pre riadenie zdrojov a plánovanie.

Koneène, pod¾a našej znalosti, práca predstavená tu je prvá prípad, kde plánovanie pre dobrovo¾ný výpoèet sa deje v mieste zdrojov samotných, a kde plánovaè je hodnotený s novým súborom metriky, menovite stratou spôsobenou zmeškaním uzávierky, neèinnosou, narušením podielu, a monotónnosou.

8 Zhrnutie

V nasledujúcom sú hlavné závery z našich simulaèných výsledkov a analýz:

  1. Plánovanie CPU (CPU scheduling): EDF simulácia má èasto za následok 10% zlepšenie výkonu detekciou a vèasným zabránením možného zmeškania uzávierky.

  2. Privolanie práce (Work fetch): Privolávanie práce založené na dlhodobom dlhu a CPU naplnenia je lepšie ako privolávanie práce proporcionálne pod¾a podielu zdrojov. Zdokonalenie použitia niekdajšieho postup zlepšuje stratu o takmer 90% a narušenie podielu o takmer 50% zabránením privolania práce od projektov s nedostaèujúcimi uzávierkami.

  3. Odosielanie práce (Work send): Simulácia strany servera k urèeniu dopadu nových úloh na existujúcu náplò práce klienta je kritická, keï ve¾kos jednotiek má vysokú premenlivos (smerodajná odchýlka väèšia než 10 násobok priemernej hodnoty práce na jednotku), keï klienti majú ve¾ký zásobník práce, a keï sa klienti pripájajú relatívne zriedkavo.

  4. Odhad èasu dokonèenia práce (Job completion time estimation): Keï odhad práce užívate¾a na jednotku je vypnutý faktorom 2 alebo väèším, udržiavanie korekèného faktora trvania pre kompenzovanie tohto rozdielu je podstatné. Inak dosahuje strata èasto takmer 1.


PDF verziu tohoto èlánku si môžete stiahnu tu.

Literatúra

[1] Distributed.net. www.distributed.net.

[2] XtremLab. http://xtremlab.lri.fr.

[3] D. Anderson. Boinc: A system for public-resource computing and storage. In Proceedings of the 5th IEEE/ACM International Workshop on Grid Computing, Pittsburgh, USA, 2004.

[4] N. Andrade, W. Cirne, F. Brasileiro, and P. Roisenberg. OurGrid: An Approach to Easily Assemble Grids with Equitable Resource Sharing. In Proceedings of the 9th Workshop on Job Scheduling Strategies for Parallel Processing, June 2003.

[5] F. Berman, R. Wolski, S. Figueira, J. Schopf, and G. Shao. Application-Level Scheduling on Distributed Heterogeneous Networks. In Proc. of Supercomputing ’96, Pittsburgh, 1996.

[6] The berkeley open infrastructure for network computing. http://boinc.berkeley.edu/.

[7] Catalog of boinc projects. http://boinc-wiki.ath.cx/index.php?title=Catalog_of_BOINC_Powered_Proje%cts.


Vytvoril: slavko.sk [08. december 2007 15:15:40] / Upraven: [10. december 2007 20:22:02] / Poet zobrazen: [10200]