LabWindows/CVI

Table of Contents
  • LabWindows/CVI Fundamentals
  • Creating Applications
  • Distributing Applications
  • Library Reference
  • Programmer Reference
  • Hardware Information

OpenMP Terminology

While using this help file to implement an OpenMP application, you might encounter the following terms.

Language Terminology

structured block—An executable statement, possibly compound, with a single entry at the top and a single exit at the bottom.

OpenMP directive—A #pragma that specifies OpenMP application behavior.

OpenMP application—An application that consists of an original application annotated with OpenMP directives.

declarative directive—An OpenMP directive that you can place only in a declarative context, such as threadprivate. A declarative directive has no associated executable user code, but rather has one or more associated user declarations.

executable directive—An OpenMP directive that is not declarative; all directives except threadprivate are executable directives.

standalone directive—An OpenMP directive that has no associated user code, such as barrier and flush.

simple directive—An OpenMP directive whose associated user code must be a simple executable statement, such as atomic.

loop directive—An OpenMP directive whose associated user code must be a loop that is a structured block, such as for.

structured directive—An OpenMP executable directive that is neither a standalone directive, a simple directive, or a loop directive. All structured directives have associated user code that is in the structured block that follows the directive.

construct—An OpenMP executable directive and the associated statement, loop or structured block, if any, not including the code in any called routines.

region—All code encountered during a specific instance of the execution of a given construct or OpenMP library routine. A region includes any code in called routines as well as any implicit code introduced by the OpenMP implementation.

sequential part—All code encountered during the execution of an OpenMP application that is not enclosed by a parallel region corresponding to an explicit parallel construct.

binding thread set—The set of threads that are affected by, or provide the context for, the execution of a region.
The binding thread set for a given region can be one of the following options:

Note Note  The binding thread set of some OpenMP functions is implementation-defined.
  • All Threads—All threads participating in the OpenMP application.
  • Current Team—All the threads in the team executing the innermost enclosing parallel region.
  • Encountering Thread—The thread whose execution encountered the construct that creates the region.

binding region—OpenMP defines a binding region when the region's binding thread set is the current team; the binding region is the enclosing region that determines the execution context and limits the scope of the effects of the bound region.

The binding region is not defined for regions whose binding thread set is all threads or the encountering thread.

Note Note  The binding region of some OpenMP functions is implementation-defined.

The following list describes additional caveats for binding regions:

  • The binding region for an ordered region is the innermost enclosing loop region. For all other regions with whose binding thread set is also the current team, the binding region is the innermost enclosing parallel region. When such a region is encountered outside of any explicit parallel region, the binding region is the implicit parallel region enclosing the sequential part.
  • A parallel region need not be active to be a binding region.
  • A region never binds to any region outside of the innermost enclosing parallel region.

work-sharing directive—A directive that defines units of work, each of which is executed exactly once by a thread in the team executing the construct. for, sections, and single are work-sharing directives.

parallel region—Code marked by a parallel directive. Multiple threads execute the code in the parallel region.

active parallel region—A parallel region whose if clause evaluates to TRUE.

inactive parallel region—A parallel region that is not an active parallel region. An inactive parallel region is always executed by a team of only one thread.

implicit parallel region—An inactive parallel region that encloses the sequential part of an OpenMP application.

initial thread—The thread that executes the sequential part.

master thread—A thread that encounters the start of a parallel region and creates a team.

team—A set of one or more threads participating in the execution of a parallel region. For an active parallel region, the team comprises the master thread and additional threads that might be launched. For an inactive parallel region, the team only includes the master thread.

barrier—A point in the execution of an application encountered by a team of threads, beyond which no thread in the team may execute until all threads in the team have reached that point.

parallelizing code—Creating code that can execute in parallel on multiple threads.

Data Terminology

private variable—A variable whose name provides access to a different block of storage for each thread in a team.

shared variable—A variable whose name provides access to the same block of storage for all threads in a team.

Implementation Terminology

supporting OpenMP—Supporting at least one level of parallelism.

conforming program—An OpenMP program that follows all the rules and restrictions of the OpenMP specification.

compliant implementation—An implementation of the OpenMP specification that compiles and executes any conforming program as defined by the specification.

unspecified behavior—A behavior that is not specified by the OpenMP specification or not known prior to the compilation or execution of an OpenMP application.

implementation defined—Behavior that is allowed to vary among different compliant implementations, but must be documented by the implementation. An implementation is allowed to define this behavior as unspecified.

Log in to get a better experience