Visible to Intel only — GUID: GUID-DD40DE97-DDD1-4FC1-A083-15B62414CCAA
Visible to Intel only — GUID: GUID-DD40DE97-DDD1-4FC1-A083-15B62414CCAA
intel omp taskq
For Intel legacy tasking, specifies an environment for the while loop in which to queue the units of work specified by the enclosed task pragma.
Syntax
#pragma intel omp taskq[clause[[,]clause]...] |
structured-block |
Arguments
clause |
Can be any of the following:
|
Description
The intel omp taskq pragma specifies the environment within which the enclosed units of work (tasks) are to be executed. From among all the threads that encounter a intel omp taskq pragma, one is chosen to execute it initially.
Conceptually, the intel omp taskq pragma causes an empty queue to be created by the chosen thread, and then the code inside the taskq block is executed as single-threaded. All the other threads wait for work to be queued on the conceptual queue.
The intel omp taskq pragma specifies a unit of work, potentially executed by a different thread. When a task pragma is encountered lexically within a taskq block, the code inside the task block is conceptually queued on the queue associated with the taskq. The conceptual queue is disbanded when all work queued on it finishes, and when the end of the taskq block is reached.
This pragma affects parallelization done using the Qopenmp (Windows*) or qopenmp (Linux* or macOS) option. Options that use OpenMP* are available for both Intel® and non-Intel microprocessors, but these options may perform additional optimizations on Intel® microprocessors than they perform on non-Intel microprocessors. The list of major, user-visible OpenMP* constructs and features that may perform differently on Intel® vs. non-Intel microprocessors includes: locks (internal and user visible), the SINGLE construct, barriers (explicit and implicit), parallel loop scheduling, reductions, memory allocation, and thread affinity and binding.