openmp的環境變數:
環境變數
描述 示例
omp_schedule
控制for迴圈任務分配結構的排程
omp_schedule="guided,2"
omp_num_threads
設定預設執行緒的個數
omp_schedule=4
openmp的庫函式
函式名稱
描述int omp_get_num_threads(void)
返回當前使用的執行緒個數,如果在並行區域外則返回1
int omp_set_num_threads(int i)
設定要使用的執行緒個數,它可以覆蓋omp_num_threads
int omp_get_thread_num(void)
返回當前執行緒號,0代表主線程
int omp_get_num_procs(void)
返回可用的處理核(處理器)個數,對於支援超執行緒技術的處理器被算作兩個處理核
openmp的排程方案
排程型別
描述static
將所有迴圈迭代劃分成相等大小的塊
dynamic
使用乙個內部佇列,當某執行緒可用時,為其分配由塊大小所制定的一定數量的迴圈迭代
guided
與dynamic策略類似,但是塊大小開始較大,後來逐步減小。可選引數chunk指定塊大小的最小值,預設為1
runtime
執行時由omp_schedule決定使用上面三種的哪種策略
openmp的編譯
平台和編譯器
命令windows平台 intel c++編譯器
icl /qopenmp
linux平台 intel c++編譯器
icl -openmp
gcc gcc -fopenmp
_openmp巨集可以用來判斷openmp是否被支援,通過它可以寫出任何c語言編譯器(即使不支援openmp)都可以編譯的**。**如下所示:
#ifdef _openmp
#include
#else
#define omp_get_thread_num() 0
#endif
visual c++® 2008對openmp的支援
vc++2008根據專案屬性配置的指示進行 /openmp編譯器切換,當配置了openmp支援後,編譯器會提供_openmp定義,可以使用#ifdef _openmp來決定程式使用或者不使用openmp。
配置vc++2008專案,在project的property頁面上的c/c++ -> language 選項卡中將openmp support這項設定為yes,在需要使用openmp函式的cpp檔案中引用#include ,這樣設定就完成了。
openmp環境變數和庫函式
openmp的環境變數 環境變數 描述 示例omp schedule 控制for迴圈任務分配結構的排程 omp schedule guided,2 omp num threads 設定預設執行緒的個數 omp schedule 4 openmp的庫函式 函式名稱 描述 int omp get num...
OpenMP的環境變數
openmp的環境變數 環境變數 描述示例 omp schedule 控制for迴圈任務分配結構的排程 omp schedule guided,2 omp num threads 設定預設執行緒的個數 omp schedule 4 openmp的庫函式 函式名稱 描述int omp get num ...
設定openMP環境變數
openmp在windows環境下比較容易實現,只要開啟vs2008中的編譯選項 openmp,設定一下環境變數omp num threads就可以了。一般是新建乙個c 專案,以次選擇project alt f7 屬性 配置屬性 configuration property c c 語言 langu...