Intel-TBB documentation (parallel_scan
function)中有以下序列号和说明:
例如,如果×是加号,则并行前缀对应于 运行总和。并行前缀的串行实现是:
T temp = id×;
for( int i=1; i<=n; ++i ) {
temp = temp × z[i];
y[i] = temp;
}
并行前缀通过重新关联 使用×并使用两次通过。它最多可以调用×的两倍 多次作为串行前缀算法。即使它做得更多 在给定正确粒度的情况下,并行算法的性能可能会优于 系列之一,因为它可以将工作分散到多个 硬件线程。为了获得不错的加速,两个以上的系统 建议使用内核。
有人可以解释一下如何使用上述序列号实现加速吗?这种方法可以提高多少速度?有限制吗?