Skip to content
GitLab
Explore
Sign in
CodeVault
training-material
parallel-programming
OpenMP
Compare revisions
d2e97df0a2282d4d8f9c3adf4aa6aca40b2cb423 to adb51bfa9e248e849e8739cf21331a4986575fb2
Hide whitespace changes
Inline
Side-by-side
work-sharing/sum.F90
0 → 100644
View file @
adb51bfa
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
work-sharing/sum.c
0 → 100644
View file @
adb51bfa
#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
;
}
Prev
1
2
3
4
Next