Slurm resursihaldur
Slurm (Simple Linux Utility for Resource Management) on arvutiklastri jaoks mõeldud rakendus mille ülesandeks on jagada etteantud töid mööda arvutiresursse laiali, monitoorida töötavaid protsesse ja pidada tööde üle järjekorda.
Üldiselt näeb slurmi arhidektuur välja sarnane allolevale pildile. On keskne haldusserver, kuhu kasutajad logivad ja käske käivitavad ning terve hulk arvutusnodesid-servereid, milledele slurm töid edastab.
Tööde käivitamine
Saadame slurmi töö mis käivitatakse neli korda ja mis väljastab masina kerneli versiooni.
# srun --ntasks=4 uname -a srun: job 561700 queued and waiting for resources srun: job 561700 has been allocated resources idu08 idu08 idu08 idu08
Või soovides käivitada lihtsalt kokku 24 tööd kõigil nodedel ja ja lasta slurmil ise nad jagada laiali
# srun --ntasks=24 --partition=gpu hostname
Tasub muidugi tähele panna, et srun sobib peamiselt testimiseks või väga lihtsateks töödeks ning keerukamatel kasutusjuhtudel tuleks kasutada käske salloc või sbatch Põhimõtteliselt sama esimene näide skriptiga tehtuna, tekitame parallel_uname.sh
#!/bin/bash
#SBATCH –J test (1)
#SBATCH –N=4 (2)
#SBATCH --ntasks-per-node=4 (3)
#SBATCH --output=kontroll.out (4)
uname -a (5)
- Seadistab töö nime mida näeb squeue käsuga
- Määrab mitut füüsilist serverit kasutatakse
- Määrab, mitu ülesannet ühel serveril käivitatakse
- Väljundfaili nimi – programm ei edastada väljundit kohe ekraanile vaid faili.
- käsk, mida käivitatakse. Antud juhul uname -a
Paneme käima
# sbatch parallel_uname.sh Submitted batch job 65918
Ja väljund
# cat slurm-65918.out Linux stage59 2.6.32-431.17.1.el6.x86_64 #1 SMP Wed May 7 14:14:17 CDT 2014 x86_64 x86_64 x86_64 GNU/Linux
Tööde haldus
Tööde nimekirja näeb
# squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
561555 gpu python hpc_tane R 4-22:47:46 1 idu41
561544 gpu punct2 ottokar R 5-02:52:19 1 idu40
561538 gpu punct2 ottokar R 5-03:06:09 1 idu39
561528 gpu train_HO hpc_tane R 6-07:54:01 1 idu40
561490 gpu train_HO hpc_tane R 7-06:15:40 1 idu39
561795 long EUWEST_6 elmer R 10:09:00 1 idu30
561802 long EESTI1_7 elmer R 4:01:17 1 idu02
561801 long EESTI1_4 elmer R 4:01:18 1 idu01
561800 long EUWEST_7 elmer R 4:01:19 1 idu12
561794 long SLOVAK_6 elmer R 10:13:23 1 idu06
561793 long EESTI1_2 elmer R 16:04:42 1 idu05
561792 long EESTI1_6 elmer R 16:09:14 1 idu03
561647 long bash hpc_kuz R 3-19:32:13 1 idu04
561810 long run_R-1- hpc_eero R 1:58:03 1 idu34
561811 long run_R-1- hpc_eero R 1:58:03 1 idu31
561813 long run_R-1- hpc_eero R 1:58:03 1 idu32
561809 long run_R-1- hpc_eero R 2:08:03 1 idu29
561806 long run_R-1- hpc_eero R 2:18:03 1 idu33
561808 long run_R-1- hpc_eero R 2:18:03 1 idu35
idu seisu vaatamiseks juurest või suvalisest idust anda käsk
# scontrol show node idu38 NodeName=idu38 Arch=x86_64 CoresPerSocket=6 CPUAlloc=8 CPUErr=0 CPUTot=12 CPULoad=5.82 Features=K20 Gres=gpu:2 NodeAddr=idu38 NodeHostName=idu38 OS=Linux RealMemory=48000 AllocMem=18432 Sockets=2 Boards=1 State=MIXED ThreadsPerCore=1 TmpDisk=200000 Weight=100 BootTime=2015-01-21T00:23:33 SlurmdStartTime=2015-01-21T00:24:09 CurrentWatts=0 LowestJoules=0 ConsumedJoules=0 ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/ s
