OpenMp使用例子

2021-07-29 11:52:23 字數 1007 閱讀 5848

參考:

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...