/*
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
#include <boost/timer.hpp>
int num_steps=500000000;
#define OPENMP
int main()
{
int i;
double x, step, sum = 0.0;
step = 1.0/(double) num_steps;
boost::timer t;
#ifdef NOOPENMP
for (i=0; i<num_steps; i++)
{
x = (i+0.5) * step;
sum += 4.0/(1.0 + x*x);
}
#endif
#ifdef OPENMP
#pragma omp parallel for
for (i=0; i<num_steps; i++)
{
x = (i+0.5) * step;
sum += 4.0/(1.0 + x*x);
}
#endif
#ifdef OPENMP_RE
#pragma omp parallel for private(x) reduction(+:sum)
for (i=0; i<num_steps; i++)
{
x = (i+0.5) * step;
sum += 4.0/(1.0 + x*x);
}
#endif
double t2_insert = t.elapsed();
printf("time: %.8lf \n", t2_insert);
printf("PI = %.8f (sum = %.8f)\n", step*sum, sum);
return EXIT_SUCCESS;
}
*/
'OpenMP,PPL' 카테고리의 다른 글
| FOR_reduction.cpp (0) | 2014.08.27 |
|---|---|
| FOR_default.cpp (0) | 2014.08.27 |
| CRITICAL_SECTION.cpp (0) | 2014.08.27 |