我有一個C++程序,在使用OpenMP並行化循環方面效果很好。TBB數據對象是否可與OpenMP一起使用?
但是,還有一些代碼片段 - 那些使用隊列和優先級隊列等的代碼 - 只有在我聲明對它們的訪問權限很重要時才能並行工作。
另一種選擇是使用TBB數據對象,如concurrent_queue
。但是,我可以將這些數據對象與OpenMP一起使用,而不使用任何TBB的其餘部分?
來源和鏈接讚賞。
謝謝!
更新
例如,是以下一種TBB和OpenMP的混合允許嗎?
concurrent_queue<int> queue;
#pragma omp parallel for
for(int i=0; i<1000; i++)
queue.push(i);
另一種選擇是cilk ++ – pyCthon 2012-02-26 01:45:57
Thanks @pyCthon。它似乎沒有在我的倉庫中可用,所以我不喜歡使用它。不過,我會記住它的。 – Richard 2012-02-26 17:59:24