編譯制導指令格式:
#pragma omp 功能指令 [子句[, 子句]...]功能指令:
parallel用於**塊之前,建立並行域,並將**塊分配到並行域所有執行緒並行執行for用於for迴圈前,將迴圈分配到並行域執行緒並行執行
parallel for 用於for迴圈前,建立並行域並將迴圈分配到並行域執行緒並行執行
sections用於多個**塊的並行執行,各個**塊用section指令標出
parallel sections
single用在並行域內,僅單個執行緒執行
cirtical用於臨界區之前,每次只有乙個執行緒進入臨界區
flush保證各個執行緒的資料一致
barrier同步
atomic原子操作
master僅主線程執行
threadprivate指定變數為執行緒專有
子句:
private執行緒私有變數(副本)firstprivate同上,並用主線程同名變數初始化
lastprivate同private,並將執行緒變數值複製回主線程同名變數中
reduction指定規約運算
nowait忽略隱含同步
num_threads指定並行域內線程數量
schedule任務分配排程型別
shared執行緒間共享的變數
ordered指定for並行域內**,按序列迴圈次序執行
copyprivate配合single,將指定執行緒的專有變數廣播到其它執行緒的同名變數
copyinthreadprivate型別變數需要用主線程同名變數初始化
default
omp_in_parallel是否在並行域內omp_get_thread_num返回執行緒號
omp_set_num_threads設定執行緒數量
omp_get_num_threads
omp_get_max_threads返回並行域可用的最大執行緒數目
omp_get_max_procs返回處理器個數
omp_get_dynamic動態改變執行緒數目
omp_set_dynamic
omp_get_nested並行巢狀
omp_set_nested
omp_init(_nest)_lock初始化(巢狀)鎖
omp_destroy(_nest)_lock
omp_set(_nest)_lock
omp_unset(_nest)_lock
omp_test(_nest)_lock非阻塞加鎖
omp_get_wtime獲取wall time時間omp_set_wtime
omp_schedule與同名函式意義相同omp_num_threads
omp_dynamic
omp_nested
OpenMP 程式設計指南
2 openmp並行程式設計 二 1 fork join並行執行模式的概念 2 openmp指令和庫函式介紹 3 parallel 指令的用法 4 for指令的使用方法 5 sections和section指令的用法。閱讀全文 3 openmp中的資料處理子句 本文主要介紹了openmp中的priv...
Openmp程式設計練習
include stdio.h include omp.h include 使用sleep 函式需要包含此標頭檔案 int num omp lock t lock int getnum void chushou int i int main omp destroy lock lock return ...
OpenMP並行程式設計(一)
openmp並行程式設計 一 openmp是乙個支援共享儲存並行設計的庫,特別適宜多核cpu上的並行程式設計。今天在雙核cpu機器上試了一下openmp並行程式設計,發現效率方面超出想象,因此寫出來分享給大家。在vc8.0中專案的屬性對話方塊中,左邊框裡的 配置屬性 下的 c c 下的 語言 頁裡,...