我的目標是根據用戶分配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-seconds。
在我提到的例子中,在我的服務器上1秒鐘相當於8個CPUTimeRAW。所以我猜CPU分配數是8.所以02:22 * 8 =(CPUTime = 00:18:56)這是正確的。我在1核上運行,所以我猜每個內核都分配了8個CPU。 @ciaron – Alper
如果你設置了一個8核的節點,那麼使用'-N1'運行會得到一個完整的節點,即所有8個核心的分配都是正確的。 – ciaron