Linux 多核处理器核心通信速度
我会寻找计算机两个核心之间的通信速度 我正处于大规模并行顺序程序的早期阶段,我需要考虑网络通信速度与单处理器上内核之间的通信 Ubuntu linux可能提供了某种方式来查看此类信息?我原以为速度是波动的。。我只需要一些平均值。我现在基本上需要写一些东西,讨论一下这些比率会很好 有什么想法吗Linux 多核处理器核心通信速度,linux,parallel-processing,distributed-computing,Linux,Parallel Processing,Distributed Computing,我会寻找计算机两个核心之间的通信速度 我正处于大规模并行顺序程序的早期阶段,我需要考虑网络通信速度与单处理器上内核之间的通信 Ubuntu linux可能提供了某种方式来查看此类信息?我原以为速度是波动的。。我只需要一些平均值。我现在基本上需要写一些东西,讨论一下这些比率会很好 有什么想法吗 谢谢。这不是一件小事。两个内核之间的数据传输速度完全取决于应用程序。它可能取决于任何(或全部)-寄存器访问速度、内核时钟速度、系统总线速度、缓存延迟、内存延迟等。简言之,运行一个基准测试,否则您将在黑暗中猜
谢谢。这不是一件小事。两个内核之间的数据传输速度完全取决于应用程序。它可能取决于任何(或全部)-寄存器访问速度、内核时钟速度、系统总线速度、缓存延迟、内存延迟等。简言之,运行一个基准测试,否则您将在黑暗中猜测。这是一件很容易找到的事情。两个内核之间的数据传输速度完全取决于应用程序。它可能取决于任何(或全部)-寄存器访问速度、内核时钟速度、系统总线速度、缓存延迟、内存延迟等。简言之,运行基准测试,否则您将在黑暗中猜测。内核间通信将大大加快。为什么?
如何测量核心间通信速度将非常困难。但考虑到上述情况,我认为这是一个冗余的计算。核心间通信将大大加快。为什么?
如何测量核心间通信速度将非常困难。但考虑到上述情况,我认为这是一个冗余的计算。以太网的网络速度是以毫秒为单位测量的($5-$100/端口),而Myrintet上的Dolphin等专用MPI硬件的网络速度是以微秒为单位测量的($1k/端口)。当数据从一个内存区域复制到另一个内存区域,然后一些信号从一个CPU发送到另一个CPU时,内核间的速度以纳秒为单位进行测量(互斥锁或完整队列将保护数据不被同时访问)
因此,使用back'o'the'Nappin计算,比率为1:10^6。以太网(5-100美元/端口)的网络速度是以毫秒为单位测量的,而Myrintet上的Dolphin(约1k美元/端口)等专用MPI硬件的网络速度是以微秒为单位测量的。当数据从一个内存区域复制到另一个内存区域,然后一些信号从一个CPU发送到另一个CPU时,内核间的速度以纳秒为单位进行测量(互斥锁或完整队列将保护数据不被同时访问)
因此,使用餐巾纸背面的计算,比率是1:10^6。根据这个基准:(页面上的最后一张图片) 在Intel Q6600上,内核间延迟为32纳秒。网络延迟以毫秒为单位,即1000000毫秒/纳秒。“良好”的网络延迟被认为在100ms左右或以下,因此,考虑到这一点,核心间延迟的差异大约为100万倍
除了延迟之外,还有带宽要考虑。同样基于链接书签(该特定配置的基准),核心间带宽约为14GB/秒,而根据这一点:,千兆以太网连接的实际测试显示约为35.8MB/秒,因此差异较小,仅在带宽方面大约快500倍,而延迟则是1000000倍。取决于哪个对您的应用程序更重要,可能会改变您的数字。
根据此基准:(页面上的最后一张图片) 在Intel Q6600上,内核间延迟为32纳秒。网络延迟以毫秒为单位,即1000000毫秒/纳秒。“良好”的网络延迟被认为在100ms左右或以下,因此,考虑到这一点,核心间延迟的差异大约为100万倍除了延迟之外,还有带宽要考虑。同样基于链接书签(该特定配置的基准),核心间带宽约为14GB/秒,而根据这一点:,千兆以太网连接的实际测试显示约为35.8MB/秒,因此差异较小,仅在带宽方面大约快500倍,而延迟则是1000000倍。取决于哪个对您的应用程序更重要,可能会更改您的号码。
谢谢Reinderien。出于兴趣,有没有一些“理论最大值”?具体来说,在特定系统的特定处理器上,两个内核之间是否存在最大通信速度?@vivid Color:理论最大值?吞吐量还是延迟?如果是延迟,理论上的最小延迟是由光速决定的。@ninjalj是对的。事实上,我相信光速是CPU获得更高时钟速度的限制因素之一,这就是为什么最近的趋势是增加内核的数量而不是增加时钟速度的原因。@Davy8——一种真正有趣的技术,在消费市场上还没有看到任何曝光,它是异步处理器体系结构。在这样的处理器中,对全局时钟(或者有时根本没有时钟)和管道分段“完成时完成”的依赖性更小。谢谢Reinderien。出于兴趣,有没有一些“理论最大值”?具体来说,在一个特定进程上,两个核心之间是否有最大通信速度