W jaki sposób OpenMP obsługuje zagnieżdżone pętle?

Czy poniższy kod po prostu paraliżuje pierwsze (zewnętrzne) pętle, czy też paralelizuje całe zagnieżdżone pętle?

    #pragma omp parallel for
    for (int i=0;i<N;i++)
    { 
      for (int j=0;j<M;j++)
      {
       //do task(i,j)//
      }
    }

Chcę tylko upewnić się, czy powyższy kod zrównoważy całą zagnieżdżoną pętlę for-loops (a więc jedno zadanie bezpośrednio powiązane z wątkiem (i, j)), czy tylko równoległe zewnętrzne pętle for (co zapewnia, że ​​dla każdego równoległego wątek z indeksem pętli i, jego wewnętrzna pętla zostanie wykonana sekwencyjnie w jednym wątku, co jest bardzo ważne).

questionAnswers(3)

yourAnswerToTheQuestion