#include #include #include int main (int argc, char *argv[]) { int tid; int pr=-1, fp=-1, sh=-1, df=-1; printf("BEGIN: pr is %d, fp is %d, sh is %d, df is %d.\n",pr,fp,sh,df); #pragma omp parallel shared(sh) private(pr,tid) firstprivate(fp) { tid = omp_get_thread_num(); printf("Thread %d START : pr is %d, fp is %d, sh is %d, df is %d.\n",tid,pr,fp,sh,df); pr = tid * 4; fp = pr; sh = pr; df = pr; printf("Thread %d UPDATE: pr is %d, fp is %d, sh is %d, df is %d.\n",tid,pr,fp,sh,df); } /* end of parallel section */ printf("END: pr is %d, fp is %d, sh is %d, df is %d.\n",pr,fp,sh,df); }