This discussion is based on and includes comments from users of OpenMP at government-funded high performance computing centers. The intent is for the parallel region to be executed by multiple threads in parallel. A work-sharing directive encountered dynamically within a parallel region distributes the work within the region among the members of the team of threads that encounters it. The DO directive specifies distribution of loop interations across the available threads. Clauses that are part of the work-sharing directive indicate whether variables are to be private to or shared among threads.
Synchronization constructs allow specification of thread behavior in a parallel region.
Some new features have been included in OpenMP that were not included in earlier shared memory directives. Orphaning was added to handle the situation where directives are encountered outside the lexical but within the dynamic extent of the parallel region. With orphaning directives are allowed to be encountered dynamically within the call chain of the parallel region. The OpenMP specification allows nested parallelism. However, not all OpenMP compilers have implemented this feature.