Реализация барьера OpenMP на MacOS - PullRequest
0 голосов
/ 27 сентября 2018

Я играл с openmp и использовал барьерную конструкцию для выполнения простого кода:

#include<stdio.h>
#include<omp.h>

int main() {
  int i = 0;
  int x[100];
  int tid;
  int y[100];
  int z[100];
  for(i=0;i<10;i++) x[i]==i;

  #pragma omp parallel
  {
    tid = omp_get_thread_num();
    y[tid]==x[tid]*2;
    printf("%d\n",tid);
    #pragma omp barrier
    printf("After Barrier%d\n",tid);
  }
}

Я выполнил этот код на MacOS и получил такой результат: Вывод вышеуказанного кода

На выходе до барьера были выполнены 4 потока, но после барьера выполняется только один поток 4 раза, но в соответствии с барьером после барьера также должны выполняться 4 различных потока.Шаг .Может ли кто-нибудь помочь мне решить эту проблему.Заранее спасибо.

...