- 73
- 0
- 约8.17千字
- 约 51页
- 2016-12-13 发布于重庆
- 举报
Tomasulo Example Cycle 13 Tomasulo Example Cycle 14 Tomasulo Example Cycle 15 2/9/2009 CS252-S09, Lecture 6 * Tomasulo Example Cycle 16 Tomasulo Example Cycle 57 例题选讲(7) 考察如下循环程序 for (i=1; i=100; i=i+1) { A[i] = A[i] + B[i]; /* S1 */ B[i+1] = C[i] + D[i+1]; /* S2 */ } S1与S2之间存在何种相关关系?这个循环程序是否可以并行,若可以,如何使其并行? 解:S1中使用的值是上次循环S2计算的结果,即S2和S1之间存在循环体间相关;但S2并不相关于S1。只要相关关系不形成环状,循环程序就可以并行。 1.不存在S1到S2的相关路径,因此可以把S1和S2对调不影响S2的执行; 2.在第一次循环中,S1中使用初始值B[1],是在循环初始化之前就已经计算出来 A[1]=A[1]+B[1]; for (i=1; i=100; i=i+1) { B[i+1] = C[i] + D[i+1]; A[i+1] = A[i+1] + B[i+1]; } B[101] = C[100] + D[100
原创力文档

文档评论(0)