![](/img/trans.png)
[英]Why won't the threads in the omp parallel section be divided on their sections?
[英]OpenMP: Why are these omp parallel sections not executed with multiple threads?
我正在嘗試並行化一些代碼,但是遇到了(可能是愚蠢的)問題。 下面的示例代碼返回“ 12”,盡管我希望是“ 21”。
當我在此塊中的任何地方調用它們時,omp_get_max_threads()返回8,omp_get_num_threads()返回1,而omp_get_thread_num()返回0。 我想我可以得出結論,它只是由主線程按順序執行。
#include <omp.h>
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
#pragma omp parallel sections num_threads(2)
{
#pragma omp section
{ Sleep(200);
cout << "1"; }
#pragma omp section
{ cout << "2"; }
}
}
我究竟做錯了什么? 如何強制並行處理這些部分?
對於上下文:我正在從兩個USB 3.0攝像機流式傳輸數據,並且依次依次調用每個圖像的速度太慢,以至於丟失幀。 我想基本上為每台相機留出一個線程,以不斷要求其圖像。
這個問題的標題相似,但是沒有幫助。 我正在使用Visual Studio 2010。
注釋是正確的:我忘記在項目設置中設置OMP支持。
值得注意的是,我可以從相機傳輸的幀數下降了。 最大化使用的帶寬並不像我想的那么簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.