====A queue rendszer részletesebb bemutatása====
A SLURM (Simple Linux Utility for Resource Management) rendszert használjuk. Ez a [[https://computing.llnl.gov/linux/slurm/|Lawrence Livermore National Laboratory fejlesztése]].
Történeti áttekintést és más queue rendszerekkel összehasonlítást [[queuecomparison|itt]] olvashat.
===Legfontosabb parancsok===
sbatch [param] scriptname.sh
Lefoglalja a kért erőforrásokat (node-okat) majd az egyik lefoglalt node-ban elindítja a kért ''scriptname.sh'' programot, 1 szálon. A script kimenete egy ''slurm-`job-id'.out'' file-ban képződik meg.
srun programname
*sbatch scripten belül használva. Az ''sbatch'' által lefoglalt erőforrásban futtatja a megadott programot. Amennyiben a program egy script, úgy minden allokált magon elindít egy példányt.
* Interaktívan használva. Lefoglalja a kért erőforrásokat (node-okat). Amennyiben a program egy script, úgy minden allokált magon elindít egy példányt. Megvárja, amíg a program(ok) véget érnek. Emiatt elsősorban rövidebb feladatokra, tesztelésre, hibakeresésre használható. Ha éppen üres a queue.
salloc [param]
Interaktívan használható. lefoglalja a kívánt erőforrásokat és shellt ad az indítási gépen (a fejgépen). Programfejlesztésre ajánljuk csak. Alkalmas arra, hogy a lefoglalt node -ra be lehessen interaktívan jelentkezni.
squeue
A queue rendszer állapotát írja ki. Milyen job-ok futnak, melyek várakoznak, stb.
sinfo
Az egész rendszerről ad egy áttekintő képet. Melyik partíción melyik node foglalt, melyik idle, melyik down.
scancel job-id
Ezzel lehet kilőni egy elindított jobot, a véget érése előtt. Ha nem adsz meg paramétert, akkor az összes jobodat (csak a tieidet) kilövi.
===Legfontosabb kapcsolók, opciók:===
Az alábbi kapcsolók egyaránt használhatók az sbatch, srun, salloc parancsoknál.
-p partition
A futtató partíció neve. Lehetséges értékek: hpc2019, login, flocking.
--nodes nodecount
Az allokálandó node-ok száma. Egyéb kapcsoló nélkül a slurm úgy gondolja, hogy node-onkét 1 program (pthread, openMP) fog futni. Lásd a ''--ntasks-per-node'' kapcsolót. A hpc2019 partícióhoz ajánljuk.
-n 3
3 processzormag allokálása. (3 szál indítása). A login, hpc2019 és a flocking partícióhoz ajánljuk.
==Példák 16 szálú MPI programok indítására==
Az alkalmazás természetétől függ, hogy hány szálon lesz a leggyorsabb. Előre megmondani nem tudjuk. Az eddig telsztelt MPI programok 100 szálon nem voltak gyorsabbak, mint 50 szálon. A leggyakoribb maximlális futásteljesítményt 20-50 szál között adták. Gyakori még, hogy a program logikája csak kettőhatvány szállal működik jól.
sbatch --nodes 1 --ntasks-per-node=16 scriptname.sh
Ez 1 node-ot allokál. Ezen a node-on indít 16 szálat.
sbatch --nodes 2 --ntasks-per-node=8 scriptname.sh
Ez 2 node-ot allokál. Mindkét node-on indít 8-8 szálat.
sbatch --nodes 4 --ntasks-per-node=4 scriptname.sh
Ez 2 node-ot allokál. Mindkét node-on indít 8-8 szálat.
sbatch --nodes 16 --ntasks-per-node=1 scriptname.sh
Ez 16 node-ot allokál. Mind a 16 node-on indít 1-1 szálat.
sbatch -n 16 scriptname.sh
Ez "valahogy" elindítja a programot 16 szálon. Ahogy a rendelkezésre álló erőforrások lehetővé teszik. 1 node-on az egészet, vagy 16 node-on egy-egy szálat.
==Másfajta (nem MPI) programok indítása==
Bővebben a [[swquide]] oldalon.