不规则的 OpenMP 并行性

一个常见的缺陷是认为并行区域的所有线程都应该实例化(创建)任务,但除非你想要创建与线程数乘以要处理的元素数量一样多的任务,否则通常情况并非如此。因此,在 OpenMP 任务代码中,你将找到类似的内容

#pragma omp parallel
#pragma omp single
...
   #pragma omp task
   { code for a given task; }
...