基本信息
文件名称:并行程序设计课程作业答案_中科大.docx
文件大小:143.11 KB
总页数:5 页
更新时间:2025-06-12
总字数:约2.37千字
文档摘要

找出以下循环中的存在依赖关系(包括依赖类型),画出语句依赖图。

forI=0to100doA(I)=C(I)+2;

B(I)=A(I-1)-A(2*I-5);

endfor

答案

forI=0to100doS: A(I)=C(I)+2;

T: B(I)=A(I-1)-A(2*I-5);

endfor

依赖关系:(1) S?fT;{S(i),T(j)|i=j-1; 1=j=100,0=i=99}

S?fT;{S(i),T(j)|(i,j)=(1,3),(3,4),(5,5)}

T?aS;{T(i),S(j)|j=2*i–5; 6=i=52}

S?

S

?a

T

?f ?f

找出以下循环中的存在依赖关系(包括依赖类型、依赖向量),画出迭代依赖图(注意:要“窥一斑而知全豹”)。

forI=1to100doforJ=1to50do

A(I+2,J)=B(2*I,J)-5;

B(2*I,J-1)=A(I,J+2)+4;

endforendfor

答:

forI=1to100doforJ=1to50do

S: A(I+2,J)=B(2*I,J)-5;

T: B(2*I,J-1)=A(I,J+2)+4;

endforendfor

依赖关系:

S?fT,依赖向量为(1,-1),满足关系的迭代对:

{S(i1,j1),T(i2,j2)|i1=i2-2;j1=j2+2;1=i1=98;3=j1=50}

S?aT,依赖向量为(0,1),满足关系的迭代对:

{S(i1,j1),T(i2,j2)|i1=i2;j1=j2-1;1=i1=100;1=j1=49}

迭代依赖图:

向量化以下循环。如果不能,请说明原因。

forI=1toNdo

A(I)=B(I)+C(I+1);

C(I)=A(I)*D(I);

endfor

答:

forI=1toNdo

S:A(I)=B(I)+C(I+1);

T:C(I)=A(I)*D(I);

endfor

可以向量化。依赖关系为:S?fT,S?aT,不存在与语句执行次序相反的依赖关系。

A(1:N)=B(1:N)+C(2:N+1);

C(1:N)=A(1:N)*D(1:N);

forI=1toNdo

A(I)=A(I-1)+1

endfor

答:

forI=1toNdo

S:A(I)=A(I-1)+1

endfor

依赖关系为S?fS,不能进行向量化。

分析以下循环中的存在依赖关系(包括依赖类型),画出迭代依赖图。

forI=1to5do

B(I)=B(I)/A(I,I);

forJ=I+1to5do

B(J)=B(J)–A(I,J)*B(I);

endforendfor

答1:

forI=1to5do

S:B(I)=B(I)/A(I,I);

forJ=I+1to5do

T: B(J)=B(J)–A(I,J)*B(I);

endforendfor

展开上述循环,可以得到:

I=1:B(1)=B(1)/A(1,1);J=2,5

J=2:B(2)=B(2)–A(1,2)*B(1)

J=3:B(3)=B(3)–A(1,2)*B(1)

J=4:B(4)=B(4)–A(1,2)*B(1)

J=5:B(5)=B(5)–A(1,2)*B(1)

I=2:B(2)=B(2)/A(2,2);J=3,5

J=3:B(3)=B(3)–A(2,3)*B(2)

J=4:B(4)=B(4)–A(2,4)*B(2)

J=5:B(5)=B(5)–A(2,5)*B(2)

I=3:B(3)=B(3)/A(3,3);J=4,5

J=4:B(4)=B(4)–A(3,4)*B(3)

J=5:B(5)=B(5)–A(3,5)*B(3)

I=4:B(4)=B(4)/A(4,4);J=5,5

J=5:B(5)=B(5)–A(4,5)*B(4)

I=5:B(5)=B(5)/A(