[英]How to use oneTBB along with openMP
在 oneTBB 中,並行運行的任務數量由庫處理,以確保激活的線程數不超過硬件限制。 它還指出,嵌套調用引入的嵌套並行性對內置函數(如parallel_for
、 parallel_reduce
)也進行了適當管理。
我將從事一個項目,在該項目中應重用基於 OpenMP 的遺留並行代碼,oneTBB 是否也會跟蹤由 omp 調用產生的線程? 如果是這樣,它是如何實現的?
如果我們從 LIBBLAS 和 fftw 切換到 oneMKL,這個問題會得到解決嗎?
我找不到關於這個特定主題的文檔,你可以簡單地發布一些 url,當我讀完它們時,我會總結並添加一個答案。
oneTBB 任務調度程序將自動初始化,並在運行時處理要使用的線程數。 要找出在任何給定時間存在或正在執行任務的工作線程數並不容易。
我們可以合並 OpenMP 和 oneTBB 代碼,但 oneTBB 無法跟蹤 openMP 線程。
請參考以下鏈接:
https://oneapi-src.github.io/oneTBB/main/tbb_userguide/appendix_B.html
oneMKL 使用 OpenMP 或 oneTBB 中的任何一個線程層。 默認情況下 oneMKL 使用順序方式。 有關 oneMKL 中的線程層,請參閱以下鏈接:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.