在安装了Open MPI的Ubuntu上,我可以使用-bind-to命令将每个进程绑定到诸如mpiexec -np 4 -bind-to core python mycode.py
之类的物理核心。现在,我必须在装有MS-MPI的Windows上工作,我不知道是否有类似的功能。
我曾尝试根据this page使用-affinity和-affinity_layout,例如
mpiexec -np 4 -affinity -affinity_layout spread:P python mycode.py
应该会在我的2个物理核心笔记本电脑上引发错误。但这很好。你有什么想法吗?
答案 0 :(得分:0)
与Microsoft MPI的关联性确实有效;当多个等级排在一个核心时(即当您超额订购时),Microsoft MPI才不会抱怨。
可以在“任务管理器>详细信息>(右键单击进程)>设置亲和力”中找到正在运行的进程的亲和力。
因此,在我的10核计算机上,运行
mpiexec -n 2 -affinity -affinity_layout spread:P notepad.exe
产生亲和力
rank | 0 | 1 |
CPU | 0 | 5 |
跑步时
mpiexec -n 11 -affinity -affinity_layout spread:P notepad.exe
产生
rank | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
CPU | 0 | 5 | 1 | 6 | 2 | 7 | 3 | 8 | 4 | 9 | 0 |
即,当所有内核耗尽时,映射会默默地环绕。