正在执行 omp 任务的线程数

Number of threads that are executing omp task

本文关键字:线程 任务 omp 执行      更新时间:2023-10-16

对于下面的代码,如果 list_file.size(( 是 12,即我们的线程数比 for 循环中的迭代次数多,我们能说出运行每个任务块的线程数吗?每个任务块只有 1 个线程在运行,还是每个任务块将运行 1 个以上的线程?

omp_set_num_threads(24);
#pragma omp parallel
{
    #pragma omp for
    for (int m = 0; m < list_file.size(); m++)
    {
        #pragma omp task
        {
            // do something
        }
    }
}

每个任务区域将由一个线程执行。 OpenMP 不会使用更多线程来执行单个任务。 因此,如果外部并行循环仅生成 12 个任务,则最多只能保持 12 个线程繁忙。