Projekty s nedostatkem práce
-
- 52.6315789474 %
- Příspěvky: 1267
- Registrován: pon 22 lis, 2010 17:40
- rok narození: 30 črc 1981
- ID CNT statistics: 15029
- Bydliště: Hřebeč
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
Snad nejsem příliš otravný, ale poradí mi někdo z expertů také návod na W7 64bit? Dokázal jsem úlohu dostat do *.exe souboru v 32-bitové verzi a naplánovat spouštění v plánovači, ale vzhledem k rozdílnosti verzí se úloha nespustí...
Použil jsem standardní příkaz update a po sepsání v poznámkovém bloku přejmenoval na exe, neboť baťák se se mnou nechtěl vůbec bavit...
Konkrétně mi jde o zprovoznění udice na projektu milkyway...
C:\Program Files\BOINC\boinccmd.exe --project http://milkyway.cs.rpi.edu/milkyway/ update
Použil jsem standardní příkaz update a po sepsání v poznámkovém bloku přejmenoval na exe, neboť baťák se se mnou nechtěl vůbec bavit...
Konkrétně mi jde o zprovoznění udice na projektu milkyway...
C:\Program Files\BOINC\boinccmd.exe --project http://milkyway.cs.rpi.edu/milkyway/ update
Počítadlo: Intel C2D 2.66 GHz, MSI P-35 Platinum,A-Data 2x(1+2)GB Ram (dual channel)5-5-5-15, Gigabyte ATI HD5870 840/900MHz Catalysty 11.12, Boinc 7.4.42, Windows 7 64-bit
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
- vkliber
- Admin webu a fóra CNT
- Příspěvky: 10306
- Registrován: čtv 29 bře, 2007 10:41
- ID CNT statistics: 1
- Bydliště: Brušperk, 48 let
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
Přiznám se, že jsem né zcela úplně pochopil co vlastně chceš. Mám pocit že mícháš 2 různé věci.
Udice na nějaký projekt ... lze řešit jednoduchým skriptíkem pomocí boinccmd.exe --project <adresa_projektu> update spouštěným v plánovači
Omezení počtu souběžně běžících jednotek (to co řeší můj skript na který odkazuje nenym níže) ... toto lze již mnohem jednodušeji řešit pomocí app_config.xml
Když tak pisni co vlastně chceš .
Udice na nějaký projekt ... lze řešit jednoduchým skriptíkem pomocí boinccmd.exe --project <adresa_projektu> update spouštěným v plánovači
Omezení počtu souběžně běžících jednotek (to co řeší můj skript na který odkazuje nenym níže) ... toto lze již mnohem jednodušeji řešit pomocí app_config.xml
Když tak pisni co vlastně chceš .
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
Není tak úplně pravda, nedomyšlené řešení pomocí app_config.xml může způsobit vytížení pouze části jader. Jednoduchý příklad pro ilustraci:vkliber píše: Omezení počtu souběžně běžících jednotek (to co řeší můj skript na který odkazuje nenym níže) ... toto lze již mnohem jednodušeji řešit pomocí app_config.xml
- 4 jádrový CPU,
- dva aktivní projekty RS>0, jeden bez práce (třeba Pirates), druhý (třeba Asteroids) s dostatkem práce bez omezení počtu jednotek v zásobě = plný buffer,
- jeden záložní projekt s RS=0 (třeba POGS),
- pro Asteroids nastaveno max 2 jednotky souběžně v app_config.xml.
Výsledek: plný buffer=nenatahuje se práce ze záložního projektu, na Pirates žádná práce, Asteroids jednou po 2 jednotkách = vytížení CPU na 50 %
Pokud by se použil script na pozastavení jednotek Asteroids, k popsané situaci nedojde a budou se natahovat a počítat jednotky POGS. Já používám kombinaci obojího (script + app_config).
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x
-
- 52.6315789474 %
- Příspěvky: 1267
- Registrován: pon 22 lis, 2010 17:40
- rok narození: 30 črc 1981
- ID CNT statistics: 15029
- Bydliště: Hřebeč
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
Vítku a nenyme promiňte.
Popíšu současný stav a snad to pomůže, nebo mě vykopnete do správného vlákna...
Vzhledem k současné grafice mohu počítat pouze milkyway verzi modified fit. A věc se má tak, že pokud počítám, tak dostanu práci třeba na 7 minut, ale po spočítání a odevzdání si scheduler nepožádá o další práci, ale nějakou dobu se grafika fláká a když dostane práci, tak jí zase spočítá rychleji, než si opět požádá o další příděl.
Pokud jsem u pc a manuálně aktualizuji, tak není problém, pokud jsem pryč, tak chvíli pracuje, pak se fláká a pořád dokola...
Jak píše obvykle nenym, chci ho otravovat, což na xp nebyl absolutně problém, teď jsem v pytli...
I když přiznávám, že jsem neměl tu trpělivost čekat, jestli si to BM srovná časem sám, obvykle jsem si dal koláče, nebo i další projekty na RS 0, aby grafika jela nonstop...
Stačí tak?
Jinak v odpověď: Nechci míchat více věcí dohromady, chci zprovoznit radu číslo jedna, ale v plánovači se mi to nedaří nastavit jako úlohu, debilní plánovač ve W7 chce po mě skript (externí), který jen "tupě" spouští...
Popíšu současný stav a snad to pomůže, nebo mě vykopnete do správného vlákna...
Vzhledem k současné grafice mohu počítat pouze milkyway verzi modified fit. A věc se má tak, že pokud počítám, tak dostanu práci třeba na 7 minut, ale po spočítání a odevzdání si scheduler nepožádá o další práci, ale nějakou dobu se grafika fláká a když dostane práci, tak jí zase spočítá rychleji, než si opět požádá o další příděl.
Pokud jsem u pc a manuálně aktualizuji, tak není problém, pokud jsem pryč, tak chvíli pracuje, pak se fláká a pořád dokola...
Jak píše obvykle nenym, chci ho otravovat, což na xp nebyl absolutně problém, teď jsem v pytli...
I když přiznávám, že jsem neměl tu trpělivost čekat, jestli si to BM srovná časem sám, obvykle jsem si dal koláče, nebo i další projekty na RS 0, aby grafika jela nonstop...
Stačí tak?
Jinak v odpověď: Nechci míchat více věcí dohromady, chci zprovoznit radu číslo jedna, ale v plánovači se mi to nedaří nastavit jako úlohu, debilní plánovač ve W7 chce po mě skript (externí), který jen "tupě" spouští...
Počítadlo: Intel C2D 2.66 GHz, MSI P-35 Platinum,A-Data 2x(1+2)GB Ram (dual channel)5-5-5-15, Gigabyte ATI HD5870 840/900MHz Catalysty 11.12, Boinc 7.4.42, Windows 7 64-bit
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
-
- 73.6842105263 %
- Příspěvky: 4528
- Registrován: sob 15 kvě, 2010 17:27
- rok narození: 14 zář 1947
- ID CNT statistics: 13496
- Bydliště: praha 8
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
doktore správně si to napsal já už ze sebe radši dělám Kašpárka (což jistě jsem) a bojím se cokoli napsat abych nevypadal jako vůl (což jsem taky jistě) ale ty hovadiny ve výpočetní technice SW, HW ??? nejsou mi blízké. to je snad pro mladého psa a ne pro starého psa. dle mého názoru je to zhovadilost a tahání si trička. nic to nenese jen větší ego pro takzvané co jsem gdysy dělal mělo smysl. a mám taký dojmek, že by to smysl mělo i dnes. ale veškeré inovace mě připadají (koukej jak to zmrším a poraď si sstím). ale jsem už starý mrzutý pes
EDIT: neberte mě vážně, jen sem dostal křeče do břicha a pak kolem sebe koušu. možná to bude ráno lepšejší
EDIT: neberte mě vážně, jen sem dostal křeče do břicha a pak kolem sebe koušu. možná to bude ráno lepšejší
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
Step by stepDoktor píše:Nechci míchat více věcí dohromady, chci zprovoznit radu číslo jedna, ale v plánovači se mi to nedaří nastavit jako úlohu, debilní plánovač ve W7 chce po mě skript (externí), který jen "tupě" spouští...
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x
-
- 26.3157894737 %
- Příspěvky: 252
- Registrován: stř 16 črc, 2014 03:29
- rok narození: 03 led 1959
- ID CNT statistics: 21641
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
jaký máme zadat volitelný argument pro CSG?
jo, asi je to tady, na konci prvního příspěvku v tomto vlákně:
<<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.>>
edit: tak už to tu máme .. díky!
jo, asi je to tady, na konci prvního příspěvku v tomto vlákně:
<<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.>>
edit: tak už to tu máme .. díky!
Naposledy upravil(a) loner dne pát 03 čer, 2016 14:06, celkem upraveno 2 x.
O beata solitudo,
o sola beatitudo!
o sola beatitudo!
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
adresa projektu, tj. bude to vypadat
Přidat argumenty (volitelné):Spustiv v (volitelné): - případně jiný folder, kde je programová část boincu
Přidat argumenty (volitelné):
Kód: Vybrat vše
--project http://csgrid.org/csg update
Kód: Vybrat vše
C:\Program Files\BOINC\
- Přílohy
-
- udice_CSG.PNG (8.12 KiB) Zobrazeno 13627 x
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x
-
- 52.6315789474 %
- Příspěvky: 1267
- Registrován: pon 22 lis, 2010 17:40
- rok narození: 30 črc 1981
- ID CNT statistics: 15029
- Bydliště: Hřebeč
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
je nutné vyplnit i položku "spustit v"?
Mě to asi funguje i bez tohoto parametru...
Mě to asi funguje i bez tohoto parametru...
Počítadlo: Intel C2D 2.66 GHz, MSI P-35 Platinum,A-Data 2x(1+2)GB Ram (dual channel)5-5-5-15, Gigabyte ATI HD5870 840/900MHz Catalysty 11.12, Boinc 7.4.42, Windows 7 64-bit
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
Od 1.11.2015 do 27.2.2016 hrdý sponzor GOLEMa
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
Při manuálním spouštění to není nutné, při spuštění z plánovače mi to nefungovalo, po doplnění toho parametru začalo fungovat.
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x
-
- 26.3157894737 %
- Příspěvky: 252
- Registrován: stř 16 črc, 2014 03:29
- rok narození: 03 led 1959
- ID CNT statistics: 21641
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
při zadání parametrů:
Program či script: "C:\Program Files\BOINC\boincmgr.exe"
Přidat argumenty (volitelné): --project http://csgrid.org/csg update
odpověděl BM: unknown option 'project'
Program či script: "C:\Program Files\BOINC\boincmgr.exe"
Přidat argumenty (volitelné): --project http://csgrid.org/csg update
odpověděl BM: unknown option 'project'
O beata solitudo,
o sola beatitudo!
o sola beatitudo!
- vkliber
- Admin webu a fóra CNT
- Příspěvky: 10306
- Registrován: čtv 29 bře, 2007 10:41
- ID CNT statistics: 1
- Bydliště: Brušperk, 48 let
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
Program či script: "C:\Program Files\BOINC\boinccmd.exe"loner píše:při zadání parametrů:
Program či script: "C:\Program Files\BOINC\boincmgr.exe"
Přidat argumenty (volitelné): --project http://csgrid.org/csg update
odpověděl BM: unknown option 'project'
Čti správně .
Statistiky CNT | Projekty CNT | Distribuované výpočty CNT | SETI CNT | Einstein CNT
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙
.....::::: Proč se mít nejlépe, když se můžu mít čím dál tím stejně :::::.....
Moje skromná statistika tady , tady , tady nebo grafy.
˙ıɔıqɐɹʞ ʌ ǝןɐ 'ıןʇʎd ʌ ǝɔıɾɐz ǝʇɾndnʞǝu ʎpʞıu ˙˙˙
-
- 26.3157894737 %
- Příspěvky: 252
- Registrován: stř 16 črc, 2014 03:29
- rok narození: 03 led 1959
- ID CNT statistics: 21641
- Kontaktovat uživatele:
Re: Projekty s nedostatkem práce
díky Viki, už to funguje, ještě prověřím ty repetice ..vkliber píše: Čti správně .
O beata solitudo,
o sola beatitudo!
o sola beatitudo!
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
Znovu posílám updatovaný vliberův script pro novější core 7+, na Pentathlonu se bude hodit. Edituje se pouze řádek 14 (URL adresa projektu - nutno opsat/zkopírovat z client_state.xml) a řádek 17 (počet aktivních jednotek). Pokud je záměrem udržovat konstantní počet aktivních jednotek, tak se script spouští správcem úloh v přiměřeném intervalu podle délky výpočtu (doporučuji maximálně 1/3 či kratší). Uvedený příklad je pro Einsteina (4 aktivní tasky) a to zcela záměrně, protože na webu vidíte jinou adresu (https://einsteinathome.org/), než je v client_state.xml (http://einstein.phys.uwm.edu/).
Návod k použití
Kód: Vybrat vše
/*!
Autor : Vit Kliber, Czech National Team o.s.
Vytvoreno : 11.01.2012
Nazev : boinc_manage_nfs_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 NFS ( http://escatter11.fullerton.edu/nfs/ )
Pozadavek je nasledujici : nechat pocitat maximalne 2 <pocet_aktivnich_jednotek> jednotky
a ostatni pozastavit
*/
// adresa projektu (nejpravdepodobneji bude skript manipulovat s jednotkami jednoho projektu)
var projekt = "http://einstein.phys.uwm.edu/";
// pocet maximalne aktivnich jednotek
var pocet_aktivnich_jednotek = 4;
// 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" || jednotka[i][3] == "")
{
// 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.");
Pro vklibera: upravený je řádek 176, přihodil jsem - už hodně dávnovkliber píše:Soubor uložit do stejného adresáře, kde je boinccmd.exe. Po uložení souboru Einstein_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 Einstein_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 Einstein_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 Einstein_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 Einstein_manage.js. Jednotky by se měly označit jako pozastavené.
Dále je nutné zařadit skript Einstein_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.
Kód: Vybrat vše
|| b_state == "downloaded"
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x
-
- 78.9473684211 %
- Příspěvky: 7610
- Registrován: úte 13 led, 2009 15:33
- rok narození: 0- 0-1956
- ID CNT statistics: 10124
Re: Projekty s nedostatkem práce
Upravil jsem script v předchozím příspěvku pro verzi 7.14.2.
Pro vklibera: upravený je řádek 266, přihodil jsem
důvod: pokud není jednotka suspended, get_tasks řádek suspended via GUI vůbec nevypisuje
Pro vklibera: upravený je řádek 266, přihodil jsem
Kód: Vybrat vše
|| jednotka[i][3] == ""
Blíží se konsolidační balíček pětikolky; šetřím trojbojem - piji staré víno, jím plesnivé sýry a jezdím v autě bez střechy.
UotD 767x
1x 3x 9x 12x
UotD 767x
1x 3x 9x 12x