问题描述
我在多核机器上使用了一个简单的基准测试,该基准测试实现了一个块矩阵乘法,我在多核机器上运行了“强扩展”的代码,并得到了不同的结果,
下面列出了具有不同结构的机器:
主机 | 操作系统 | 内存 | 处理器 | 套接字 | 每个插槽的内核 | 每核线程 | L1d | L1i | L2 | L3 | 最大频率 |
---|---|---|---|---|---|---|---|---|---|---|---|
Host1 | Ubuntu 18.04 | 256 GB | AMD 皓龙 6168 | 4 | 12 | 1 | 64K | 64K | 512K | 5118K | 1.9 GHz |
Host2 | Ubuntu 18.04 | 1 TB | AMD 皓龙 6272 | 4 | 8 | 2 | 16K | 64K | 2048K | 6144K | 1.9 GHz |
Host3 | CentOS 7.9.2 | 1 TB | AMD EPYC 7601 | 2 | 32 | 2 | 2M | 2M | 4M | 128M | 2.2 GHz |
在机器主机 1 上,根据上述规格,我获得了几乎线性(理想)的加速, 我只是运行了以下命令:
mpirun -n $pr --hostfile ~/hosts ./executable --> the hosts file includes only "localhost slots"
但是,在 Host 2 上,我获得了加速但低于 Host 1,并且在某些数量的内核上“没有加速”,最后 Host 3 我得到了糟糕的结果,这表明有什么问题!
在同一个脚本中的实验是相同的,只是收集 CSV 文件中的数字(我重复 10 次并获得计时测量的平均值)。并且没有对上述任何机器进行额外设置,
请注意,机器上的 MPI 版本是:
- 主机 1:OpenMPI 2.1.1
- 主机 2:OpenMPI 2.1.1
- 主机 3:OpenMPI 4.1.0
由于我在 Host 1 中几乎接近线性加速,我认为 OpenMPI 的版本不会如此,
有人在上述设置中看到过类似的结果吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)