私の目標は、CPUを割り当てた時間(秒)に基づいてユーザーに課金することです。それを測定するための最良のパラメータは何ですか?sacct:{CPUTimeRAWとCPUTime}を秒単位でリアルタイムに変換するにはどうすればよいですか?
私は実行方法:
例1:
sbatch -N1 run.sh
Submitted batch job 20
scontrol update jobid=20 TimeLimit=0-00:01
sacct -o totalcpu,cputime,cputimeraw,Elapsed,SystemCPU,time -j 20
TotalCPU CPUTime CPUTimeRAW Elapsed SystemCPU Timelimit
---------- ---------- ---------- ---------- ---------- ----------
00:00:00 00:11:52 712 00:01:29 00:01:00
00:00:00 00:11:52 712 00:01:29
私は1分と時間制限を入れていたが、それは時間制限を超えたようにそれはそう29秒間。それは普通ですか?
例2:
sbatch -N1 run.sh
Submitted batch job 21
scontrol update jobid=21 TimeLimit=0-00:02
sacct -o totalcpu,cputime,cputimeraw,Elapsed,SystemCPU,time -j 21
TotalCPU CPUTime CPUTimeRAW Elapsed SystemCPU Timelimit
---------- ---------- ---------- ---------- ---------- ----------
00:00:00 00:18:56 1136 00:02:22 00:02:00
私は2分と時間制限を入れていたが、それは22秒の制限時間を超えているように思えます。それは普通ですか?
{CPUTimeRAW
とCPUTime
}をreal time
に秒単位で変換するにはどうすればよいですか?私が示した例に基づいて、私はそれらの間の関係を見つけることができませんでした。
CPUTimeRaw =単位はCPU秒です。 、これは
slurm.conf
にKillWait
フラグによって決定される
私の例では、私のサーバー上で言えば、1秒は8CPUTimeRAWに相当します。だから私は割り当てられたCPUの数は8だと思います。02:22 * 8 =(CPUTime = 00:18:56)は正しいです。私は1コアで走っていたので、各コアが8 CPUを割り当てていると思います。 @ciaron – Alper
8つのコアを持つノードを設定した場合、 '-N1'を実行すると完全なノードが得られます。つまり、8つのコアがすべて正しく割り当てられます。 – ciaron