同一个程序包,核多的不如核少的快,可能的原因有哪些?

2017-04-21 08:44:58 +08:00
 yanyuechuixue

同样的程序源码,同样的编译方式,同样的执行方式(mpirun -np 2 ./program),发现核多的机器更慢一些。

核心多的机器是 Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 核心少的机器是 E3-1225 v5

用的程序包是对多线程支持不错的。且能看到在两个机器上, cpu 都跑满了。

那么可能的原因是哪些?

两个机器都是机械硬盘。

3212 次点击
所在节点    问与答
23 条回复
cy18
2017-04-21 13:38:45 +08:00
操作系统是 windows 还是 linux ?
如果是 windows 的话可以在任务管理器,详细信息,右击,设置相关性里面设置进程使用哪几个 cpu 核心,只勾选同一个 CPU 的核心,看看是不是多路 cpu 之间通信导致的性能下降。
我之前也遇到过类似的问题。
yanyuechuixue
2017-04-22 12:13:48 +08:00
@coderluan 大神啊~果然是不用 mpirun 就能跑的更快,要快 20 倍左右。 但是我需要的那个配置需要 mpirun ……
请问有什么办法能找到问题么?
coderluan
2017-04-22 20:04:28 +08:00
@yanyuechuixue 我 mpi 之是之前顺手学了下,实际没写什么代码,你这也没代码,我肯定找不到问题,不过一般来说 mpi 程序不用 mpirun 肯定也能跑,而且 mpi 程序一般都是运行在多台计算机上的(你有电脑可以试试),没什么道理非得在单机上跑 mpi

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356324

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX