#include #define N 10 int main (int argc, char *argv[]) { double a[N], b[N]; int i, sum; #pragma omp parallel #pragma omp single for (i=0; i < N; i++) a[i] = 0; /* // This omp construct is completely eliminated #pragma omp parallel for for (i=0; i < N-1; i++) b[i+1] = a[i+1] + 2*i; // These nested omp constructs are completely eliminated #pragma omp parallel { #pragma omp for for (i=0; i < N-1; i++) b[i+1] = a[i+1] + 2*i; } #pragma omp parallel for for (i=0; i < N; i++) { a[i] = 0.0; b[i] = a[i]; b[i] = a[i] + b[i]; } #pragma omp parallel for for (i=0; i < N-1; i++) { //a[i+1] = a[1+i] + 1; a[i+2-1] = a[(-2*3) + 2*i - i + 7] + 1; } #pragma omp parallel for private(sum) for (i=0; i < N; i++) sum = sum + i; #pragma omp parallel for for (i=0; i < N; i++) sum = sum + i; */ }