Skip to content
program vectorsum
implicit none
integer, parameter :: rk = kind(1d0)
integer, parameter :: ik = selected_int_kind(9)
integer, parameter :: nx = 102400
real(kind=rk), dimension(nx) :: vecA, vecB, vecC
real(kind=rk) :: sum
integer(kind=ik) :: i
! Initialization of vectors
do i = 1, nx
vecA(i) = 1.0_rk/(real(nx - i + 1, kind=rk))
vecB(i) = vecA(i)**2
end do
! TODO:
! Implement here the parallelized version of vector addition,
! vecC = vecA + vecB
! Compute the check value
write(*,*) 'Reduction sum: ', sum(vecC)
end program vectorsum
#include <stdio.h>
#define NX 102400
int main(void)
{
double vecA[NX], vecB[NX], vecC[NX];
double sum;
int i;
/* Initialization of the vectors */
for (i = 0; i < NX; i++) {
vecA[i] = 1.0 / ((double)(NX - i));
vecB[i] = vecA[i] * vecA[i];
}
/* TODO:
* Implement here a parallelized version of vector addition,
* vecC = vecA + vecB
*/
sum = 0.0;
/* Compute the check value */
for (i = 0; i < NX; i++) {
sum += vecC[i];
}
printf("Reduction sum: %18.16f\n", sum);
return 0;
}