是否可以决定哪个函数在MPI或任何其他c ++库中的哪个处理器上运行?

时间:2013-12-28 14:16:05

标签: c++ windows multithreading parallel-processing mpi

假设我有8个进程和4个处理器/核心。我可以在程序执行之前将特定进程分配给特定的核心吗?

e.g

处理器1 =进程号4,5 处理器2 =进程号1,3 处理器3 =处理否2,6 处理器4 =进程号7,8

2 个答案:

答案 0 :(得分:2)

您可能需要查看SetProcessorAffinityMask()功能。这不是你想要的,但你可以得到最接近的,恕我直言。

  

进程关联掩码是一个位向量,其中每个位表示允许进程的线程运行的逻辑处理器。进程关联掩码的值必须是GetProcessAffinityMask函数获取的系统关联掩码值的子集。只允许在配置到系统中的处理器上运行进程。因此,当系统关联掩码为该处理器指定0位时,进程关联掩码不能为处理器指定1位。

我建议您也查看该页面上的评论。

答案 1 :(得分:0)

什么操作系统?有关Linux的信息,请参阅sched_setaffinity cpu affinity in linux