Насколько я понимаю, я могу использовать директиву single
, выполняя ту же работу, что и при использовании sections
, просто добавляя nowait
флаги.
Следующий код ничем не отличается для меня от директивы section
:
void main(){
#pragma omp parallel
{
int tid = omp_get_thread_num();
#pragma omp single nowait
{
printf("Thread %d in #1 single construct.\n", tid);
}
#pragma omp single nowait
{
printf("Thread %d in #2 single construct.\n", tid);
}
#pragma omp single nowait
{
printf("Thread %d in #3 single construct.\n", tid);
}
}
}
Может ли кто-нибудь привести несколько примеров использования директив sections
и single
в разных сценариях?