在安装了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个物理核心的笔记本电脑上引发错误。但它工作得很好。你有什么想法吗?
发布于 2019-09-12 07:01:37
与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 |即,当所有核心都耗尽时,映射静默地环绕。
https://stackoverflow.com/questions/53578513
复制相似问题