【问题标题】:super linear speedup by cache effects -- unfair comparison?缓存效应的超线性加速——不公平的比较?
【发布时间】:2014-06-26 02:45:37
【问题描述】:

众所周知,当使用多个处理器时,由于问题的每个分区完全适合,由于缓存效应可能会发生超线性加速,从而通过顺序算法加速内存事务,该顺序算法将多次换入和换出。我看过几十个例子,背后的逻辑很清楚,并行部分解释得很好。

然而,每次他们与顺序算法进行比较时,顺序算法都是一个非常幼稚的解决方案,有一个从 0...N 的大循环。

是否考虑过顺序解决方案可以与并行解决方案相同? (即对问题进行分区并按顺序解决每个分区,使其适合缓存)。换句话说,只需在一个线程中运行并行解决方案。通过这样做,人们可以期待线性加速,而不是最初想象的超线性。

我在这里缺少什么?对于一个已经出现几十年的概念来说,这种反逻辑似乎太简单了。

这个问题是在一位老师告诉我“超级线性加速是不可能的,你总是可以改进顺序的,以便再次有线性加速”之后提出的。我无法证明相反的情况。

【问题讨论】:

  • 你必须考虑到数据必须首先从主存移动到 CPU 缓存中(更不用说外部存储 IO)。在并行情况下,通常有更多的内存控制器(在不同的 CPU 插槽或不同的系统板上)和更多的 IO 端口,因此可以通过将数据移入和移出更多的带宽。除非您可以(以某种方式)为串行处理器添加更多内存和 IO 带宽,否则并行加速将保持超线性。
  • 但是拥有 p 个内存控制器和 p 个处理器只会导致相对于使用 1 个内存控制器和 1 个处理器的线性加速。顺便说一句,我是超线性加速的支持者,只是我很难向我的老师证明这一点。我能找到的最好的是古斯塔夫森定律,它在理论上使用与阿姆达尔定律(固定大小加速模型)不同的方法(固定时间加速模型)接受超线性加速。

标签: parallel-processing


【解决方案1】:

超线性加速可能来自于不仅处理器数量增加,而且缓存数量增加的事实。顺序案例拆分数据的方法不会增加缓存。

【讨论】:

  • 这是一个值得考虑的好细节,我正在更仔细地分析它。
猜你喜欢
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 2019-10-15
  • 2015-12-07
  • 2020-04-05
  • 2021-12-18
  • 1970-01-01
相关资源
最近更新 更多