我在实现并行计算前缀和的算法时遇到问题。即使这个算法有 3 个步骤,我也无法编写代码,因为没有给出伪代码。
我浏览了网络上的各种材料以及堆栈溢出,但我没有得到wiki上给出的算法的确切实现。维基提到以下内容:
前缀和可以通过以下步骤并行计算:
- 计算连续项目对的总和,其中该对的第一项具有偶数索引:z0 = x0 + x1、z1 = x2 + x3 等。
- 递归计算序列 z0, z1, z2, ... 的前缀和 w0, w1, w2, ...
- 将序列 w0, w1, w2, ... 的每一项展开为总前缀和的两项:y0 = x0, y1 = w0, y2 = w0 + x2, y3 = w1 等。在第一个值之后,每个连续数 yi 要么从 w 序列一半的位置复制,要么将前一个值添加到 x 序列中的一个值
有人可以建议一个伪代码实现供我检查和实现吗?