OpenMP如何进行线程分配?

时间:2017-01-09 18:13:47

标签: multithreading parallel-processing openmp multicore

我想研究一下OpenMP API将线程分配给核心的基础。在这样做时需要考虑哪些因素?可以根据程序员的需要修改此分配吗?

2 个答案:

答案 0 :(得分:0)

我相信你正在寻找开放式线程和硬件线程/核心之间的关联。答案是肯定的,顺便说一句。

如果您使用英特尔编译器,您可以查看此站点以获取KMP_AAFFINITY环境变量。 https://software.intel.com/en-us/node/522691

如果您使用GNU编译器,您可能会对这些官方OpenMP环境变量感兴趣。 https://gcc.gnu.org/onlinedocs/libgomp/OMP_005fPLACES.html https://gcc.gnu.org/onlinedocs/libgomp/OMP_005fPROC_005fBIND.html

答案 1 :(得分:0)

是的,根据程序员的判断,绝对可以修改线程数。

请参阅:OpenMp set number of threads for parallel loop depending on variable

默认情况下,OpenMP会分配与正在运行的计算机/节点(如果是分布式系统)上的核心数一样多的线程。