我的Windows系统有8个核心.
当我使用8个CPU和我的MPI:时mpiexec.exe -n 8,我的8个可用处理器中的所有处理器都忙于任务管理器,这是有道理的.
当我使用2个内核时:mpiexec.exe -n 2我希望只有2个内核应该忙,但事实并非如此,而且我的CPU占用率不规则分布在8个内核上.
预期会有这种观察吗?
是的,这种行为是预期的.诸如(大多数版本)Windows之类的通用操作系统会在核心周围移动进程.其中一个原因是确保没有任何进程缺乏执行时间.不要忘记,在大多数Windows计算机上,将会有与您的计算过程同时运行的各种进程.使用任务管理器查看发生了什么,如果除了运行MPI程序的2个进程外还有许多进程在运行,请不要感到惊讶.
所以,是的,有两个进程运行一个计算密集型程序,你可以预期核心使用是不规则的,但2/8随着时间的推移平均.
当然,对于并行MPI程序的特殊情况,这种行为可能会对性能造成损害.通常,MPI实现提供了一些将进程"固定"到核心的方法.有关如何执行此操作,请参阅MPI实现的文档.但如果您发现性能下降,请不要感到惊讶