Рассмотрим следующий пример, когда отдельные задания независимы (между потоками не требуется синхронизация):
#pragma omp parallel num_threads(N)
{
#pragma omp for schedule(dynamic) nowait
for (int i = 0; i < jobs; ++i)
{
...
}
}
Если N = 4
и заданы jobs = 3
я сомневаюсь, что будет большая производительность, связанная с созданием и уничтожением лишнего потока, но если N = 32
то мне интересно, как повлиять на создание/уничтожение неиспользуемых потоков. О чем мы должны даже беспокоиться?