目前我是使用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中可以分配特定核心吗?或者我是否需要使用替代基准来执行此操作?
答案 0 :(得分:0)
将进程(mpi排名)分配到节点的方式依赖于mpi启动程序(在你的情况下为mpirun),它与应用程序无关,尽管应用程序性能会受到影响以及应用程序执行如果使用本地资源,如本地文件系统中的文件。顺便说一句,固定到特定核心的进程也是mpi启动器或mpi库的责任。
由于您没有指定您使用的mpi实现,我强烈建议您查看man mpirun。某些mpirun命令允许-ppn指定每个节点的进程数。其他允许您限制机器文件中的插槽数。
最后,一些mpi发射器提供了一定程度的详细程度,以向用户显示进程如何映射到节点。