Prvi posel
Če so za vas gruče HPC Vega ali sistem Slurm nekaj novega, si oglejte navodila za izvajanje vaše prve naloge. Preberite poglavje Upravljanje datotek za več informacij o tem, kam vnesti izhodne datoteke vaših nalog.
Najpreprostejši način za zagon naloge je uporaba ukaza srun.
[user@login0004 ~]$ srun -N 2 -n 4 hostname
cn0321
cn0321
cn0320
cn0320
V naslednjem primeru, ko zaženete nalogo imena gostitelja, sta potrebni dve vozlišči, vsako z desetimi opravili na vozlišče, dva CPU-ja na opravilo (40 CPU-jev skupno), 1 GB pomnilnika na particiji, imenovani express, za eno uro:
srun --partition=cpu --nodes=2 --ntasks 10 --cpus-per-task 2 \
--time=00:00:30 --mem=1000MB hostname
Slabost ukaza srun je v tem, da blokira našo ukazno vrstico, med tem ko se naš ukaz ne zapira. Poleg tega je težje izvajati bolj kompleksne naloge z različnimi nastavitvami. V takšnih primerih je bolje uporabiti ukaz sbatch in pošiljati posamezna opravila znotraj naše naloge ter jih zapisovati v datoteko z bash-skripto.
#!/bin/bash
#SBATCH --job-name=my_job
#SBATCH --partition=cpu
#SBATCH --ntasks=4
#SBATCH --nodes=1
#SBATCH --mem-per-cpu=100MB
#SBATCH --output=my_job.out
#SBATCH --time=00:01:00
srun hostname
To je primer batch-skripte. Na vrhu skripte je komentar #!/bin/bash, ki ukazni vrstici sporoča, da gre za datoteko z bash-skripto. Temu sledijo vrstice nastavitev za našo nalogo, ki imajo vedno predpono #SBATCH. Z naslednjimi parametri določimo rezervacijo, število opravil in število vozlišč za naše opravilo (--reservation, --ntasks in --nodes).
-
--job-name=my_ job_name: ime naloge, ki se prikaže ob poizvedbi z uporabo ukaza squeue.
-
--partition=cpu: particija, v kateri želimo izvesti našo nalogo.
-
--mem-per-cp =100MB: količina sistemskega pomnilnika, potrebnega za našo nalogo za vsako opravilo (če gledamo jedro procesorja).
-
--output=my_job.out: ime datoteke, v kateri je zapisana vsebina, ki bi jo naša naloga natisnila v standardni izhod (zaslon).
-
--time=00:01:00: časovna omejitev naše naloge v formatu
hour:minute:second
.
Naslednji korak je zagon ustvarjene naloge.
$sbatch ./my_job.sh
Submitted batch job 287999
Ustvari se izhodna datoteka my_job.out.
$cat ./my_job.out
cn0321
cn0321
cn0321
cn0321