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é (to se týká zejména Aisy). 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
unixkE2z2ookp@fiFB-HbiOJf.muniKskA3hFkI.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, 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
unixTjAkOkVwM@fiAihRtW5eX.munig4a9TLNqy.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ěmps ux
– výpis informací o mých procesechiostat
– výpis informací o I/O operacíchwho
– 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ůhead /proc/pressure/*
– sledování PSI (Pressure Stall Information)