3 /* Based on asyncwait-3.f90. */
14 a
= (int *)malloc (N
* sizeof (*a
));
15 b
= (int *)malloc (N
* sizeof (*b
));
16 c
= (int *)malloc (N
* sizeof (*c
));
18 #pragma acc parallel copy (a[0:N]) async (0)
20 for (int i
= 0; i
< N
; ++i
)
23 #pragma acc parallel copy (b[0:N]) async (1)
25 for (int i
= 0; i
< N
; ++i
)
28 #pragma acc wait (0, 1)
30 #pragma acc parallel copy (a[0:N], b[0:N], c[0:N])
32 for (int i
= 0; i
< N
; ++i
)
35 for (int i
= 0; i
< N
; ++i
)
39 #pragma acc kernels copy (a[0:N]) async (0)
41 for (int i
= 0; i
< N
; ++i
)
44 #pragma acc kernels copy (b[0:N]) async (1)
46 for (int i
= 0; i
< N
; ++i
)
49 #pragma acc wait (0, 1)
51 #pragma acc kernels copy (a[0:N], b[0:N], c[0:N])
53 for (int i
= 0; i
< N
; ++i
)
56 for (int i
= 0; i
< N
; ++i
)