如何保证为每个节点正确分配进程数

时间:2017-10-17 17:32:20

标签: mpi

目前我是使用IMB基准测试的新手,并希望确保

是否在节点和每个核心中均匀分配检查配置的进程数(np)

目前,IMB基准测试根据具有固定持续时间大小的固定消息大小提供每秒吞吐量

例如下面的这个。

$ mpirun -np 64 -machinefile hosts_infin ./IMB-MPI1 -map 32x2 Sendrecv

#-----------------------------------------------------------------------------
       #bytes #repetitions  t_min[usec]  t_max[usec]  t_avg[usec]   Mbytes/sec
            0         1000         0.76         0.76         0.76         0.00
            1         1000         0.85         0.85         0.85         2.35
            2         1000         0.79         0.79         0.79         5.06
            4         1000         0.80         0.80         0.80        10.00
            8         1000         0.78         0.78         0.78        20.45
           16         1000         0.79         0.80         0.80        40.16
           32         1000         0.79         0.79         0.79        80.61
           64         1000         0.79         0.79         0.79       162.59
          128         1000         0.82         0.82         0.82       311.41
          256         1000         0.91         0.91         0.91       565.42
          512         1000         0.95         0.95         0.95      1082.13
         1024         1000         0.99         0.99         0.99      2076.87
         2048         1000         1.27         1.27         1.27      3229.91
         4096         1000         1.71         1.71         1.71      4802.87
         8192         1000         2.49         2.50         2.50      6565.97
        16384         1000         4.01         4.01         4.01      8167.28
        32768         1000         7.08         7.09         7.08      9249.23
        65536          640        22.89        22.89        22.89      5725.50
       131072          320        37.45        37.45        37.45      6999.22
       262144          160        65.74        65.76        65.75      7972.53
       524288           80       120.10       120.15       120.12      8727.37
      1048576           40       228.63       228.73       228.68      9168.57
      2097152           20       445.38       445.69       445.53      9410.86
      4194304           10       903.77       905.97       904.87      9259.29

#-----------------------------------------------------------------------------

但是,当我配置不同数量的处理器时,这并不能保证进程均匀分布到节点。

在IMB-benchmark中可以分配特定核心吗?或者我是否需要使用替代基准来执行此操作?

1 个答案:

答案 0 :(得分:0)

将进程(mpi排名)分配到节点的方式依赖于mpi启动程序(在你的情况下为mpirun),它与应用程序无关,尽管应用程序性能会受到影响以及应用程序执行如果使用本地资源,如本地文件系统中的文件。顺便说一句,固定到特定核心的进程也是mpi启动器或mpi库的责任。

由于您没有指定您使用的mpi实现,我强烈建议您查看man mpirun。某些mpirun命令允许-ppn指定每个节点的进程数。其他允许您限制机器文件中的插槽数。

最后,一些mpi发射器提供了一定程度的详细程度,以向用户显示进程如何映射到节点。