Parallel Construct
The syntax of the parallel construct is as follows:
#pragma omp parallel [set of clauses]
where clause is one of the following:
structured-block
if(scalar-expression)
private(list)
firstprivate(list)
default(shared | none)
shared(list)
copyin(list)
When a thread encounters a parallel construct, a set of new threads is created to implement the parallel region. Within a parallel region every thread has a unique thread number. Thread number of the master thread is zero. Thread number of a thread can be getting by the call of library function omp_get_thread_num. Now, we are giving the explanation of the clauses used in a parallel construct.
(a) Private Clause:
These clauses states one or more list items to be private to a thread. The syntax of the private clause is
private(list).
(b) Firstprivate Clause:
The firstprivate clause states one or more list items to be private to a thread, and initializes each of them with the value that the corresponding original item has when the construct is encountered. The syntax of the firstprivate clause is as follows:
firstprivate(list).
(c) Shared Clause:
The shared clause declares one or more list items to be shared between all the threads in a team. The syntax of the shared clause is :
shared(list)
(d) Copyin Clause:
The copyin clause gives a mechanism to copy the value of the master thread's threadprivate variable to the threadprivate variable of each other member of the team implementing the parallel region. The syntax of the copyin clause is :
copyin(list)