Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jak dlouho trvá uloha/kolik si bere CPU time  (Přečteno 1559 krát)

Lukáš Vlček

  • Návštěvník
  • Příspěvků: 19
    • iZone
Jak dlouho trvá uloha/kolik si bere CPU time
« kdy: 20 Února 2013, 18:59:29 »
Ahoj,
Chtěl bych poprosit o radu.
Potřebuji jak dlouho trval nějaký proces a dále kolik si vzdal procesorového času. Dá se to nějak zjistit?
Děkuji za každou radu/připomínku.

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Jak dlouho trvá uloha/kolik si bere CPU time
« Odpověď #1 kdy: 20 Února 2013, 19:35:22 »
Kód: [Vybrat]
man time
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Lukáš Vlček

  • Návštěvník
  • Příspěvků: 19
    • iZone
Re:Jak dlouho trvá uloha/kolik si bere CPU time
« Odpověď #2 kdy: 21 Února 2013, 14:38:02 »
Díky =) To mě nenapadlo... :D Ještě bych se chtěl zeptat jestli jde nějak ověřit jestli proces(job) stále běží nebo už skončil.
Dělám jednu úlohu a potřebuji jí volat znovu s vyšším parametrem poté co ta původní skončí... Nevíte jak to ověřit?
Moje myšlenka je že do nějaké proměnné ukládat daného ID procesu(jobu) a pak se pomocí cronu ověřovat zda běží nebo už skončil...

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re:Jak dlouho trvá uloha/kolik si bere CPU time
« Odpověď #3 kdy: 21 Února 2013, 14:50:33 »
Kouknout - vidět (a případně uložit...)
Kód: [Vybrat]
ps -A | grep <program>Co kdyby ta úloha na konci forknula (spustila v jiném procesu) sama sebe s jiným parametrem?

Pokud je ten řetěz krátký, tak stačí napsat script který je sekvenčně zavolá...hledej základy příkazového řádku...
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Jak dlouho trvá uloha/kolik si bere CPU time
« Odpověď #4 kdy: 21 Února 2013, 20:26:06 »
Citace
Ještě bych se chtěl zeptat jestli jde nějak ověřit jestli proces(job) stále běží nebo už skončil
no já bych ten program spouštěl pomocí scriptu, kde bych napsal něco jako
Kód: [Vybrat]
ps -e | cut -c -5 > $PWD/ps.log to by mi mělo vytáhnout ID procesu a uložit do logu. Taky se chráníš před sledováním nesprávného programu (pokud by jich běželo víc současně). Pak bych si ho vytáhl ze všech běžících programů podle názvu
Kód: [Vybrat]
#ps | grep program | cut -c -5 > $PWD/psall.log a pak porovnáváním jen čekal, kdy zmizí. Ale je to střeleno jen narychlo od pasu  ::)
« Poslední změna: 21 Února 2013, 20:27:46 od Cuore »

Lukáš Vlček

  • Návštěvník
  • Příspěvků: 19
    • iZone
Re:Jak dlouho trvá uloha/kolik si bere CPU time
« Odpověď #5 kdy: 21 Února 2013, 22:09:38 »
Asi takhle mám napsaný program který spouštím na clusteru kde se vytvoří x paralelních jobů (záleží kolik je vstupních souborů - pro každý soubor jeden job) tady ten program počítá průchodnosti elektrických obvodů pomocí log. hradel přes vektory(který jsou ve vstupním souboru) a pak následně generuje reporty...
Vesměs všechno mám(teď už i ten CPU time + real time :D)

Jen toto musím ještě dodělat:
Ten program má udělaný tak že se nastavuje hodnota do které testuje vektor... Tak a když je hodnota 1 tak vyhodí hromadu vektorů který nejdou vyřešit... tak se zvedne hodnota např 100* teď už job trvá delší dobu(testuje více do hloubky) a už vyhodí méně vektorů které nejdou vyřešit a pořád se to opakuje dokud nezbudou jen opravdu neřešitelné vektory + chybné vektory.
Dělá se to proto že je to rychlejší než nastavit hodnotu na 100.000 a čekat protože by se testoval každý vektor do hloubky 100.000 což by bylo náročnější i na výpočetní výkon.

Měl jsem myšlenku(jako jsem psal nahoře v příspěvku... třeba po 5 min kontrolovat ID jobu) a když už není tak spustit znovu s větší hodnotou

Kouknout - vidět (a případně uložit...)
Kód: [Vybrat]
ps -A | grep <program>Co kdyby ta úloha na konci forknula (spustila v jiném procesu) sama sebe s jiným parametrem?

Pokud je ten řetěz krátký, tak stačí napsat script který je sekvenčně zavolá...hledej základy příkazového řádku...

To co píšete zní velmi zajímavě určitě vyzkouším

Vesměs to spouštím tímto jednoduchým sh
Kód: [Vybrat]
for fname in `ls ~/projekt/BENCH/`
do
  fn=`basename "$fname" .bench`
  echo "Job pro: $fname = $fn"

  qsub -cwd -b y -j y ./ATALANTA -N -b 1 -B 0 -Z -W 2 -X -n ~/BENCH/$fname -F ~/projekt/PROCESSED/$fn".processed" -t ~/projekt/TEST/$fn".test" -U ~/projekt/ABORTED/$fn".aborted" -P ~/projekt/REPORT/$fn".report"
done

 

Provoz zaštiťuje spolek OpenAlt.