我想研究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. 爲每個mpi進程分配不同數量的openmp線程
- 2. Openmp線程分歧?
- 3. OpenMP - for循環線程分配
- 4. 如何延遲OpenMp並行線程
- 5. OpenMP將一個函數的執行分配給一個線程?
- 6. 無法在分叉進程中設置OpenMP線程關聯
- 7. 何時使用MPI和OpenMP以及PBS Pro進行超線程?
- 8. OpenMP運行線程,但繼續主線
- 9. 如何分配IIS7線程?
- 10. openMP:將特定線程分配給特定內核
- 11. HTOP和OpenMP線程
- 12. 線程在OpenMP的
- 13. OpenMP線程創建
- 14. OpenMP和核/線程
- 15. OpenMP和MKL線程
- 16. Openmp線程睡眠
- 17. 如何處理OpenMP線程池爭用
- 18. 如何用openmp產生一次線程
- 19. OpenMP如何將循環劃分爲線程?
- 20. 使用openMP進行多核處理vs多線程
- 21. 在CUDA中進行並行化,爲每列分配線程
- 22. OpenMP - 在塊上執行線程
- 23. OpenMP的行爲檢測CPU和線程
- 24. 使用openmp並行化中止線程
- 25. OpenMP並行的區域線程關聯
- 26. 與openMP沒有並行線程
- 27. 將子線程拆分成新的子線程(Openmp)
- 28. 如何在openMP中產生線程中的子線程(C++)
- 29. 如何對進程中的信號進行順序分配如何運行
- 30. 我可以將多個線程分配給OpenMP中的代碼部分嗎?
也許是一個太寬泛的問題。考慮詢問其他社區,如https://www.reddit.com/r/programming/ – pedrorijo91