Provozování výpočtů

Obecné informace

Tento text upravuje podmínky, za jakých je možné na obecně dostupných sdílených fakultních strojích spouštět procesy, které jsou náročnější na systémové prostředky (paměť, CPU, diskové operace atd.) nebo jsou dlouhodobějšího charakteru a pod.

Při spouštění takovýchto procesů je obecně potřeba dbát na to, že k fakultním strojům nemáte výhradní přístup a současně je mohou používat i další uživatelé. Proto je nutné spouštět takovéto procesy ohleduplně, zejména aby nebyli omezováni interaktivně pracující uživatelé. Toho lze dosáhnout dodržováním níže uvedených instrukcí.

U výpočtů většího rozsahu (trvání v řádu dnů, více strojů, intenzivní na CPU) je také potřeba nahlásit je se stručným zdůvodněním a délkou trvání na adresu unix(atsign)fi(dot)muni(dot)cz.

U neopakovaných krátkodobých procesů nebo při interaktivním ladění vašich programů tyto instrukce není nutné uplatňovat. Také provozování výpočtů na Auře funguje v jiném režimu a neuplatňují se všechna zde popsaná omezení.

Správci fakultních strojů průběžně sledují využívaní strojů. V případě upozornění správci je potřeba snížit generovanou zátěž. Procesy, které nejsou nahlášeny nebo nadměrně zatěžují stroj(e), mohou být bez upozornění ukončeny. Také v případě opakovaného nebo vážnějšího nedodržování zde uvedených instrukcí mohou správci přistoupit k dočasné blokaci účtu.

Omezující opatření

Na strojích v učebnách, které se přímo využívají při výuce (Nymfe23-74 a někdy i Luna01-12), je nežádoucí spouštět výpočty v době výuky nebo potenciálních zkoušek, t.j. obecně mezi 07:45-20:15. Obecně je však nejlepší spouštět výpočty pouze v noci, pokud je to možné.

Pokud jsou výpočty dlouhodobějšího charakteru a jsou součástí výzkumu, resp. závěrečné práce, je vhodné použít výpočetní server Aura k tomu určený. Nemáte-li k němu přístup, v odůvodněných případech můžete požádat o jeho přidělení na adrese unix(atsign)fi(dot)muni(dot)cz.

U procesů náročných na CPU je potřeba nastavit jim nejnižší prioritu +19 například příkazem nice:

nice -n +19 ./program

Také je možno omezit běh vláken procesu jenom na specifikovaná jádra CPU příkazem taskset:

taskset -c 1-2,4 ./program

Pokud spuštěný proces generuje diskovými operacemi vyšší I/O zátěž (náhodný přístup, velké přenosy), je vhodné soubory s takovýmto přístupem umístit do složky na lokálním disku (/tmp), ne do domovského adresáře (/home/xlogin), jelikož ten je dostupný po síti přes NFS a svazek, na kterém jsou data umístěna, je využíván i ostatními stroji.

Množství paměti využité procesy spuštěnými z jedné instance shellu lze při spouštění paměťově náročnějších výpočtů omezit pomocí příkazu ulimit -v jako prevenci proti vyčerpání nebo nadměrnému využívání paměti. Také můžete stanovit limit pro spotřebovaný čas procesu pomocí příkazu ulimit -t; při překročení limitu bude proces ukončen signálem KILL. Více informací o něm a jeho dalších možnostech poskytne příkaz help ulimit nebo dokumentace systémového voláni setrlimit.

Monitorování zatížení

Během výpočtů je vhodné průběžně sledovat stav, resp. vytíženost stroje (zaplnění disků, paměti, I/O, load, stav procesů), k čemu slouží například tyto nástroje:

  • top, htop – souhrnné informace o systému a procesech v něm
  • ps ux – výpis informací o mých procesech
  • iostat – výpis informací o I/O operacích
  • who – výpis přihlášených uživatelů (relevantní jenom pro stroje v učebnách a hale)
  • df – využití kapacity diskových svazků