当我执行mpirun --map-by node --bind-to numa --report-bindings ./out 26
时,--bind-to
选项会导致以下错误:
在Linux上,缺乏功能可能意味着你在 Linux中不支持处理器和内存关联的平台 本身,或者hwloc是在没有NUMA和/或处理器亲和力的情况下构建的 支持。在构建hwloc时(取决于你的Open MPI) 安装,可能嵌入Open MPI本身),重要的是 有libnuma标头和库文件可用。不同的linux 发行版以不同的名称打包这些文件;寻找 包含“numa”字样的包。您可能还需要开发人员 包的版本(例如,名称中带有“dev”或“devel”) 获取相关的头文件。
ompi_info | grep hwloc
显示:
MCA hwloc:hwloc1117(MCA v2.1.0,API v2.0.0,Component v3.0.0)MCA
rtc:hwloc(MCA v2.1.0,API v1.0.0,Component v3.0.0)
所以我猜我支持流程亲和力。我有26个双核节点,我想每个节点只使用1个CPU。为什么我不能绑定进程?
答案 0 :(得分:0)
您确定Open MPI无法绑定进程吗?
请注意,您的命令行会尝试将MPI进程绑定到NUMA域(大多数时候是套接字)。如果要绑定到核心,那么
mpirun -bind-to core ...
为了检查进程绑定
mpirun -report-bindings ...
由于缺少库,您可以设置进程关联但不能设置内存关联。
sudo yum install -y numactl-devel
应该在基于RedHat的系统上做到这一点。
在此之后,您需要configure
和make install
。