XcalableMP Programming Model and Language
33
XcalableMP Fortran
!$xmp loop on t(i)
do i=2, 9
a(i+1) = i
enddo
In this case, condition 1 is satisfied but 2 is not, and therefore it is not possible
to parallelize them. In XMP/C, p[0] tries to access a[5] but does not own it. In
XMP/Fortran, p(1) tries to access a(6) but does not own it (Fig. 24).
3.2.1 Reduction Computation
The serial programs below are examples of a reduction computation.
C
#include
int main(){
int a[10], sum = 0;
5
for(int i=0;i<10;i++){
a[i] = i+1;
sum += a[i];
}
10
printf("%d\n", sum);
return 0;
}
Fortran
program main
integer :: a(10), sum = 0
do i=1, 10
5
a(i) = i
sum = sum + a(i)
enddo
write( * , * ) sum
10
end program main
Précédent

- 41/265

Suivant