¿Cómo maneja OpenMP los bucles anidados?

¿El siguiente código simplemente paraleliza los primeros bucles (externos), o paraleliza los bucles anidados completos?

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

Solo quiero asegurarme de que el código anterior paralelice la totalidad de los bucles for anidados (por lo tanto, una tarea relacionada directamente con el subproceso (i, j)), o solo paralelice el bucle for externo (por lo tanto, garantiza que, para cada paralelo subproceso con índice de bucle i, su bucle interno se realizará de forma secuencial en un solo subproceso, que es muy importante).

Respuestas a la pregunta(3)

Su respuesta a la pregunta