FAQ - Dluhy projektů

Sekce pro všeobecné rady a návody z oblasti DC projektů

Moderátoři: petnek, Zelvuska, nenym

Zamčeno
Zpráva
Autor
Uživatelský avatar
forest
Admin webu a fóra CNT
Admin webu a fóra CNT
Příspěvky: 16822
Registrován: pát 27 říj, 2006 09:19
rok narození: 03 bře 1977
ID CNT statistics: 71
Bydliště: Újezd u Brna

FAQ - Dluhy projektů

#1 Příspěvek od forest » pon 29 čer, 2009 09:44

LTD => Long Term Debt (někdy taky Long Time Debt) - dlouhodobý dluh projektu. LTD ovlivňuje, ze kterých projektů se má stáhnout kolik práce.
STD => Short Term Debt (někdy taky Short Time Debt) - krátkodobý dluh projektu. STD ovlivňuje, které úkoly se budou zrovna počítat, střídají se podle intervalu "switch between app", standardně po hodině. Pokud není stažena žádná práce, měly by být STD u všech projektů nulové (narozdíl od LTD, které jsou nulové pouze v součtu nebo při prvotním připojení k projektu).

Nástroj pro smazání dluhů projektů v BOINC.

Něco málo o dluzích:
V momentě, kdy v klientovi BOINC jedeš více než jeden projekt dochází zákonitě k tomu, že BOINC Klient jednotlivé projekty střídá a snaží se jim přidělit čas procesoru podle jejich priority, kterou mají nastavenou přímo na projektu (stránky projektu / tvůj ůčet / nastavení / Resource share) ... defaultně tam je 100 a můžeš měnit prioritu. Když jedu 2 projekty a jeden má RS=200 a druhý má RS=100 (dohromady 300) tak klient prvnímu projektu přiřadí 2/3 (200/300) času procesoru a druhému projektu 1/3 (100/300) času procesoru. V případě, že oba projekty mají práci, pak to skvěle funguje. V momentě kdy první projekt nemá práci, tak klient přidělí celý výkon procesoru pouze druhému projektu a tím na prvním projektu vzniká dluh, který se stále zvětšuje (na druhém projektu zase vzniká jakoby záporný dluh). Pokud tento stav potrvá např. měsíc a po té době opět první projekt uvolní práci, klient to pozná a začne umazávat dluh tím, že bude stahovat WUs pouze pro první projekt a to tak dlouho, dokud se dluh nesrovná.
Takto to vypadá velice jednoduše a není důvod aby to nefungovalo, ale v momentě, kdy mám v klientu BOINC např. 60 projektů, některé nemají práci dlouhodobě, některé pouze výpadky, u některých mám sám zakázáno stahovat další práci, každý projekt má jinou RS ... v tu chvíli vzniká velice složitá situace a domnívám se, že ani človíček co to programoval sám neví jak by se měl klient "správně" zachovat ;-) .
Pak se to ještě komplikuje tím, že dluhy se evidují dlouhodobé a krátkodobé (LTD a STD).

V hlavním adersáři BOINC Klienta je soubor client_state.xml, který obsahuje všechny projekty ke kterým jsi připojený a u každého z nich je mimo jiné uvedeno něco takového

Kód: Vybrat vše

    <short_term_debt>0.000000</short_term_debt>
    <long_term_debt>-39835.551288</long_term_debt>
    <resource_share>100.000000</resource_share>
Součet jednotlivých dluhů za všechny projekty by měl být nulový.
Soubor se dá editovat (musíš vypnout BOINC!!!!!) a v případě potřeby buď dluhy smazat (všude dát 0.000000) nebo uměle nějaký dluh vyvolat (nezapomeň, že součet short_term_debt za všechny projekty by měl být 0 a součet long_term_debt za všechny projekty by měl být 0) a hlavně tě bude zajímat LTD <long_term_debt>. Kladné číslo u projektu znamená, že má dluh ... Klient by ho chtěl počítat, ale projekt nemá práci)

Otázka: Již delší dobu jsem připojený do několika projektů, některé z nich mají ovšem práci jen občas. Nyní se mně ale u jediného z projektů který poskytoval práci prakticky vždy, začala zásoba tenčit na úplné minimum a to i když si zadám že se má stáhnout na 10 dní. Čím to může být a dá se s tím něco dělat :?:
Odpověď: Může nastat situace, kdy máš povolené například 2 projekty : projekt A a projekt B : oba nastavené na prioritu 100, a B nedává práci třeba půl roku. Klient si to pamatuje a v případě, že by ten projekt B vypustil jednotky, potom prioritně počítá pouze tento projekt B, aby dohnal "dluh" vůči projektu A. A kdyby jsi měl v tu chvíli stáhnuté jednotky projektu A, vůbec by se na ně nedostala řada. Existuje sice status počítané jednotky : "running high priority", ale ten se týká pouze již rozpočítaných jednotek (upřednostní ji, aby stihl deadline). Navíc pokud těch projektů máš více, tak klient je z toho zblblý a už to nedokáže řádně ošéfovat. Proto si i u stabilního projektu udržuje po delší době minimumální zásobu a čeká, že ostatní projekty také něco vypustí a sníži jim tak dluh.
Tyto "dluhy" projektu lze také smazat a tím na čas opět klienta uvolnit od stresu. V client_state.xml je u každého projektu položka <long_term_debt> (LTD), která vyjadřuje dluh ve vteřinách. Jednou z variant vynulování je zastavit BOINC, upravil client_state.xml tak, aby všude bylo LTD 0.
Další variantou je přes boinccmd použít --set_debts URL1 std1 ltd1

Zamčeno

Zpět na „Rady a návody“