关于双嵌套循环中的依赖性的问题

A question about dependence in a doubly nested loop

提问人:Athanasios Margaris 提问时间:10/6/2023 更新时间:10/6/2023 访问量:15

问:

我阅读了 Wolf M.E 和 Lam M.S, a Loop Transformation Theory and an Algorithm to Maximize Parallelism, IEEE Transactions on Parallel and Distributed Systems, Vol 2 中的一个示例。第 4 期,第 452-471 页,1991 年,关于循环转换作为循环并行化的必要步骤,它使用形式的双循环

DO I = 0 TO 5 
   DO J = 0 TO 6
         A(J+1)=(1/3)[A(J)+A(J+1)+A(J+2)]
   ENDDO
ENDDO  

根据作者的说法,这个循环有三个距离向量,即 d1=(0,1)、d2=(1,0) 和 d3=(1,-1)。

答:对这种情况有疑问:

由于循环语句仅使用“J”计数器,那么使用外部循环的意义是什么,以及由于语句中缺少“I”计数器,这些距离向量是如何计算的?

多谢

这是一个关于我不了解的情况的理论问题。

循环并 行处理 嵌套

评论

1赞 Jérôme Richard 10/6/2023
内部循环会就地更改数组,因此基于 -的循环的每次迭代都不相同。由于该操作是一种模板,因此该操作有点类似于应用 N 倍的基本模糊,从而产生一种半径相当大的高斯模糊(但这是一个缓慢的实现)。在实践中,在输入中写入会使事情变得更加复杂。i

答: 暂无答案