首页 > 解决方案 > 超线程:没有足够的可用插槽

问题描述

我试图将 4 个任务分配给 4 个处理器。的输出hwloc-ls --of console是:

L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
      PU L#0 (P#0)
      PU L#1 (P#2)
L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
      PU L#2 (P#1)
      PU L#3 (P#3)

从中我推断有 2 个内核和总共 4 个处理器。从图形上看,

在此处输入图像描述

我根据Hristo制作了一个等级文件:

排名文件:

rank 0=localhost slot=p0
rank 1=localhost slot=p2
rank 2=localhost slot=p1
rank 3=localhost slot=p3

并且还-use-hwthread-cpus根据Gilles添加了选项,导致以下命令:

mpirun -use-hwthread-cpus -n 4 -H localhost -rf rankfile ./a.out

但是,我收到错误消息:

系统中没有足够的可用插槽来满足应用程序请求的 2 个插槽。

我一直在尝试不同的排名文件,因为Hamy希望问题与引用处理器的方式有关,但我仍然收到每个组合的错误消息。我的 OpenMPI 版本是 3.0.1。

标签: mpiopenmpihyperthreading

解决方案


推荐阅读