Informacije o zaračunavanju
Da bi uporabnikom zagotovili pravičen delež gruče in da bi upoštevali razlike v uporabljenih virih, sistem Vega uporablja računovodstvo in sistem za pravično rabo Slurm. Sistem Slurm’s Trackable RESources (TRES) omogoča razporejevalniku, da uporabnikom zaračunava toliko virov, kot so jih uporabili. Na sistemu Vega smo nastavili TRES za uporabo enot CPU, GPU in pomnilnika.
Za ogled konfiguracije zaračunavanja TRES lahko zaženete:
scontrol show partition <name>
Ponderji za particijo CPU so naslednji:
CPU=1.0,Mem=1G
Ponderji za particijo CPU z veliki pomnilnik so naslednji:
CPU=1.0,Mem=0.25G
Ponderji za particijo GPU so naslednji:
CPU=1.0,Mem=0.5G,GRES/gpu=64.0
Ker so vse enote CPU istega tipa smo TRES normalizirali na 1.0. Teoretična zmogljivost procesorja AMD EPYC 7H12 je 2 teraflopa na procesor in teoretična najvišja zmogljivost z dvojno natančnostjo grafičnih kartic NVIDIA A100 je 9,5 teraflopa.
Vir | Tip TRES za particijo cpu/longcpu | Tip TRES za particijo gpu | Tip TRES za particijo largemem |
---|---|---|---|
AMD Epyc | 1.0 | 1.0 | 1.0 |
NVIDIA A100 | 0 | 64.0 | 0 |
Pomnilnik | 1GB | 0.5GB | 0.25GB |
Izračun uporabe
Uporabniki lahko enostavno izračunajo svojo uporabo z naslednjo formulo:
TRESBillingJobValue = JobWalltime * TRESBillingJobWeight
Pri čemer je JobWalltime realno trajanje posla, TRESBillingJobWeight pa se izračuna z naslednjo formulo:
TRESBillingJobWeight = MAX(TRESAllocatedCPUs*TRESBillingCPU,TRESAllocatedMem*TRESBillingMem,TRESAllocatedGPUs*TRESBillingGPU)
Uporaba v CoreHours se izračuna z naslednjo formulo:
JobUsageCost[CoreHours] = 1/2 TRESBillingJobValue
Uporaba v NodeHours se izračuna z naslednjo formulo:
JobUsageCost[NodeHours] = 1/256 TRESBillingJobValue
Primer
Če zahtevani posel:
Cores = 256
Memory = 250GB
GPU Nodes = 4
in JobWalltime je 1 ura
JobWalltime=1
TRESBillingJobWeight se izračuna z naslednjo formulo:
TRESAllocatedCPUs=256
TRESBillingCPU=1
TRESAllocatedMem=250
TRESBillingMem=0.5
TRESAllocatedGPUs=4
TRESBillingGPU=64
TRESBillingJobWeight = MAX(256*1, 250*0.5, 4*64)= 256
Zdaj lahko izračunamo TRESBillingJobValue z naslednjo formulo:
TRESBillingJobValue = JobWalltime * TRESBillingJobWeight
TRESBillingJobValue = 1*256 =256
Uporaba v CoreHours je:
JobUsageCost[CoreHours] = 256/2 = 128
Uporaba v NodeHours je:
JobUsageCost[NodeHours] = 256/256 = 1