mpi cpu使用率不为';没有道理

mpi cpu使用率不为';没有道理,mpi,cpu-usage,Mpi,Cpu Usage,我的windows系统有8个内核 当我在MPI中使用8个CPU时:mpiexec.exe-n 8,我的8个可用处理器都在任务管理器中忙碌,这是有意义的 当我使用2个内核时:mpiexec.exe-n2,我希望只有2个内核应该是繁忙的,但事实并非如此,我的CPU使用不规则地分布在8个内核上 这是预期的吗?是的,这是预期的行为。Windows(大多数版本)等通用操作系统围绕内核移动进程。这样做的一个原因是确保没有进程缺少执行时间。不要忘记,在大多数Windows计算机上,会有各种进程与计算进程同时运

我的windows系统有8个内核

当我在MPI中使用8个CPU时:
mpiexec.exe-n 8
,我的8个可用处理器都在任务管理器中忙碌,这是有意义的

当我使用2个内核时:
mpiexec.exe-n2
,我希望只有2个内核应该是繁忙的,但事实并非如此,我的CPU使用不规则地分布在8个内核上


这是预期的吗?

是的,这是预期的行为。Windows(大多数版本)等通用操作系统围绕内核移动进程。这样做的一个原因是确保没有进程缺少执行时间。不要忘记,在大多数Windows计算机上,会有各种进程与计算进程同时运行。使用任务管理器查看正在发生的事情,如果除了运行MPI程序的2之外还有几十个进程在运行,请不要感到惊讶

因此,是的,对于运行计算密集型程序的两个进程,您可以预期核心使用是不规则的,但随着时间的推移,平均值为
2/8


当然,对于并行MPI程序的特殊情况,这种行为可能会损害性能。通常,MPI实现提供了一些将进程“固定”到核心的方法。有关如何执行此操作,请参阅MPI实现的文档。但是,如果您发现性能实际上下降了,也不要感到惊讶。是的,这种行为是意料之中的。Windows(大多数版本)等通用操作系统围绕内核移动进程。这样做的一个原因是确保没有进程缺少执行时间。不要忘记,在大多数Windows计算机上,会有各种进程与计算进程同时运行。使用任务管理器查看正在发生的事情,如果除了运行MPI程序的2之外还有几十个进程在运行,请不要感到惊讶

因此,是的,对于运行计算密集型程序的两个进程,您可以预期核心使用是不规则的,但随着时间的推移,平均值为
2/8


当然,对于并行MPI程序的特殊情况,这种行为可能会损害性能。通常,MPI实现提供了一些将进程“固定”到核心的方法。有关如何执行此操作,请参阅MPI实现的文档。但如果您发现我的代码中的性能实际上下降了

,请不要感到惊讶,我有计数器,它们显示每个处理器的进度。我观察到,在2、4、8处理器的所有情况下,第一个处理器(处理器编号0)总是比其他处理器慢得多。在我的代码中,我有
计数器
,它们显示每个处理器的进度。我观察到,在2、4、8处理器的所有情况下,第一个处理器(处理器编号0)总是比其他处理器慢得多。