Skip to content

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