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