Como o OpenMP lida com loops aninhados?
O código a seguir apenas paraleliza os primeiros loops (externos) ou paraleliza todos os loops aninhados?
#pragma omp parallel for
for (int i=0;i<N;i++)
{
for (int j=0;j<M;j++)
{
//do task(i,j)//
}
}
Eu só quero ter certeza se o código acima irá paralelizar todo o loop for-loops aninhado (assim, um thread diretamente relacionado tarefa (i, j)), ou apenas paraleliza o for-loop externo (assim, garante que, para cada parrallel thread com índice de loop i, o loop interno será feito sequencialmente em um único thread, o que é muito importante).