Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/shared-1.C @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line source
#include <omp.h> extern "C" void abort (void); struct Y { int l[5][10]; }; struct X { struct Y y; float b[10]; }; void parallel (int a, int b) { int i, j; struct X A[10][5]; a = b = 3; for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) A[i][j].y.l[3][3] = -10; #pragma omp parallel shared (a, b, A) num_threads (5) { int i, j; #pragma omp atomic a += omp_get_num_threads (); #pragma omp atomic b += omp_get_num_threads (); #pragma omp for private (j) for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) A[i][j].y.l[3][3] += 20; } for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) if (A[i][j].y.l[3][3] != 10) abort (); if (a != 28) abort (); if (b != 28) abort (); } main() { parallel (1, 2); return 0; }