【问题标题】:Being sure that mpi split work among cores确保 mpi 在内核之间拆分工作
【发布时间】:2015-02-02 19:52:19
【问题描述】:

如您所知,即使只有一个处理器具有一个内核,mpi 也可以运行一堆进程。假设我有一个双核单处理器。如果我使用mpiexec.mpich -np 2 ./out 运行程序,我如何确定工作分配给了两个内核?

【问题讨论】:

    标签: mpi multicore


    【解决方案1】:

    确认您在两个内核上运行的最简单方法可能是执行类似紧的 while 循环这样的操作,该循环会导致处理器使用率飙升:

    #include <mpi.h>
    
    int main(int argc, char** argv)
    {
        MPI_Init(&argc, &argv);
    
        while(1) {}
    }
    

    然后您可以使用 top 之类的内容查看您的使用情况,以确保它符合您的预期。

    如果您想对流程的运行位置进行细粒度控制,MPICH 可以选择让您做到这一点。您可以在wiki 页面上找到所有选项。有一些标志可以让您绑定到内核、硬件线程、套接字等。

    【讨论】:

    • 使用 top 时应该注意什么?
    • 您有多个 100% 的进程。
    猜你喜欢
    • 2013-05-19
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2015-12-19
    • 2014-10-03
    相关资源
    最近更新 更多