指令
- `& w. _2 B2 k- f | 說明
( G- `( c1 s! E |
parallel
" M7 A% Q8 u) o- a7 ~7 I2 Y | 開始并行執(zhí)行語句
9 e7 K2 Q% y" X: m/ X0 \/ o; }6 b |
for
2 U3 X7 U9 O; G: d6 J+ Y | 在多個(gè)線程中并行執(zhí)行for循環(huán)* S" T+ i5 r8 f$ E" {* s* j
|
sections3 V* g4 z/ o- ~0 b0 k
| 包含多個(gè)可并行執(zhí)行的sectone結(jié)構(gòu)體. |4 m0 [( J/ r* b
|
single
0 E/ G' a9 K9 R7 ~ | 單線程執(zhí)行- G( a* M6 u/ }; R
|
master
2 n, M3 F5 ~, ~! x | 主線程執(zhí)行
( F' i6 ?" V' ^7 K; F& D# P9 S' f9 _ |
critical7 Y9 ~. }& ?. y1 E2 a/ O
| 任意時(shí)刻僅可被單個(gè)線程執(zhí)行0 a9 K9 B' \0 \0 K0 ?" w
|
barrier* i4 E* M! P6 F/ D! \
| 指定屏障,用于同步所有線程* y/ _# M! a0 V5 W# C
|
taskwait& m9 y3 H( g8 N
| 等待子線程完成
. F6 l2 I2 U" E& g2 ^2 h0 J& b3 g6 R |
atomic
- O: D* r; `5 ]5 n. n | 確保指定內(nèi)存位置執(zhí)行原子更新操作
% `- g7 _- |7 \0 m- r k/ ` |
flush
+ q; N4 i; L' q9 g8 r! A' A% T | 使線程當(dāng)前內(nèi)存數(shù)據(jù)與實(shí)際內(nèi)存數(shù)據(jù)一致
" I. k8 F9 E( p) E |
ordered
- O; `. {! e2 N | 并行執(zhí)行的for循環(huán)將按循環(huán)體變量順序執(zhí)行& U# ?' ?" y8 L
|
threadprivate
4 ?0 s F/ |7 s! T4 K | 指定變量為本地存儲(chǔ)
% [$ V3 G; \# U0 F |
子句
% w5 W! A' l6 J# F1 J7 f | 說明6 @/ ]6 {# r5 M2 a2 x9 H: c0 v
|
default& q: G) V2 b" C" x8 e
| 控制parallel或task結(jié)構(gòu)體中變量數(shù)據(jù)的共享屬性3 ?- t& C7 f# J
|
shared! X! X. e' l# L- {/ I$ D
| parallel或task結(jié)構(gòu)中,一個(gè)或多個(gè)變量為共享變量3 k) i5 p& L; V7 L7 v2 G3 p
|
private
2 }; K" X3 a5 h: z7 T7 F) O1 | | 一個(gè)或多個(gè)變量為本地變量
3 D, K8 D [+ k( ?# v) r- \ |
firstprivate; G& q2 b9 i& C8 d) z( Q! O
| 一個(gè)或多個(gè)變量為本地變量,且變量值為并行結(jié)構(gòu)執(zhí)行前的值
2 c, @ p- U( z/ k" e |
lastprivate. B! H6 }8 ^. i8 a8 h: P. u
| 一個(gè)或多個(gè)變量為本地變量,且變量值為并行結(jié)構(gòu)執(zhí)行后的值
' V! L% B+ u! y7 _' l* d |
reduction1 t) O& _$ V3 v' b- o( I( ]
| 一個(gè)或多個(gè)變量為本地變量,但變量值將根據(jù)不同的運(yùn)算符來決定,執(zhí)行完成后變量值將被更新
* F; A) _1 h. C3 n! O4 E |
copyin
' \ }5 ~( g. [1 D6 x | 使線程本地變量值與主線程變量值相同
3 J+ ^! A% _9 M9 k( q! p( } |
copyprivate
1 G7 j% y: T! G! N$ M# q | 使屬于parallel區(qū)域的變量值在不同線程中相同
; f6 C: K" x. X |
schedule: U! b; ^$ c: W
| 設(shè)置for循環(huán)并行執(zhí)行方式:dynamic、guided、runtime和static- v( Q0 }5 ~, p: Y1 \. c7 [1 c
|
num_threads6 O5 L5 e- n9 t* R" h
| 線程數(shù)目
: R0 h. t. @' y. `9 K1 C% ^ |
if4 j+ s( a. [( @, @0 A' a: N
| 并行語句執(zhí)行條件; j! X E m% h3 W/ N% \; [" `: j
|
nowait
& b% g) T5 X" y) d5 b5 c | 忽略線程同步等待
; H. e5 U9 ^! v2 P- G |