Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c/appendix-a/a.4.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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 /* { dg-do run } */ | |
2 | |
3 #include <omp.h> | |
4 extern void abort (void); | |
5 void | |
6 subdomain (float *x, int istart, int ipoints) | |
7 { | |
8 int i; | |
9 for (i = 0; i < ipoints; i++) | |
10 x[istart + i] = 123.456; | |
11 } | |
12 | |
13 void | |
14 sub (float *x, int npoints) | |
15 { | |
16 int iam, nt, ipoints, istart; | |
17 #pragma omp parallel default(shared) private(iam,nt,ipoints,istart) | |
18 { | |
19 iam = omp_get_thread_num (); | |
20 nt = omp_get_num_threads (); | |
21 ipoints = npoints / nt; /* size of partition */ | |
22 istart = iam * ipoints; /* starting array index */ | |
23 if (iam == nt - 1) /* last thread may do more */ | |
24 ipoints = npoints - istart; | |
25 subdomain (x, istart, ipoints); | |
26 } | |
27 } | |
28 int | |
29 main () | |
30 { | |
31 int i; | |
32 float array[10000]; | |
33 sub (array, 10000); | |
34 for (i = 0; i < 10000; i++) | |
35 if (array[i] < 123.45 || array[i] > 123.46) | |
36 abort (); | |
37 return 0; | |
38 } |