【问题标题】:Open MPI: using bind-to-core while oversubscribingOpen MPI:在超额订阅时使用绑定到核心
【发布时间】:2014-08-04 22:10:53
【问题描述】:

我的问题是超额订阅时是否可以使用--bind-to-core 标志?我正在使用 OPEN MPI 版本 1.5.4 并尝试使用 2 倍(16 个内核上的 32 个进程)超额订阅:

mpirun --bind-to-core --bynode --npersocket 32 --mca mpi_yield_when_idle 1 -n 32 ./$prog

但它返回一个错误:

32 total processes failed to start

但是,如果我不使用 --bind-to-core 一切正常。这里有什么问题?能解决吗?

【问题讨论】:

    标签: mpi openmpi


    【解决方案1】:

    -npersocket 选项激活--bind-to-socket,这与--bind-to-core 冲突。您可能可以通过编写 rankfile 来绕过它 - 与主机文件非常相似,但它也包含每个等级的绑定信息。例如,要将 4 个进程绑定到主机 localhost 上的 2 个内核,可以使用以下 rankfile:

    rank 0=localhost slot=0
    rank 1=localhost slot=0
    rank 2=localhost slot=1
    rank 3=localhost slot=1
    

    等级文件通过--rankfile 选项提供给mpiexec。更多信息请咨询Open MPI documentation

    【讨论】:

    • 谢谢。是否有另一种方法来检查绑定以确认分配?至于我 --report-bindings 没有提供有关进程绑定的任何输出
    • 您是否有机会将标准错误流重定向到/dev/null
    • 我不认为它被重定向到那里。我正在为我的作业使用 LSF 提交系统,并且在我将输出重定向到的日志文件中出现其他错误和输出。
    猜你喜欢
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2012-11-12
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多