我想研究OpenMP API将线程分配给内核的基础。在这样做时考虑哪些因素?这个分配是否可以根据程序员的需要进行修改?OpenMP如何进行线程分配?
0
A
回答
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
+0
我不认为gnu文档明确指出,亲和支持保留给完全支持的目标(不包括Windows)。英特尔和gnu OpenMP默认为每个逻辑处理器1个线程,这通常太多(除非您禁用超线程) – tim18
0
是,线程数,绝对可以被修改为每一个程序员的判断。
参见:OpenMp set number of threads for parallel loop depending on variable
默认情况下,分配的OpenMP尽可能多线程,因为它在其上运行的机器/节点(在分布式系统中的情况下)上的核心数。
相关问题
- 1. Openmp线程分歧?
- 2. 如何延迟OpenMp并行线程
- 3. OpenMP将一个函数的执行分配给一个线程?
- 4. 无法在分叉进程中设置OpenMP线程关联
- 5. 何时使用MPI和OpenMP以及PBS Pro进行超线程?
- 6. OpenMP运行线程,但继续主线
- 7. 如何分配IIS7线程?
- 8. OpenMP和核/线程
- 9. OpenMP线程创建
- 10. 线程在OpenMP的
- 11. Openmp线程睡眠
- 12. 如何处理OpenMP线程池争用
- 13. 在CUDA中进行并行化,为每列分配线程
- 14. 使用openmp并行化中止线程
- 15. OpenMP - 在块上执行线程
- 16. 将子线程拆分成新的子线程(Openmp)
- 17. 我可以将多个线程分配给OpenMP中的代码部分吗?
- 18. 如何测量openmp中每个线程的执行时间?
- 19. 如何对进程中的信号进行顺序分配如何运行
- 20. 多线程(openMP) - 多少个并行线程
- 21. gcc openmp线程重用
- 22. 线程在OpenMP的C++
- 23. OpenMP SIMD vs多线程
- 24. boost或openMP多线程?
- 25. OpenMP,VTune,空闲线程
- 26. CUDA线程分配
- 27. Python多线程:如何让守护进程线程运行
- 28. 如何在MATLAB中进行线程化?
- 29. 如何在python中进行线程化?
- 30. 如何进行多线程计算Android
也许是一个太宽泛的问题。考虑询问其他社区,如https://www.reddit.com/r/programming/ – pedrorijo91