第十五章并行程序设计环境与工具 习题例题: 1、分析下列代码段中三条语句间的相关关系;给出相应的相关方向向量和相关 距离向量 DO LN DO J=2.N S1:A(I,J)=A(1,J-1)+B(I,J) S c(r JFA(,J+D(+l, J ENDDO ENDDO 2、判定下列的循环,哪些是可向量化的 ①DOI=1,N SI: A(FB S2: CFA+B) S3 E(I)=C(I+1) ENDDO ②DO1=1N S1; AM--B(+C(+1) S2: CFA*D) ENDDO ③DOI=1,N A(=A(1-1)+1 ENDDO ④DoI=1,N A(I=A(I+1+1 ENDDO ⑤DOI=2,N DO J=2.M A(I,J=A(t,J-)+1 ENDDO ENDDO 3、试向量化下列代码段 ① DIMENSIONA(200200.B(200,200)C(200,200) DOI=1.200 DOJ=1,200 A(,)=B(,)RC(I D) ENDDO ENDDO DOF=1,100 C(=0.0 DOJ=1.100
第十五章 并行程序设计环境与工具 习题例题: 1、分析下列代码段中三条语句间的相关关系;给出相应的相关方向向量和相关 距离向量: DO I=I,N DO J=2,N S1: A(I,J)=A(1,J-1)+B(I,J) S2: c(r,J)=A(I,J)+D(I+1,J) S3: D(I,J)=0.1 ENDDO ENDDO 2、判定下列的循环,哪些是可向量化的: ① DO I=1,N S1: A(I)=B(I) S2: C(I)=A(I) +B(I) S3: E(I) =C(I+1) ENDDO ② DO 1=1,N S1; AM --B(I)+C(I+1) S2: C(I)=A(I) * D(I) ENDDO ③ DO I=1,N Sl: A(I)=A(1-1)+1 ENDDO ④ Do I=1,N Sl: A(I)=A(I+1)+1 ENDDO ⑤ DO I=2,N DO J =2,M A(I, J)=A(t,J-I)+1 ENDDO ENDDO 3、试向量化下列代码段: ① DIMENSION A(200,200),B(200,200),C(200,200) DO I =1, 200 DO J =1, 200 A(I,J) = B(I,J) * C(I.J) ENDDO ENDDO ② DO i=1,100 C(I)=0.0 DO J=1,100
CFC+A()*BO ENDDO ENDDO ③DO1=1,N DO I=LM AD=A+B(,,J)*C(,J) ENDDO DOFE(A) ENDDO ④DOI=2N S1:T(=A(-1)+A(I+1) S2: AFB(+C) ENDDO 4、分析下列循环,那些是可并行化的: ①DOI=2,N A=B-A(-1 ENDDO ②DO1=2,N,2 ENDDO ③D0I=N X SQRT(A) BFX C(+X D) ENDDO ④INDX=O DO FAN INDX= INDX+ 1 A=B)+ C(NDX ENDDO ⑤DOI=N IF(A(I)·LT· EPSILON)GOTO320 A(DFAB ENDDO 320 CONTINUE 5、分析下列循环的语句数据相关性:如何进行循环调度并行化: DO J=2.N A(1,J=B(1,J)+C(,J) C(JD(, J)/2 E(,J)A(I,J-1)**2+E(1J-1) ENDDO ENDDO
C(I)=C(I) +A(I,J) * B(J) ENDDO ENDDO ③ DO 1=1,N B(1,1)=0 DO 1=1,M A(I) =A(I) + B(I, J) * C(I,J) ENDDO D(I)=E(I)+A(I) ENDDO ④ DO I=2,N S1: T(I)=A(I-1)+A(I+1) S2: A(I)=B(I)+C(I) ENDDO 4、分析下列循环,那些是可并行化的: ①DO I=2,N A(I) =B(I)-A(I-1) ENDDO ②DO I=2,N,2 A(I) =B(I)-A(I-1) ENDDO ③DO I=I,N X= SQRT(A(I) ) B(I)=X*C(I)+X*D(I) ENDDO ④INDX=O DO I=A,N INDX= INDX+ 1 A(I) = B(I) + C(INDX) ENDDO ⑤DO I=I,N IF(A(I ) · LT· EPSILON) GOTO 320 A(I)=A(I) * B(I) ENDDO 320 CONTINUE 5、分析下列循环的语句数据相关性;如何进行循环调度并行化: DO I=I,N DO J=2,N S1: A(1,J)=B(1,J)+C(I,J) S2: C(I,J)=D(I,J)/2 S3: E(I,J)=A(I,J-1) * *2+E(I,J-1) ENDDO ENDDO