我是英特爾TBB的新手。我正在使用concurrent_queue來實現我的項目中的細粒度並行。我沒有懷疑。這是我如何執行。Intel TBB concurrent_queue如何工作?它是否實現了細粒度的並行?
thread_fun(arguments) {
while(concurrent_queue.try_pop(v))
operation on v; //each thread executes its own operation(seperate v for each thread)
}
main() {
for(..)
concurrent_queue.push(); //fill the queue
_beginthreadex(..); //create 8 win32 threads and pass concurrent_queue as an argument
}
我明確提到的線程數。我讀過TBB將根據處理器核心數量創建線程。我怎麼能做到這一點?所以我不需要用_beginthreadex函數明確創建線程?
我是否通過使用concurrent_queue實現細粒度的並行?
你是什麼意思的任務級並行?如何通過英特爾tbb實現任務級並行性?我正在排隊排隊。流行操作是否被視爲一項任務?這意味着,所有流行操作都被視爲不同的任務。我每次用8個線程彈出8個元素。這意味着,我正在實現任務級別的並行性。我對麼?
如果我增加線程32的數量上的四核處理器(支持8個線程),請問concurrent_queue工作?是否同時執行隊列上共同執行的8個線程或共32個線程?
請幫幫我。