參考:
openmp是由openmp architecture review board牽頭提出的,並已被廣泛接受的,用於共享記憶體
並行系統的多執行緒程式設計
的一套指導性注釋(compiler directive)。openmp支援的程式語言
包括c語言、c++和fortran;而支援openmp的編譯器
包括sun compiler,gnu compiler和intel compiler等。openmp提供了對並行演算法
的高層的抽象描述,程式設計師
通過在源**
中加入專用的pragma來指明自己的意圖,由此編譯器
可以自動將程式進行並行化,並在必要之處加入同步互斥以及通訊。
下面先看一段不使用openmp的程式:
[cpp]view plain
copy
#include
#include
#include
void test(int n)
} int main()
"font-size:18px;">
程式執行結果如下所示:
再看相同的程式但使用openmp的例子:
[cpp]view plain
copy
#include
#include
#include
#include
void test(int n)
} int main()
程式執行結果如下所示:
對比使用openmp前後執行結果,同樣的一段程式,執行時間幾乎減少了一半(接近40%)。
openmp使用隨筆2 獲取openmp命令
1 設定執行緒數目 其定義如下 void omp set num threads int num threads 通過該函式來指定其後用於平行計算的執行緒數目,其中引數num threads就是指定的執行緒數目。2 獲取執行緒數目 其定義如下 int omp get num threads 通過該函...
OpenMP使用方法
本文 1.編譯指導指令 compiler directive 在c c 程式中,openmp的編譯指導指令以 pragma omp開始 例如 pargma omp 指令 子句 子句 子句的型別 2.執行庫函式 runtime library 3.環境變數 environment variables ...
使用Openmp並行化
執行命令 g fopenmp xx.cpp lgomp lpthread o xx.out 用例一 include include include void test int n printf d,n int main int argc,char ar 用例二 include include inc...