The first category of pragmas lets you give the compiler information on the characteristics of a specific countable loop. The compiler uses this information to perform more efficient automatic parallelization of the loop. The second category gives you explicit control over parallelization. Use these pragmas to force or suppress parallelization of a loop, apply specific parallelization algorithms to a loop, and synchronize access to shared variables using critical sections. OpenMP Directives OpenMP directives exploit shared memory parallelism by defining various types of parallel regions .
Parallel regions can include both iterative and non-iterative segments of program code.
Most of the OpenMP directives either statically or dynamically bind to an enclosing parallel region. The second category lets you define how work will be distributed or shared across the threads in a parallel region. The third category lets you control synchronization among threads. The fourth category lets you define the scope of data visibility across threads.