C++ 是否可以决定在MPI或任何其他c+中哪个处理器上运行哪个函数+;图书馆?

C++ 是否可以决定在MPI或任何其他c+中哪个处理器上运行哪个函数+;图书馆?,c++,windows,multithreading,parallel-processing,mpi,C++,Windows,Multithreading,Parallel Processing,Mpi,假设我有8个进程和4个处理器/核心。我可以在程序执行之前将特定进程分配给特定的核心吗 e、 g 处理器1=第4,5号进程 处理器2=进程1,3 处理器3=进程2,6 处理器4=进程号7,8什么操作系统?请参阅Linux版。您可能需要查看该函数。这不完全是你想要的,但是你能得到的最接近的,伊姆霍 进程关联掩码是一个位向量,其中每个位表示一个逻辑处理器,允许进程的线程在该处理器上运行。进程关联掩码的值必须是GetProcessAffinityMask函数获得的系统关联掩码值的子集。进程只允许在系统中

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

e、 g

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

什么操作系统?请参阅Linux版。

您可能需要查看该函数。这不完全是你想要的,但是你能得到的最接近的,伊姆霍

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


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

Windows 7和visual studio。这不是答案,这是一个询问详细信息的评论。即使您可以手动修改关联,也不要这样做。让调度程序完成它的工作。这比你强。我记得阿特伍德的一篇文章:Manu343726,这不一定是真的。例如,参见Hager等人的《多核SMP节点集群上的通信特征和混合MPI/OpenMP并行编程》第9页,其中套接字间通信模式的性能比套接字内通信模式差20-40%。SGI提供了omplace()等实用程序来处理这些情况。这可能是过早的优化,但不一定。