簡體   English   中英

如何將 oneTBB 與 openMP 一起使用

[英]How to use oneTBB along with openMP

在 oneTBB 中,並行運行的任務數量由庫處理,以確保激活的線程數不超過硬件限制。 它還指出,嵌套調用引入的嵌套並行性對內置函數(如parallel_forparallel_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 中的線程層,請參閱以下鏈接:

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/linking-your-application-with-onemkl/linking-in-detail/linking-帶線程庫。html

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/linking-your-application-with-onemkl/linking-in-detail/dynamic-選擇接口和線程層。html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM