#include #include #include int main () { int n = 100, i; int *a = (int *) malloc (sizeof (int) * n); int *b; for (i = 0; i < n; i++) a[i] = i+1; #pragma acc enter data copyin(a[:n]) create(b) b = a; acc_attach ((void **)&b); #pragma acc parallel loop present (b[:n]) for (i = 0; i < n; i++) b[i] = i+1; acc_detach ((void **)&b); #pragma acc exit data copyout(a[:n], b) for (i = 0; i < 10; i++) assert (a[i] == b[i]); free (a); return 0; }