brintos

brintos / llvm-project-archived public Read only

0
0
Text · 732 B · adac7d6 Raw
37 lines · c
1// RUN: %libomp-compile2// RUN: env OMP_NUM_THREADS=1 LIBOMP_USE_HIDDEN_HELPER_TASK=1 \3// RUN:     LIBOMP_NUM_HIDDEN_HELPER_THREADS=8 %libomp-run4 5#include <stdio.h>6#include <stdlib.h>7#include <omp.h>8 9#define Nz 810#define DEVICE_ID 011 12int a[Nz];13 14int main(void) {15  for (int n = 0; n < 10; ++n) {16    for (int k = 0; k < Nz; ++k) {17      a[k] = -1;18    }19#pragma omp parallel shared(a)20    {21#pragma omp single22      {23#pragma omp target teams distribute parallel for nowait device(DEVICE_ID)      \24    map(tofrom : a[0 : 8])25        for (int i = 0; i < Nz; ++i) {26          a[i] = i;27        }28      }29#pragma omp barrier30    }31    for (int k = 0; k < Nz; ++k) {32      printf("a[%d] = %d\n", k, a[k]);33    }34  }35  return 0;36}37