多核处理器核心通信速度

时间:2011-03-14 21:15:10

标签: linux parallel-processing distributed-computing

我希望找到计算机两个核心之间的通信速度。

我正处于规划大规模并行顺序程序的早期阶段,我需要考虑网络通信速度与单个处理器上核心之间的通信。

Ubuntu linux可能提供了一些查看此类信息的方法吗?我原本以为速度会有波动......我只需要一些平均值。我现在基本上需要写点什么,谈谈这些比率会很好。

有什么想法吗?

感谢。

4 个答案:

答案 0 :(得分:4)

网络速度以毫秒为单位测量以太网($ 5- $ 100 /端口),或专用MPI硬件(如Myrintet上的Dolphin)(〜$ 1k /端口)的微秒。核心间速度以纳秒为单位测量,因为数据从一个存储区复制到另一个存储区,然后一些信号从一个CPU发送到另一个CPU(数据将受到互斥或全身队列的同时访问保护)。

因此,使用back'o'the'napkin计算,比率为1:10 ^ 6.

答案 1 :(得分:4)

根据此基准:http://www.dragonsteelmods.com/index.php?option=com_content&task=view&id=6120&Itemid=38&limit=1&limitstart=4(页面上的最后一张图片)

在Intel Q6600上,核心间延迟为32纳秒。网络延迟以毫秒为单位测量,即1,000,000毫秒/纳秒。 “良好”的网络延迟被认为是大约或低于100毫秒,因此,对于核心间延迟,差异大约为100万倍。

除了延迟之外,还要考虑带宽。同样基于链接的书签,该特定配置的基准测试,核心间带宽大约为14GB /秒,而根据这个:http://www.tomshardware.com/reviews/gigabit-ethernet-bandwidth,2321-3.html,千兆以太网连接的实际测试显示大约35.8MB /秒所以相差较小,仅在带宽方面快约500倍,而延迟为1,000,000倍。取决于哪个对您的应用程序更重要,可能会改变您的数字。

答案 2 :(得分:1)

核心间通信将大大加快。为什么?

  1. 网络层在数据包,寻址,处理争用等方面造成了巨大的开销。
  2. 物理距离会产生相当大的影响
  3. 如何衡量核心间通信速度将非常困难。但考虑到上述情况,我认为这是一个多余的计算方法。

答案 3 :(得分:0)

这是一件非常重要的事情。两个内核之间的数据传输速度完全取决于应用程序。它可能取决于任何(或全部) - 寄存器访问速度,内核时钟速度,系统总线速度,缓存延迟,内存延迟等等。简而言之,运行一个基准,否则你将在黑暗中猜测。

相关问题