В OpenMP при использовании omp sections
будут ли потоки распределяться по блокам внутри разделов или каждый поток будет назначен каждому разделу?
Когда nthreads == 3
:
#pragma omp sections
{
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
}
Вывод:
id=1
id=1
Но когда я выполняю следующий код:
#pragma omp sections
{
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
}
#pragma omp sections
{
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
}
Вывод:
id=1
id=1
id=2
id=2
Из этого вывода я не могу понять, что такое понятие разделов в OpenMP.