OpenMp根据变量设置并行循环的线程数

Posted

技术标签:

【中文标题】OpenMp根据变量设置并行循环的线程数【英文标题】:OpenMp set number of threads for parallel loop depending on variable 【发布时间】:2013-10-08 12:48:26 【问题描述】:

有没有办法根据变量的值在 OpenMP 中为区域并行设置线程数?最初对于整个应用程序的线程数 = nofCores。在我的 AMD FX 8350 上,nofCores =8。对于这个区域,如果变量是 3,那么我只需要 3 个线程。如果variable>cores,那么线程数应该保持等于nofCores。

我不想为所有应用程序全局设置线程数。只针对这个特定的并行循环。

对不起,如果这是一个幼稚的问题,但我是 OpenMP 的新手。

【问题讨论】:

确保查看文档;它不是那么巨大的。 【参考方案1】:

当然 .. 只需将其添加到您的 parallel for 指令中即可:

#pragma parallel for num_threads(variable)
for( ... )

【讨论】:

应该是#pragma omp parallel for ?

以上是关于OpenMp根据变量设置并行循环的线程数的主要内容,如果未能解决你的问题,请参考以下文章

在visual studio中运行OpenMP并行程序,设置的线程数NUM_THREADS与系统CPU线程数啥关系

openmp:线程数的增加会降低性能

使用 openmp 时运行的线程数不一致

控制并行循环中的线程数并减少开销

openMP:并行运行所有线程会导致内存不足异常

OpenMP的主要功能,基本构成体都有哪些