簡體   English   中英

如何使用 slurm 將作業分配給集群上的所有 CPU?

[英]How to allocate job to all CPUs on a cluster using slurm?

我正在運行一個 python 腳本,該腳本使用多處理(使用所有 64 個內核),當我嘗試在集群節點上運行其中一個作業時,它僅在 32 個可用內核上運行 64 個進程(所以它們都運行在50%)。 當我嘗試將 --cpus-per-task 更改為 64 時,它表示 CPU 配置不可用。 我已經嘗試過 --threads-per-core == 2 並且效果不佳。

如果有人知道如何使用 slurm 訪問節點的所有 CPU,請幫助!

正如您在scontrol show nodes的 output 中看到的那樣,您的節點每個都配置有 32 個 CPU。 似乎節點只有 32 個 CPU 可用,而 CPU 是 Slurm 知道的最小單元,即如果使用超線程(threadspercore=2),Slurm 中的每個CPU都是一個Thread

如我所見,您的節點有 16 個內核,每個內核有兩個線程。 因此嘗試在它們上運行 64 個線程,將導致每個線程僅獲得 50%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM