0

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

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

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

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

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

4

1 回答 1

1

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

于 2014-06-23T14:31:46.133 回答