在 slurm中, 2 sockets,2 cores,1 threads 的节点, msk_cpu 分别是 0x1 ,0x2 ,0x4 ,0x8 ,为什么是这样, 是怎么计算出来的
时间: 2023-08-08 16:06:34 浏览: 124
mpich2-install.rar_mpich2
在 Slurm 中,msk_cpu 是一个用于指定 CPU 亲和性的掩码。它是一个十六进制数,每个位表示一个 CPU 核心。如果某个位为 1,则表示该 CPU 核心被分配给该作业或任务。因此,msk_cpu 的值和节点的 CPU 架构、拓扑结构以及分配给该任务的 CPU 数量有关。
对于你提到的这个节点,它有 2 个物理 CPU 插槽,每个插槽中有 2 个 CPU 核心,共 4 个 CPU 核心。由于每个 CPU 核心都可以执行一个线程,因此该节点总共有 4 个线程。
根据这个节点的拓扑结构和线程数,可以得到以下 msk_cpu 的值:
- 当 msk_cpu = 0x1 时,表示使用第一个 CPU 插槽中的第一个 CPU 核心,也就是使用第一个线程。
- 当 msk_cpu = 0x2 时,表示使用第一个 CPU 插槽中的第二个 CPU 核心,也就是使用第二个线程。
- 当 msk_cpu = 0x4 时,表示使用第二个 CPU 插槽中的第一个 CPU 核心,也就是使用第三个线程。
- 当 msk_cpu = 0x8 时,表示使用第二个 CPU 插槽中的第二个 CPU 核心,也就是使用第四个线程。
这些值是通过将每个可用的 CPU 核心映射到二进制位来计算出来的。例如,0x1 表示二进制数 0001,其中最低位为 1,表示使用第一个线程。类似地,0x2 表示二进制数 0010,其中第二位为 1,表示使用第二个线程。
阅读全文