
OpenMP Quick Reference 289
Listing A.6: Demonstrating a parallel for-loop.
# inclu de < stdlib .h>
# inclu de < omp .h >
int main ( int argc , char ** argv ) {
int i , j;
double mean = 0.0 , * x ;
int N = 20 000000;
x = ( double *) malloc ( sizeof ( double )*N );
/* populate x on main thread ... */
for ( i =0; i <N ; i ++)
x[i] = ( double ) rand () / ( double ) RAND_MAX ;
/* compute mean in pa rallel */
# pragma omp p arallel shared ( mean ) private (i )
{
# pragma omp for r eduction (+: mean )
for ( i =0; i <N ; i ++) {
mean = mean + x[i] / ( double ) N;
}
}
}