omp如何与omp单独并行工作?

时间:2016-03-28 00:48:32

标签: c++ parallel-processing

我正在阅读Guide to OpenMP而我无法理解omp single指令。

struct node { int data; node* next; };
extern void process(node* );
void increment_list_items(node* head)
{
    #pragma omp parallel
    {
        #pragma omp single
        {
            for(node* p = head; p; p = p->next)
            {
                #pragma omp task
                process(p); // p is firstprivate by default
            }
        }
    }
}

为什么omp parallelomp single之前运行?这没有意义吗?是不是并行创建工作者然后单个只是限制为单个线程无论如何功能?当你知道你将在单个线程中使用那些工作者时,这只是处理一些开销吗?

0 个答案:

没有答案