Czech National Team

Týmové fórum
Právě je čtv 17 srp, 2017 04:35

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Projekty s nedostatkem práce
PříspěvekNapsal: pon 19 dub, 2010 09:49 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Pro zajištění práce z projektů, které jí mají nedostatek, lze využít schedulerů ze systémových nástrojů operačních systémů.

1. Windows: Systémové nástroje - naplánované úlohy, aplikace je součástí základní instalace systému

2. Ubuntu (ostatní Linuxy neznám, snad to bude obdobné): Systémové nástroje - Scheduled tasks, nutno doinstalovat z menu Aplikace - přidat/odstranit. Na Linuxu lze využít základního scheduleru cron, uvedená aplikace je zjednodušené a intuitivní grafické rozhraní ke cronu.

Ovládání mají obě aplikace téměř shodné, spouštěný příkaz je identický. Například pro LHC
1. Windows: cesta_k_boinc/boinccmd.exe --project http://lhcathomeclassic.cern.ch/sixtrack/ update
2. Ubuntu: ~/BOINC/boinccmd --project http://lhcathomeclassic.cern.ch/sixtrack/ update

Interval spouštění musí respektovat povolený interval dotazů na konkrétním projektu a to, že po takto vyvolaném dotazu další generuje klient sám. Většině projektů je to jedno a snesou otravování v 30s intervalu (tj. 1x za minutu scheduler, po 30s vyvolá dotaz sám klient). Výjimku tvoří (z těch nejpopulárnějších s nedostatkem práce) Ralph a The Lattice, kde jsem vypozoroval jako nejméně škod páchající interval 60 minut.

Tímto způsobem lze automatizovat i jiné záležitosti, například odevzdávání práce koncem turnaje PG, jako náhrada za featuru <report_results_immediately> v cc_config.

Přehled příkazů boinccmd je na našem fóru v sekci FAQ.
URL projektů lze jednoduše vygenerovat z Vítkova nástroje na mazání dluhů, dále jsou dostupné na stránkách projektů, v seznamu projektů či v souboru client_state.xml.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: ned 20 čer, 2010 10:58 
Offline Stats
36.8421052632 %
36.8421052632 %
Uživatelský avatar

Registrován: pon 22 úno, 2010 16:36
Příspěvky: 597
Bydliště: Space Family
Datum narození: 09 úno 1993
ID CNT statistik: 8123
Návod je pěkný, ale žádný z mých pokusů o rozběhání se mi nevyvedl 33aaa ...

Mám Ubuntu 10.4, nainstalovaný Scheduled Tasks, nainstalovaný BOINC z REPOZITÁŘŮ a nevím, jaký tam mám zadat příkaz...chci, aby se každou minutu aktualizovalo WCG (kvůli DDDT2), ale nedělá to vůbec nic.
Soubor boinccmd.exe je umístěn v adresáři /usr/bin, složka s BOINC daty je umístěna ve /var/lib/boinc-client.

Jaký mám zadat příkaz? Zkoušel jsem ten tvůj s tím, že místo Mopac jsem zadal www.worldcommunitygrid.org a místo -/BOINC/ jsem zadal /usr/bin/ ... :smt102

Poradí někdo 33aaa ?

_________________
Pocitadlo : Deska - ASRock Fatal1ty Z77 Killer, CPU - Intel Pentium G3220(Haswell), 8GB RAM DDR3, GPU - ASUS DCIIOC AMD Radeon HD7790, Case - Chieftec LBX-02B-B-B, zdroj Seasonic X-1050 Gold, systém - dualboot ArchLinux (AntergOS) + Windows 8.1 64bit
Moje statistiky : BoincStats, B.Mundayweb, PrimeGrid a statistiky CNT od vklibera ;)
PG medaile : Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek
WCG medaile : ObrázekObrázekObrázekObrázekObrázekObrázekObrázekObrázek
Poslouchám asi tak tohle (my Last.fm music profile)...
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pon 21 čer, 2010 05:14 
Offline Stats
Admin webu a fóra CNT
Admin webu a fóra CNT
Uživatelský avatar

Registrován: pát 27 říj, 2006 09:19
Příspěvky: 15949
Bydliště: Újezd u Brna
Datum narození: 03 bře 1977
ID CNT statistik: 71
Musíš si najít a zadávat hlavně správnou adresu na scheduler. U WCG je to adresa grid.worldcommunitygrid.org

_________________
Galerie CNT
Statistiky CNT od vklibera
Moje osobní statistika!
Kde a kdy jsem byl UoD
testovací balíček CNT 2015
tabulka výsledků testovacího balíčku CNT 2015


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pon 21 čer, 2010 09:38 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Ondra@SF.cz píše:
ale nedělá to vůbec nic.
Ani v messages nemáš žádnou reakci? Pokud ne, tak máš buď špatně cestu do adresáře Boinc nebo špatnou adresu WCG. Pokud máš v messages reakci od WCG (...no work sent), tak je formálně vše v pořádku a "pouze" není práce.
Formální správnost nejlépe otestuješ tak, že zadaný task spustíš ručně a v BM při otevřené záložce messages pozoruješ reakci.
Ověřit správnost cesty k boinc lze jednoduše - jako projekt zadáš něco, o čem víš s jistotou, že reaguje, může to být klidně suspendnutý projekt.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pon 21 čer, 2010 14:17 
Offline Stats
36.8421052632 %
36.8421052632 %
Uživatelský avatar

Registrován: pon 22 úno, 2010 16:36
Příspěvky: 597
Bydliště: Space Family
Datum narození: 09 úno 1993
ID CNT statistik: 8123
nenym píše:
Ondra@SF.cz píše:
ale nedělá to vůbec nic.
Ani v messages nemáš žádnou reakci? Pokud ne, tak máš buď špatně cestu do adresáře Boinc nebo špatnou adresu WCG. Pokud máš v messages reakci od WCG (...no work sent), tak je formálně vše v pořádku a "pouze" není práce.

Nenene, nedělá to vůbec nic...zkusím to s tou jinou adresou scheduleru, to bude nejspíš ono...

_________________
Pocitadlo : Deska - ASRock Fatal1ty Z77 Killer, CPU - Intel Pentium G3220(Haswell), 8GB RAM DDR3, GPU - ASUS DCIIOC AMD Radeon HD7790, Case - Chieftec LBX-02B-B-B, zdroj Seasonic X-1050 Gold, systém - dualboot ArchLinux (AntergOS) + Windows 8.1 64bit
Moje statistiky : BoincStats, B.Mundayweb, PrimeGrid a statistiky CNT od vklibera ;)
PG medaile : Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek
WCG medaile : ObrázekObrázekObrázekObrázekObrázekObrázekObrázekObrázek
Poslouchám asi tak tohle (my Last.fm music profile)...
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 10 srp, 2011 20:58 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
Tak udice na DrugDiscovery nefunguje jak má. Spustil jsem ji manuálně a čekal jsem, že se spustí za dalších 5 minut a ono nic. Je nastavena tak, že se spouští po spuštění systému a potom každých 5 minut bez omezení pokud je k dispozici jakékoli síťové připojení. Kde je tedy chyba? Restartovat systém se mi kvůli tomu nechce (WUs bez checkpointu a mnoho rozpočítaných úloh - velká ztráta).

Nejde taky nějakým parametrem nastavit, aby vždycky neprobliklo okno s bat souborem, ve kterém je onen příkaz pro aktualizaci napsán? Při více projektech a častém opakování by to mohlo dosti rušit :lol:

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 10 srp, 2011 21:38 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Probliknutí - spouštěj to jako SYSTEM, nikoli user.
Opakování úlohy - podívej se do plánu, kdy bude další spuštění, píše to. Pokud nepíše do 5 minut, tak máš chybu v zadání plánu. Já nedělám plán spuštění po startu, stejně je to k ničemu, protože core má dost starostí samo se sebou, mám plán od 0:0x:xx v daném intervalu tak, aby se jednotlivé úlohy nespouštěly ve stejný okamžik. Restart stroje určitě nepomůže, scheduler ve W7 je obzvláště odporný, nesrozumitelný a nepřehledný, zlatá XP. V prvním kole bych zkusil vykopnout podmínku na existující síťové připojení.
Ještě je tam kdesi jeden fígl - vypnout úlohu, když běží XX hodin, defaultně je tam nastaveno 72 hodin. Vyřadit z činnosti toto omezení.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 10 srp, 2011 22:07 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
User > SYSTEM - nastaveno :)
podmínka síťového připojení a vypnutí běžící úlohy vypnuto. Nastavil jsem to tak, že se mi to bude spouštět každý den ve 23:10 a pak každých 5 minut, bez omezení. Další spuštění už je tam psáno, takže to je OK. Pokud ale pustím PC ve 23:15 a aktivuji úlohu ručně, bude se pak každých 5 minut opakovat?

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 10 srp, 2011 22:11 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Musíš ještě nastavit dobu trvání - 24 hodin nebo do kolika to chceš, pokud to 6 ráno, tak 7 hodin. Tak nějak to nastavuji. Možná, že jsou i jiné způsoby, W7 schedluler je tak složitý, že nepochybně, v XP těch možností moc není a jde tam pouze zadat.
- dny v týdnu
- okamžik spuštění
- interval opakování
- doba trvání (od prvního spuštění) nebo do kdy má být úloha spuštěna (stejně se to přepočte na dobu trvání)
Případně lze zadat i více plánů spouštění.
Ruční spuštění úlohy nemá na plán vliv.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 10 srp, 2011 22:49 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
Uvidím jak to bude šlapat až PC znovu zapnu...

PS: nefungují mi udičky pro Lattice a uFluids. Zadával jsem adresy z domény projekty, ale nefungují. Jaké mám zadat nebo kde to zjistit? Zkoušel jsem i adresu scheduleru z client_state.xml, ale nejde to. :roll:

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 09:47 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Bohužel ve W7 ti se schedulerem moc neporadím. Pravidlo pro identifikaci oblasti vadného zadání je takové:
1. když není reakce v messages BM na ruční spuštění úlohy, tak je problém v parametrech úlohy (vadná cesta k adresáři Boinc, chybná adresa projektu nebo ve WCG scheduleru, překlep v parametru)
2. pokud je reakce v BM na ručně spuštěnou úlohu, je vadně zadán plán spouštění ve scheduleru
Já osobně to dělám tak, že kopíruji fungující úlohu a měním jí parametry, pak může být chyba pouze v zadání parametrů úlohy a plán scheduleru je dobře.
Jaký přesně máš problém ty?

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 17:49 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
Já kopíruji již funkční bat soubory s udičkami a v nich měním adresu. Kopíroval a upravil jsem funkční, ale na dva zmiňované projekty nefunguje ani ruční spuštění baťáku. Myslím, že chyba bude v adrese.

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 17:54 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Zkus main url z client_state, to by mělo být přesně to, co potřebuješ.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 18:54 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
Ne, prostě to nefunguje :lol:

udička na uFluids (nefunguje, url z client_state.xml - master url):
Kód:
"C:\Program Files\BOINC\boinccmd.exe"  --project http://www.ufluids.net -update


udička na DrugDiscovery (funguje, url také z client_state.xml):
Kód:
"C:\Program Files\BOINC\boinccmd.exe"  --project http://boinc.drugdiscoveryathome.com/ update


22sss

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 19:02 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Nojo, "-update" není totéž, co "update". Takže překlep.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 11 srp, 2011 19:17 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
No jo, tím to bylo. Tak šup s kbelíkem popela na mou lébu :lol:. Díky :)

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 01 úno, 2012 20:14 
Offline Stats
26.3157894737 %
26.3157894737 %
Uživatelský avatar

Registrován: pát 03 dub, 2009 17:27
Příspěvky: 235
Bydliště: Plzeň
Datum narození: 0- 0-1981
ID CNT statistik: 17227
Pěkně prosím zvládnul by někdo napsat návod pro blbce jak na Plánovač úloh v W7? Trápím se s tím přes p§l hodiny a netuším jak na to. V XP jsem si s tím poradil ale tady ne. Děkuju moc.

_________________
ObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 01 úno, 2012 23:55 
Offline Stats
Moderátor
Moderátor
Uživatelský avatar

Registrován: pon 28 led, 2008 12:44
Příspěvky: 3500
Bydliště: Praha
Datum narození: 16 kvě 1987
ID CNT statistik: 10883
Nejdřív jsem si udělal v plánovači složku BOINC, kde mám naplánované úlohy hádejte pro co..? Těžká otázka, já vím :lol: ...

Pro zjednodušení přikládám dva soubory:
Příloha:
BOINCDrug.pdf [93 bajtů]
483 krát

Nelekejte se, není to PDF, ale bat. Takže po stažení to přejmenujete na BOINCDrug.bat. Přípony bat, txt nejsou pro vkládání na forum povoleny...
Příloha:
MindModeling.pdf [3.34 KiB]
479 krát

Tohle opět není PDF, ale xml. Takže po stažení také přejmenovat...

V plánovači úloh dáte importovat úlohu v pravém panelu a vyberete MindModeling.xml (pojmenujte si to jak chcete - exportoval jsem svoje nastavení pro MindModeling...) > otevře se nabídka Vytvořit úlohu > Název: jaký chcete. Já si úlohu pojmenovávám podle projektu ke kterému patří > Záložka Aktivační události: Označit v nabídce jedinou a dole Upravit > Je nastavena tak, že se spouští pořád, každých 10 minut. To si můžete změnit dle libosti > potvrdit změny > Záložka Akce > označíte Spustit program (jediná akce v nabídce) a dáte Upravit > program či skript, respektive jeho adresu navedete tam, kde je váš stažený BOINCDrug.bat (doporučuji ho přejmenovat zase podle názvu projektu - pro přehlednost). Tento bat soubor obsahuje příkaz, který spouští aktualizaci projektu v BM. Koukněte se do něj a případně upravte adresu k boinccmd.exe. Musí směřovat do adresáře s nainstalovaným BM, nikoli do datového adresáře, který je v C:/ProgramData! Upravte také adresu projektu, kterou najdete tak jak nenym vysvětluje v prvním příspěvku dole. Po přizpůsobení bat souboru ho vyberte v plánovači úloh a potvrďte. Záložky Podmínky a Nastavení měnit nemusíte, mě to tak funguje, vám by mělo taky... Pak už jen "OK" a je naplánována. Po odklepnutí OK se může stát, že bude úloha zastavena. Tedy na ni klikneme a v pravém sloupečku v plánovači úloh dáme Povolit. Pokud následně dáte v pravém sloupečku Spustit, úloha se provede a v BOINC Manageru by se u projektu měla objevit hláška o vyžádané aktualizaci projektu uživatelem stejně jako když projekt vyberete a dáte Aktualizovat.

Toť vše, nahoďte udice a přeji co nejlepší úlovky 22rrr

_________________
Obrázek
ObrázekObrázekObrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 06 pro, 2012 20:32 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Na core rodiny 7 udice většinou nefunguje, jak na exoty netuším. Vymyslel někdo něco zautomatizovatelného :?:

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: čtv 06 lis, 2014 19:59 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
nenym píše:
Na core rodiny 7 udice většinou nefunguje, jak na exoty netuším. Vymyslel někdo něco zautomatizovatelného :?:
Ano, pro widle i Linux vkliber. Automat na udržování předem definovaného počtu tasků v aktivním stavu, zbytek suspendnut. Takto je core pořád hladové a udice si pořád říká o práci na žádanějších projektech.
Widle:
Kód:
/*!
    Autor : Vit Kliber, Czech National Team o.s.
Vytvoreno : 11.01.2012
    Nazev : boinc_manage_wcg_tasks.js
    Zdroj : boinc_framework.js
    Popis : Skript vychazi z Kostry skriptu pro budouci skripy pro manipulaci s jednotkami
            ( url=http://forum.czechnationalteam.cz/viewtopic.php?p=53537#p53537 )
            Tento provadi manipulaci s jednotkami projektu WCG ( http://www.worldcommunitygrid.org/ )
            Pozadavek je nasledujici : nechat pocitat maximalne 8 <pocet_aktivnich_jednotek> jednotky
            a ostatni pozastavit
*/

// adresa projektu (nejpravdepodobneji bude skript manipulovat s jednotkami jednoho projektu)
var projekt = "http://www.worldcommunitygrid.org/";

// pocet maximalne aktivnich jednotek
var pocet_aktivnich_jednotek = 8;

// verze boinc, je zjistena funkci verze(), pokud je prazdne nepodarilo se zjistit a skript se ukonci
var boinc_verze = "";

// prikaz pro zjisteni aktualnich jednotek v BOINC
var boinc_jednotky = "";

// prikaz pro manipulaci s jednotkou
var boinc_jednotka = "";

// 1 = Debug ON, 0 = Debug OFF ... jestli se maji vypisovat pri behu hlaseni
var debug_code = 1;

// pro vypsani ladiciho textu pri behu skriptu
function alert(text)
{
  if (debug_code != 1)
  {
    return (new ActiveXObject("WScript.Shell")).Popup(text, 0, WScript.ScriptName, 64);
  }
}

// zjisti verzi BOINC
function verze()
{
  // definice noveho objektu WScript.Shell (umozni mi spoustet externi prikazy)
  var objekt_shell = new ActiveXObject("WScript.Shell");
  // definice metody Exec, spusti prikaz a pointer uchova v promene <objekt_exec>
  var objekt_exec  = objekt_shell.Exec("boinccmd.exe --version");
  // textova promena do ktere se ulozi cely obsah standardniho vystupu predchazejiciho prikazu
  var verze_text   = objekt_exec.StdOut.ReadAll();
  alert(verze_text);
  // promena <verze_text> by mela nyni obsahovat jeden radek s timto obsahem (podle verze) : "boinccmd,  built from BOINC 6.12.33"
  // uchovam pozici textu BOINC z promene <verze_text>
  var pozice = verze_text.indexOf("BOINC");
  // jestlize je ruzne od -1 tak v obsahu <verze_text> je na pozici <pozice> text BOINC (podarilo se spustit prikaz "boinccmd.exe --version")
  if (pozice != -1)
  {
    // z <verze_text> vyriznu text od pozice <pozice> (prictu 6 ... delka textu BOINC a mezera)
    boinc_verze = verze_text.substr(6+pozice);
    // nyni je v <boinc_verze> hodnota 6.12.33
    alert(boinc_verze);
    return true;
  }
  else // verzi BOINC se nepodarilo zjistit, vracim FALSE
  {
    return false;
  }
}

// funkce pro porovnani dvou verzi ve tvaru X.X.X, ocekava promene ve tvaru pole
function porovnani_verzi(verze1, verze2)
{
  // promenne <verze1> a <verze2> jsou pole textovych retezcu, tak je prevedu na cisla
  verze1[0] = (parseInt(verze1[0]) || 0);
  verze1[1] = (parseInt(verze1[1]) || 0);
  verze1[2] = (parseInt(verze1[2]) || 0);
  verze2[0] = (parseInt(verze2[0]) || 0);
  verze2[1] = (parseInt(verze2[1]) || 0);
  verze2[2] = (parseInt(verze2[2]) || 0);
  if (verze2[0] != verze1[0])
    return (verze2[0] > verze1[0]);
  else
  {
    if (verze2[1] != verze1[1])
      return (verze2[1] > verze1[1]);
    else
    {
      if (verze2[2] != verze1[2])
        return (verze2[2] > verze1[2]);
      else
        return true;
    }
  }
}

// odstrani z retezce koncove mezery a znak konce radku
function trim(text)
{
  return text.replace(new RegExp("[" + "\\n\\s" + "]+$", "g"), "");
}

// provede nastaveni promenych podle verze BOINC
function init()
{
  // od verze BOINC 6.12 vcetne je jina syntaxe programu boinccmd
  var verze_pro_porovnani = "6.12.0";
  // zavolam funkci ktera zjisti verzi BOINC a pokud se to podari nastavim zakladni promenne
  if (verze())
  {
    alert("Porovnavam verzi " + boinc_verze + " s referencni verzi " + verze_pro_porovnani);
    if (porovnani_verzi(verze_pro_porovnani.split('.'),boinc_verze.split('.')))
    {
      // Verze BOINC >= 6.12
      boinc_jednotky = "boinccmd.exe --get_tasks";
      boinc_jednotka = "boinccmd.exe --task";
    }
    else
    {
      // Verze BOINC <  6.12
      boinc_jednotky = "boinccmd.exe --get_results";
      boinc_jednotka = "boinccmd.exe --result";
    }
    return true;
  }
  else // funkce pro zjisteni verze se nepodarila, vracim FALSE
  {
    return false;
  }
}

/* MAIN */
// zavolam funkci ktera nastavi zakladni promenne
if (init())
{
  // v tuto chvili je uspesne zjistena verze a
  // uspesne nastavene zakladni promenne <boinc_jednotky> a <boinc_jednotka>
  // definuji novy objekt WScript.Shell (umozni mi spoustet externi prikazy)
  var objekt_shell = new ActiveXObject("WScript.Shell");
  // definuji metodu Exec, spusti prikaz <boinc_jednotky> a pointer uchova v promene <objekt_exec>
  var objekt_exec  = objekt_shell.Exec(boinc_jednotky);
  // textova promena do ktere se ulozi cely obsah standardniho vystupu predchazejiciho prikazu
  var text_vystup  = objekt_exec.StdOut.ReadAll();
  // na konec <text_vystup> jeste pridam jednu prazdnou sekci abych pak nemusel resit konec
  text_vystup = text_vystup + '\n' + "X) -----------" + '\n';
  // promena <text_vystup> by mela nyni obsahovat cely standardni vystup ktery vraci prikaz "boinccmd.exe --get_tasks"
  // definuji pole do ktereho prevedu obsah <text_vystup>
  var pole_vystup  = new Array();
  // oddelovacem bude znak EOL (EndOfLine) neboli \n
  // pole <pole_vystup> se naplni tak, ze kazdy dalsi radek bude v dalsim prvku
  // 1. radek v  pole_vystup[0], 2. radek v  pole_vystup[1], ...
  pole_vystup = text_vystup.split('\n');
  // nyni musime v cyklu projit vsechny radky (vyzaduje znalost vystupu "boinccmd.exe --get_tasks")
  // jednotlive jednotky jsou oddeleny v sekcich a o kterou jednotku se jedna zjistime az uvnitr sekce
  // takze si do nejakych promenych musime ukladat co budeme dale potrebovat a az sekce skonci
  // (zacne nova ... proto jsme si na konec pridali jednu prazdnou sekci pro ukonceni posledni sekce)
  // tak se rozhodneme podle obsahu ulozenych promenych co dal podnikneme
  // pripravim si promenne
  var b_name              = ""; // nazev jednotky (name)
  var b_state             = ""; // stav jednotky (state) 2 ... Pocita nebo Pripraven nebo Cekam na zpracovani, 4 ... Odesilam, 5 ... Odeslan. Pripraven k ohlaseni
  var b_scheduler_state   = ""; // stav scheduleru jednotky (scheduler state) 0 ... Pripraven, 1 ... Cekam na zpracovani, 2 ... Pocita
  var b_suspended_via_GUI = ""; // pozastaveno (suspended via GUI) no, yes
  var b_active_task_state = ""; // stav jednotky (active_task_state) 0 ... Pripraven, 1 ... Pocitam, 9 ... Cekam na zpracovani
  var ano                 = 0;  // 1 = ANO, 0 = NE ... jestli se jedna o projekt ktery nas zajima
  var ind                 = 0;  // index pro pole do ktereho budu ukladat hodnoty
  var jednotka = new Array();   // pole do ktereho se budou ukladat radky
                                // kazdy radek bude zase pole ve tvaru ([0] = name, [1] = state, [2] = scheduler_state, [3] = suspended_via_GUI, [4] = active_task_state)

  // a ted cyklus pres cele pole
  for(var i = 0; i < pole_vystup.length; i++)
  {
    // jestlize radek obsahuje text ") -----------" tak se jedna o zacatek nove sekce
    if (pole_vystup[i].indexOf(") -----------") != -1)
    {
      // jestlize je <ano> nastaveno (jedna se o projekt ktery nas zajima) je treba provest pozadovanou akci
      if (ano == 1) {
        alert("NACITANI JEDNOTEK (" + ind + ") :\nProjekt:" + projekt + "\nJednotka:" + b_name + "\nStav:" + b_state + "\nStav scheduleru:" + b_scheduler_state + "\nsuspended_via_GUI:" + b_suspended_via_GUI + "\nactive_task_state:" + b_active_task_state);
        // dale me budou zajimat pouze jednotky ktere maji stav jednotky = 2 (state), ty ktere jsou ve stavu Odesilam nebo Odeslany uz resit nebudu
        if (b_state == 2 || b_state == "downloaded") {
          // ulozim hodnoty do pole
          jednotka[ind] = new Array(b_name, b_state, b_scheduler_state, b_suspended_via_GUI, b_active_task_state);
          // a zvednu index o 1
          ind = ind + 1;
        }
      }
      // a po akci si opet vynulujeme promenne
      b_name              = "";
      b_state             = "";
      b_scheduler_state   = "";
      b_suspended_via_GUI = "";
      b_active_task_state = "";
      ano                 = 0;
    }
    // jestlize radek obsahuje text "   name: " tak se jedna o radek kde je nazev jednotky
    else if (pole_vystup[i].indexOf("   name: ") != -1)
    {
      // a nazev jednotky si uchovam do <b_name>
      b_name = trim(pole_vystup[i].substr(9));
    }
    // jestlize radek obsahuje text "   state: " tak se jedna o radek kde je stav jednotky
    else if (pole_vystup[i].indexOf("   state: ") != -1)
    {
      // a stav jednotky si uchovam do <b_state>
      b_state = trim(pole_vystup[i].substr(10));
    }
    // jestlize radek obsahuje text "   scheduler state: " tak se jedna o radek kde je stav scheduleru jednotky
    else if (pole_vystup[i].indexOf("   scheduler state: ") != -1)
    {
      // a stav scheduleru jednotky si uchovam do <b_scheduler_state>
      b_scheduler_state = trim(pole_vystup[i].substr(20));
    }
    // jestlize radek obsahuje text "   suspended via GUI: " tak se jedna o radek kde je informace o pozastaveni jednotky
    else if (pole_vystup[i].indexOf("   suspended via GUI: ") != -1)
    {
      // a informaci o pozastaveni jednotky si uchovam do <b_suspended_via_GUI>
      b_suspended_via_GUI = trim(pole_vystup[i].substr(22));
    }
    // jestlize radek obsahuje text "   active_task_state: " tak se jedna o radek kde je informace o active_task_state
    else if (pole_vystup[i].indexOf("   active_task_state: ") != -1)
    {
      // a informaci o active_task_state si uchovam do <active_task_state>
      b_active_task_state = trim(pole_vystup[i].substr(22));
    }
    // jestlize radek obsahuje text "   project URL: " tak se jedna o radek kde je adresa projektu
    else if (pole_vystup[i].indexOf("   project URL: ") != -1)
    {
      // a jestli radek obsahuje i adresu projektu ktery me zajima, tak si nastavim <ano>
      if (pole_vystup[i].indexOf("   project URL: " + projekt) != -1)
      {
        ano = 1;
      }
      else
      {
        ano = 0;
      }
    }
  }
  // jestlize je pole naplnene, tak <ind> bude vetsi nez 0
  if (ind > 0)
  {
/*
    // cele pole projdeme radek po radku a vypiseme
    for(var i = 0; i < ind; i++)
    {
      alert("VYPIS JEDNOTEK (" + i + ") :\nProjekt:" + projekt + "\nJednotka:" + jednotka[i][0] + "\nStav:" + jednotka[i][1] + "\nStav scheduleru:" + jednotka[i][2] + "\nsuspended_via_GUI:" + jednotka[i][3] + "\nactive_task_state:" + jednotka[i][4]);
    }
*/
    // pro nas pozadavek je ale vhodne prochazet pole od konce, a jednotky postupne pozastavit (nebo nechat pozastavene)
    // a teprve az se dostaneme na zacatek pole, tak prvnich nekolik jednotek pustit (nebo nechat pustenych)
    for(var i = ind-1; i >= 0; i--)
    {
      alert("VYPIS JEDNOTEK OD KONCE (" + i + ") :\nProjekt:" + projekt + "\nJednotka:" + jednotka[i][0] + "\nStav:" + jednotka[i][1] + "\nStav scheduleru:" + jednotka[i][2] + "\nsuspended_via_GUI:" + jednotka[i][3] + "\nactive_task_state:" + jednotka[i][4]);
      // v promenne <pocet_aktivnich_jednotek> je pocet jednotek ktere se maji pocitat
      if (i < pocet_aktivnich_jednotek)
      // vsechny jednotky ktere maji index <i> mensi nez <pocet_aktivnich_jednotek> pustime
      {
        // zjistime jestli je jednotka pozastavena
        if (jednotka[i][3] == "yes")
        {
          // a jestli ano tak ji pustime
          alert("Spoustim jednotku " + jednotka[i][0]);
          var resume_exec = objekt_shell.Exec(boinc_jednotka + " " + projekt + " " + jednotka[i][0] + " resume");
        }
      }
      else
      // vsechny ostatni pozastavime
      {
        // zjistime jestli neni jednotka pozastavena
        if (jednotka[i][3] == "no")
        {
          // a jestli neni tak ji pozastavime
          alert("Zastavuji jednotku " + jednotka[i][0]);
          var suspend_exec = objekt_shell.Exec(boinc_jednotka + " " + projekt + " " + jednotka[i][0] + " suspend");
        }
      }
    }
  }
}
alert("Konec.");

vkliber píše:
Soubor uložit do stejného adresáře, kde je boinccmd.exe. Po uložení souboru WCG_manage.js na něj kliknout pravým tlačítkem myši a kliknout na "Vlastnosti". Ve vlastnostech se přepnout na kartu "Skript", zaškrtnout "Zastavit skript po:" a nastavit 10 sekund a odškrtnout "Zobrazit logo ...". Dále vytvořit zástupce ve stejném adresáři (chytnout soubor WCG_manage.js pravým tlačítkem myši, posunout a pustit a stisknout "Vytvořit zde zástupce". Vytvořeného zástupce přejmenovat na WCG_manage.js, dále na něj kliknout pravým tlačítkem a a kliknout na "Vlastnosti". Ve vlastnostech se přepnout na kartu "Zástupce", zkontrolovat jestli hodnota "Spustit v:" odpovídá adresáři ve kterém se nachází skript WCG_manage.js a nastavit "Spustit:" na hodnotu "V minimalizovaném okně".
Tím je připravený skript ke spuštění. Je možno odzkoušet tak, že spustíte BOINC Manager aktivujte "přebytečné" jednotky, a pak poklepete na WCG_manage.js. Jednotky by se měly označit jako pozastavené.

Dále je nutné zařadit skript WCG_manage.js do naplánovaných úloh ve Windows, tady se postup pro WinXP už výrazně liší od Vista a 7, proto ho nebudu podrobně popisovat. Každý ať si taky zvolí svůj časový plán.


Linux: prosím vklibera o doplnění, moje verze je velmi prapodivná - udělal jsem kdysi při úpravě pro Ubuntu 9.4 bez požadovaného shellu chybu, kterou jsem zamaskoval jinou, nějak to funguje, ale hluboce se za to stydím.

_________________
Prý už není krize; pořád jím plesnivé sýry, piji staré víno a jezdím v autě bez střechy.
UotD 404x
Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek 2xObrázek 7xObrázek 9xObrázek Obrázek
Obrázek


Naposledy upravil nenym dne pát 15 kvě, 2015 09:21, celkově upraveno 1
Upraveno pro WCG a 8 jednotek by Cerberus


Nahoru
 Profil  
Odpovědět s citací  
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz