Czech National Team

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

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 Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: ned 01 lis, 2015 21:53 
Offline Stats
52.6315789474 %
52.6315789474 %

Registrován: pon 22 lis, 2010 17:40
Příspěvky: 1212
Bydliště: Hřebeč
Datum narození: 30 črc 1981
ID CNT statistik: 15029
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

_________________
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
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 02 lis, 2015 11:00 
Offline Stats
Admin webu a fóra CNT
Admin webu a fóra CNT
Uživatelský avatar

Registrován: čtv 29 bře, 2007 09:41
Příspěvky: 9342
Bydliště: Brušperk, 48 let
ID CNT statistik: 1
Přiznám se, že jsem né zcela úplně pochopil co vlastně chceš. Mám pocit že mícháš 2 různé věci.

:arrow: 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
:arrow: 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š 45cc .

_________________
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 ˙˙˙


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pon 02 lis, 2015 13:19 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
vkliber píše:
:arrow: 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
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:
- 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).

_________________
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 02 lis, 2015 20:53 
Offline Stats
52.6315789474 %
52.6315789474 %

Registrován: pon 22 lis, 2010 17:40
Příspěvky: 1212
Bydliště: Hřebeč
Datum narození: 30 črc 1981
ID CNT statistik: 15029
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í...

_________________
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
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 02 lis, 2015 21:34 
Offline Stats
68.4210526316 %
68.4210526316 %

Registrován: sob 15 kvě, 2010 16:27
Příspěvky: 4364
Bydliště: praha 8
Datum narození: 14 zář 1947
ID CNT statistik: 13496
doktore správně si to napsal :smt023 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é :smt017 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 45kk 45kk 45kk 45nn
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ší 45hh

_________________
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 02 lis, 2015 22:20 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
Doktor 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í...
Step by step
Příloha:
MW_1.JPG
MW_1.JPG [ 51.61 KiB | Zobrazeno 7617 krát ]
Příloha:
MW_2.JPG
MW_2.JPG [ 49.85 KiB | Zobrazeno 7617 krát ]
Příloha:
MW_3.JPG
MW_3.JPG [ 46.6 KiB | Zobrazeno 7617 krát ]
Příloha:
MW_4.JPG
MW_4.JPG [ 53.54 KiB | Zobrazeno 7617 krát ]
Příloha:
MW_5.JPG
MW_5.JPG [ 51.35 KiB | Zobrazeno 7617 krát ]

_________________
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: pát 03 čer, 2016 12:55 
Offline Stats
26.3157894737 %
26.3157894737 %

Registrován: stř 16 črc, 2014 02:29
Příspěvky: 205
Datum narození: 03 led 1959
ID CNT statistik: 21641
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! 22rrr

_________________
O beata solitudo,
o sola beatitudo!


Naposledy upravil loner dne pát 03 čer, 2016 13:06, celkově upraveno 2

Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pát 03 čer, 2016 13:01 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
adresa projektu, tj. bude to vypadat
Přidat argumenty (volitelné):
Kód:
--project http://csgrid.org/csg update
Spustiv v (volitelné):
Kód:
C:\Program Files\BOINC\
- případně jiný folder, kde je programová část boincu


Přílohy:
udice_CSG.PNG
udice_CSG.PNG [ 8.12 KiB | Zobrazeno 7421 krát ]

_________________
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: pát 03 čer, 2016 13:24 
Offline Stats
52.6315789474 %
52.6315789474 %

Registrován: pon 22 lis, 2010 17:40
Příspěvky: 1212
Bydliště: Hřebeč
Datum narození: 30 črc 1981
ID CNT statistik: 15029
je nutné vyplnit i položku "spustit v"?
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
Obrázek


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pát 03 čer, 2016 13:30 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
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.

_________________
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: pát 03 čer, 2016 13:58 
Offline Stats
26.3157894737 %
26.3157894737 %

Registrován: stř 16 črc, 2014 02:29
Příspěvky: 205
Datum narození: 03 led 1959
ID CNT statistik: 21641
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'

_________________
O beata solitudo,
o sola beatitudo!


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

Registrován: čtv 29 bře, 2007 09:41
Příspěvky: 9342
Bydliště: Brušperk, 48 let
ID CNT statistik: 1
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'

Program či script: "C:\Program Files\BOINC\boinccmd.exe"

Čti správně 45cc .

_________________
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 ˙˙˙


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: pát 03 čer, 2016 14:42 
Offline Stats
26.3157894737 %
26.3157894737 %

Registrován: stř 16 črc, 2014 02:29
Příspěvky: 205
Datum narození: 03 led 1959
ID CNT statistik: 21641
vkliber píše:
Čti správně 45cc .

díky Viki, už to funguje, ještě prověřím ty repetice ..

_________________
O beata solitudo,
o sola beatitudo!


Nahoru
 Profil  
Odpovědět s citací  
 Předmět příspěvku: Re: Projekty s nedostatkem práce
PříspěvekNapsal: stř 03 kvě, 2017 11:59 
Offline Stats
78.9473684211 %
78.9473684211 %

Registrován: úte 13 led, 2009 15:33
Příspěvky: 6214
ID CNT statistik: 10124
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/).
Kód:
/*!
    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")
        {
          // 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.");


Návod k použití
vkliber 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.

Pro vklibera: upravený je řádek 176, přihodil jsem - už hodně dávno
Kód:
|| b_state == "downloaded"

_________________
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í  
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 Předchozí  1, 2

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:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz