在VS2017中玩耍OpenMP

2021-10-06 10:13:42 字數 1381 閱讀 4141

#include

// 加入標頭檔案

#include

using

namespace std;

intmain

(int argc,

char

**ar**)

}

輸出如下

hello, i am thread 1

hello, i am thread 2

hello, i am thread 0

hello, i am thread 3

進一步,我們進行for迴圈,這裡要求資料間不存在依賴關係,否則不同執行緒中計算會導致錯誤,我們將main中**替換如下

omp_set_num_threads(4

);#pragma omp parallel for

for(

int i =

0; i <5;

++i)

std::cout << i <<

" i am thread: "

<<

omp_get_thread_num()

<< std::endl;

輸出

0 i am thread: 03 i am thread: 2

2 i am thread: 1

4 i am thread: 3

1 i am thread: 0

omp_set_num_threads(4

);#pragma omp parallel for

for(

int i =

0; i <5;

++i)

i = 0, i am thread: 0

i = 1, i am thread: 0

i = 2, i am thread: 2

i = 3, i am thread: 1

i = 4, i am thread: 3

可以看到執行緒0(也就是主線程)執行迴圈中0 , 1;執行緒2執行 2 ;執行緒1執行 1 ;執行緒3執行 4;這樣整個迴圈就被拆分成四個並行,從理論上講,速度相較原來提公升四倍!

#pragma omp parallel

也得到了上述結果。

今天先玩這麼多,後續再看看多執行緒間資料怎麼傳遞,類似於gpu中並行。

未完待續。。。。。

渡盡劫波兄弟在,相逢一笑泯恩仇。

—魯迅

VS2017中新增QWebEngineView模組

開發環境 qt 5.9.0 vs2017 vs2017 在生成新的工程時,會預設帶了一些模組。如果新增新的模組如何操作呢?目前就新增 qwebengineview 模組為例。在生成新的工程時預設帶的模組,裡面沒有qwebenginewidget模組,所以需要自己手動配置 圖一 第一步 中新增 qwe...

在windows上vs2017 編譯webrtc

指定vs版本 set gyp msvs override path c program files x86 microsoft visual studio 2017 professional vs安裝路徑,替換成自己的 set gyp generators msvs ninja,ninjamkdir...

VS2017中加入彙編

專案需要,需要在vs2017中加入彙編 讓c c 可以呼叫彙編 根據作業系統選擇包,解壓後有四個檔案vsyasm.exe,vsyasm.props,vsyasm.targets,vsyasm.xml 2.在vs2017工程中新增原始碼,加入asm檔案 3.選中專案,右鍵,生成依賴項 生成自定義 選擇...