4.2 数据并行结构 |
Fortran 90的数组特点为表达数组元素的集合操形成了基层。例如,下面程序通过Frobenius norm 计算一个矩阵:
SUBROUTINE SCALE(A)
REAL, DIMENSION(:,:) :: A
!HPF$ DISTRIBUTE A(BLOCK,BLOCK)
REAL FNORM
FNORM = SQRT( SUM( A*A ))
IF (FNORM>0.) A=A/FNORM
END
标记对准和数组划分,与数组赋值一样,有一种结构把数组沿特定维分布,转换数组下标, 移位数组元素等。但是 ,在Fortran 90中的数组赋值语句有一个(合理的)限制,即,对准语句的左部和右部的形式必须一致(类似于表达式)。HPF引入FORALL语句能表达丰富的赋值集合,而没有限制。有趣地是,FORALL语句被推荐给Fortran 90(然后8x),但失败了。Fortran的下一 版本希望再把这个作为一个标准特点。
Copyright: NPACT |