OpenMP中的常用函式

2021-08-26 12:53:23 字數 1374 閱讀 3320

在openmp的runtime library中有一些常用的函式,有些函式已經在前面的例子中使用過,現在集中說明這些常用的函式以及用法。

1、設定執行緒數目

其定義如下:

voidomp_set_num_threads(int num_threads);

通過該函式來指定其後用於平行計算的執行緒數目,其中引數num_threads就是指定的執行緒數目。

2、獲取執行緒數目

其定義如下:

intomp_get_num_threads();

通過該函式可以獲取當前執行組中的執行緒數目,如果是在並行結構中使用該函式,其返回的就是現在平行計算中的所有的執行緒總數,如果是在序列中使用該函式,其返回值就為1。

3、獲取最多執行緒數目

其定義如下:

intomp_get_max_threads();

該函式將返回最多可以用於平行計算的執行緒數目。

4、返回執行緒id

其定義如下:

int omp_get_thread_num();

通過該函式可以返回當前執行緒的id,如果使用該函式時處於並行結構中,它返回的就是這個並行執行緒的id,如果在序列中,就是返回主線程的id。

5、獲取程式可用的處理器數目

其定義如下:

int omp_get_num_procs();

該函式將返回可用於程式的處理器數目(其實是執行緒數目)。

6、獲取時間

其定義如下:

doubleomp_get_wtime();

該函式返回為時鐘執行的時間,單位為s,如果現在時刻為11:40:30.8,則該值為11*3600+40*60+30.8=42030.8。在程式執行開始和即將結束時使用呼叫這個函式可以用於計算程式執行的時間。

7、是否處於並行中

其定義如下:

intomp_in_parallel();

該函式返回值為0表示現在處於序列程式中,值為1表示現在處於並行程式中。

關於這些常用函式的具體用法及含義如下例所示:

主線程中:

執行緒數目:1

最多執行緒數目:8

當前執行緒id:0

程式可用的處理器數目:8

程式是否處於並行:0

是否允許並行巢狀:0

程式開始並行:

程式是否處於並行:1

執行緒數目:8

當前執行緒id:0

程式是否處於並行:1

執行緒數目:8

當前執行緒id:1

程式並行結束!

OpenMP中的常用函式

1 設定執行緒數目 其定義如下 void omp set num threads int num threads 通過該函式來指定其後用於平行計算的執行緒數目,其中引數num threads就是指定的執行緒數目。2 獲取執行緒數目 其定義如下 int omp get num threads 通過該函...

OpenMP中的常用函式

1 設定執行緒數目 其定義如下 void omp set num threads int num threads 通過該函式來指定其後用於平行計算的執行緒數目,其中引數num threads就是指定的執行緒數目。2 獲取執行緒數目 其定義如下 int omp get num threads 通過該函...

openmp常用總結

執行時函式 win 10 vs2017 include intmain 並行結束,序列區域 return0 目的 接下來乙個區域內指令全部執行緒執行 理解 當執行緒執行到並行指令後,建立指定數目或者預設數目的執行緒並成為該組執行緒的主線程。當執行完並行區域後,只有主線程繼續執行。指令 paralle...