正在执行 omp 任务的线程数
Number of threads that are executing omp task
对于下面的代码,如果 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 个线程繁忙。
相关文章:
- 如何创建线程序列以按照启动顺序执行任务?
- C++一个线程如何正确通信其任务已完成?
- 对于同一任务,线程的等待时间在 0 到 30000 微秒之间系统地切换
- 在iOS设备上执行并发任务时如何设置正确的线程数?
- 如何从父线程中提取 pthread 的任务 id(tid)
- 根据硬件并发性将任务平均划分为线程
- C++生产者使用者中,同一使用者线程会抓取所有任务
- 正在执行 omp 任务的线程数
- 您可以在 OpenMP 中将特定线程 ID 分组到唯一的任务组中吗?
- 是boost :: asio :: thread_pool线程在多个线程上发布任务时的安全性
- asio::strand 上的任务在单个线程上运行
- 如何在C++中创建高效的多线程任务计划程序
- 如何在多个线程上正确分发任务
- 在多线程中调度任务
- Poco任务管理器/Boost线程混合和匹配
- 将执行从一个线程移动到另一个线程,以实现任务并行性并在将来调用
- 使用C 多任务.线程或不同的设计
- 如何处理任务,同时剩余的线程完成工作
- 多线程任务总体进度报告的设计模式
- 在OpenMP中屈服于其他线程/任务