If I read it correctly, the directive is an OpenMP statement, for example
#pragma omp for
or
#pragma omp parallel private(th_id) shared(nthreads)
A directive may include sentences , for example, the private statement above or schedule(dynamic, CHUNKSIZE) .
Directives combined with code form a construct . That is, the design is a template for achieving something. Thus, the "parallel construction" is a parallel directive, its optional sentences and any executable code:
#pragma omp parallel printf("Hello, world.\n");
A "workharing construct" is a parallel for directive followed by a loop code:
#pragma omp parallel for for (i = 0; i < N; i++) a[i] = 2 * i;
source share