Nested Parallelism
Nested parallelism is the ability to have parallel regions within parallel regions
- OpenMP specification allows nested parallel regions
- currently all implementation serialize nested parallel regions
- i.e. effectively there is no nested parallelism
- a PARALLEL directive in dynamic extent of another parallel region logically establishes a new team consisting only of the current thread
- DO, SECTIONS, SINGLE directives that bind to the same PARALLEL directive are not allowed to be nested
- DO, SECTIONS, SINGLE directives are not allowed in the dynamic extent of CRITICAL and MASTER directives
- BARRIER directives are not allowed in the dynamic extend of DO, SECTIONS, SINGLE, MASTER and CRITICAL directives
- MASTER directives are not permitted in the dynamic extent of any work sharing constructs (DO, SECTIONS, SINGLE)