英特尔TBB-说明为什么在使用多线程时固有的串行代码可以运行得更快?

时间:2019-05-05 11:14:06

标签: multithreading tbb

Intel-TBB documentation (parallel_scan function)中有以下序列号和说明:

  

例如,如果×是加号,则并行前缀对应于   运行总和。并行前缀的串行实现是:

T temp = id×;
for( int i=1; i<=n; ++i ) {
    temp = temp × z[i];
    y[i] = temp;
}
  

并行前缀通过重新关联   使用×并使用两次通过。它最多可以调用×的两倍   多次作为串行前缀算法。即使它做得更多   在给定正确粒度的情况下,并行算法的性能可能会优于   系列之一,因为它可以将工作分散到多个   硬件线程。为了获得不错的加速,两个以上的系统   建议使用内核。

有人可以解释一下如何使用上述序列号实现加速吗?这种方法可以提高多少速度?有限制吗?

0 个答案:

没有答案