I am wondering how intel compilers model OpenMP 3.0 (3.1) tasking. According to the standard, private task pools are initiated for the execution of descendant (child) tasks. A global task pool is established and shared by all threads. The question is how the execution order is built for those task pool. Is it LIFO ? or FIFO ? or a cutoff strategy ? I searched everywhere but have not found a clue for this. This matter is actually important when a developer want to guide out-of-order task scheduling in a specific way.