declarative directive An OpenMP directive that may only be placed in a declarative context.A 23 decla arations only,it is not associated executable directive An OpenMP directive that is not declarative.That is,it may be placed in an executable context. 6 stand-alone directive An OpenMP executable directive that has no associated executable user code loop directive An OpenMP executable directive whose associated user code must be a loop nest that is a structured block. associated loop(s)The loop(s)controlled by a loop directive. COMMENT:If the loop directive contains a collapse clause then there may be more than one associated loop construct An OpenMP executable directive(and for Fortran,the paired end directive,if 13 any)and the associated statement,loop or structured block,if any,not including 14 the code in any called routines.That is,in the lexical extent of an executable 15 directive. 167 region All code encountered during a specific instance of the execution of a given construct or of an OpenMP library routine.A region includes any code in called routines as well as any implicit code introduced by the OpenMP implementation. The generation of a task at the point where a task directive is encountered is a 20 part of the region of the encountering thread,but the explicit task region associated with the task directive is not.The point where a target or teams directive is encountered is a part of the region of the encountering thread,but the 23 region associated with the target or teams directive is not. 24 COMMENTS: A region may also be thought of as the dynamic or runtime extent of a 26 construct or of an OpenMP library routine / During the execution of an OpenMP program,a construct may give rise to many regions. 29 39 active parallel region A parallel region that is executed by a team consisting of more than one inactive parallel 32 region A parallel region that is executed by a team of only one thread. 4 OpenMP API.Version 4.0-July 2013
4 OpenMP API • Version 4.0 - July 2013 declarative directive An OpenMP directive that may only be placed in a declarative context. A declarative directive results in one or more declarations only; it is not associated with the immediate execution of any user code. executable directive An OpenMP directive that is not declarative. That is, it may be placed in an executable context. stand-alone directive An OpenMP executable directive that has no associated executable user code. loop directive An OpenMP executable directive whose associated user code must be a loop nest that is a structured block. associated loop(s) The loop(s) controlled by a loop directive. COMMENT: If the loop directive contains a collapse clause then there may be more than one associated loop. construct An OpenMP executable directive (and for Fortran, the paired end directive, if any) and the associated statement, loop or structured block, if any, not including the code in any called routines. That is, in the lexical extent of an executable directive. region All code encountered during a specific instance of the execution of a given construct or of an OpenMP library routine. A region includes any code in called routines as well as any implicit code introduced by the OpenMP implementation. The generation of a task at the point where a task directive is encountered is a part of the region of the encountering thread, but the explicit task region associated with the task directive is not. The point where a target or teams directive is encountered is a part of the region of the encountering thread, but the region associated with the target or teams directive is not. COMMENTS: A region may also be thought of as the dynamic or runtime extent of a construct or of an OpenMP library routine. During the execution of an OpenMP program, a construct may give rise to many regions. active parallel region A parallel region that is executed by a team consisting of more than one thread. inactive parallel region A parallel region that is executed by a team of only one thread. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
sequential part All code encountered during the execution of an initial task region that is not part of a parallel region corresponding to a parallel construct or a task region corresponding to a task construct. COMMENTS A sequential part is enclosed by an implicit parallel region. 8 Executable statements in called routines may be in both a sequential part and any number of explicit parallel regions at different points in the program execution master thread The thread that encounters a parallel construct,creates a team,generates a set 10 of implicit tasks.then executes one of those tasks as thread number 0. 11213 parent thread The thread that encountered the parallel construc and generated a 5 as its parent thread with respect to any resources associated with an OpenMP thread child thread When a thread encounters a parallel construct,each of the threads in the 17 generated pa child th ds of the 1819 thensouered theagetore target 20 ancestor thread For a given thread,its parent thread or one of its parent thread's ancestor threads. 烈 descendent thread For a given thread,one of its child threads or one of its child threadsdescendent 23 team A set of one or more threads participating in the execution of a parallel 24 region. 25 COMMENTS: 碧 For an inactive parallel region,the team comprises only the master 2 thread. 30 league The set of thread teams created by a target construct or a teams construct. 31 contention group An initial thread and its descendent threads implicit parallel 32 region An inactive parallel region that generates an initial task region.Implicit parallel 33 regions surround the whole OpenMP program,all target regions,and all 34 teams regions. Chapter 1 Introduction
Chapter 1 Introduction 5 sequential part All code encountered during the execution of an initial task region that is not part of a parallel region corresponding to a parallel construct or a task region corresponding to a task construct. COMMENTS: A sequential part is enclosed by an implicit parallel region. Executable statements in called routines may be in both a sequential part and any number of explicit parallel regions at different points in the program execution. master thread The thread that encounters a parallel construct, creates a team, generates a set of implicit tasks, then executes one of those tasks as thread number 0. parent thread The thread that encountered the parallel construct and generated a parallel region is the parent thread of each of the threads in the team of that parallel region. The master thread of a parallel region is the same thread as its parent thread with respect to any resources associated with an OpenMP thread. child thread When a thread encounters a parallel construct, each of the threads in the generated parallel region's team are child threads of the encountering thread. The target or teams region's initial thread is not a child thread of the thread that encountered the target or teams construct. ancestor thread For a given thread, its parent thread or one of its parent thread’s ancestor threads. descendent thread For a given thread, one of its child threads or one of its child threads’ descendent threads. team A set of one or more threads participating in the execution of a parallel region. COMMENTS: For an active parallel region, the team comprises the master thread and at least one additional thread. For an inactive parallel region, the team comprises only the master thread. league The set of thread teams created by a target construct or a teams construct. contention group An initial thread and its descendent threads. implicit parallel region An inactive parallel region that generates an initial task region. Implicit parallel regions surround the whole OpenMP program, all target regions, and all teams regions. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
initial thread A thread that executes an implicit parallel region. nested construct A construct(lexically)enclosed by another construct. closely nested 3 construct tnested inside another construct with no other construct nested etween them. nested region A region (dynamically)enclosed by another region.That is,a region encountered 6 during the execution of another region. 78 COMMENT:Some nestings are conforming and some are not.See Section 2.16 on page 186 for the restrictions on nesting. 8 closely nested region A region nested inside another region with no parallel region nested between them】 all threads All OpenMP threads participating in the OpenMP program. 12 current team All threa the feam executing the innermost enclosing parallel regior 13 encountering thread For a given region,the thread that encounters the corresponding construct. 14 all tasks All tasks participating in the nMP program current team tasks All tasks encountered by the corresponding team.Note that the implicit tasks constituting the parallel region and any descendent tasks encountered during 17 the execution of these implicit tasks are included in this set of tasks. 18 generating task For a given region,the task whose execution by a thread generated the region. binding thread set The set of threads that are affected by,or provide the context for,the execution of 20 a region. 弘 The binding thread set for a given region can be all threads on a device,all threads in a contention group,the current team,or the encountering thread. 24 COMMENT:The binding thread set for a particular region is described in its corresponding subsection of this specification 始 binding task set The set of tasks that are affected by,or provide the context for,the execution of a region. 绍 The binding task set for a given region can be all tasks,the current team tasks,or the generating task. 8 COMMENT:The binding task set for a particular region(if applicable)is described in its corresponding subsection of this specification 6 OpenMP API.Version 4.0-July 2013
6 OpenMP API • Version 4.0 - July 2013 initial thread A thread that executes an implicit parallel region. nested construct A construct (lexically) enclosed by another construct. closely nested construct A construct nested inside another construct with no other construct nested between them. nested region A region (dynamically) enclosed by another region. That is, a region encountered during the execution of another region. COMMENT: Some nestings are conforming and some are not. See Section 2.16 on page 186 for the restrictions on nesting. closely nested region A region nested inside another region with no parallel region nested between them. all threads All OpenMP threads participating in the OpenMP program. current team All threads in the team executing the innermost enclosing parallel region. encountering thread For a given region, the thread that encounters the corresponding construct. all tasks All tasks participating in the OpenMP program. current team tasks All tasks encountered by the corresponding team. Note that the implicit tasks constituting the parallel region and any descendent tasks encountered during the execution of these implicit tasks are included in this set of tasks. generating task For a given region, the task whose execution by a thread generated the region. 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 all threads on a device, all threads in a contention group, the current team, or the encountering thread. COMMENT: The binding thread set for a particular region is described in its corresponding subsection of this specification. binding task set The set of tasks that are affected by, or provide the context for, the execution of a region. The binding task set for a given region can be all tasks, the current team tasks, or the generating task. COMMENT: The binding task set for a particular region (if applicable) is described in its corresponding subsection of this specification. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2 binding region The enclosing region that determines the execution context and limits the scope of the effects of the bound region is called the binding region. 345 Binding region is not defied for rgions whose binding thead set is al threads or the encountering thread,nor is it defined for regions whose binding task set is all tasks. COMMENTS: The binding region for an ordered region is the innermost enclosing loop region. 9 The binding region for a taskwait region is the innermost enclosing lask region. 11213 region is the innermost enclosing parallel region. For regions for which the binding task set is the generating task,the binding region is the region of the generating task 1 A parallel region need not be active nor explicit to be a binding 17 region A task region need not be explicit to be a binding region. 28 A region never binds to any region outside of the innermost enclosing parallel region. 22 orphaned construct teeithin anther com giving s to the s rise to a region whose binding thread set is the current 23 worksharing construct A construct that defines units of work,each of which is executed exactly once by one of the threads in the team executing the construct. 25 For C/C++,worksharing construcis are for,sections,and single 26 For Fortran,worksharing constructs are do,sections,single and 2 workshare. 28 sequential loop A loop that is not associated with any OpenMP loop directive. 9 rocessors that is treated by the execution environment as a 30 3是 place list The ordered list that describes all OpenMP places available to the execution environment. Chapter 1 Introduction 7
Chapter 1 Introduction 7 binding region The enclosing region that determines the execution context and limits the scope of the effects of the bound region is called the binding region. Binding region is not defined for regions whose binding thread set is all threads or the encountering thread, nor is it defined for regions whose binding task set is all tasks. COMMENTS: The binding region for an ordered region is the innermost enclosing loop region. The binding region for a taskwait region is the innermost enclosing task region. For all other regions for which the binding thread set is the current team or the binding task set is the current team tasks, the binding region is the innermost enclosing parallel region. For regions for which the binding task set is the generating task, the binding region is the region of the generating task. A parallel region need not be active nor explicit to be a binding region. A task region need not be explicit to be a binding region. A region never binds to any region outside of the innermost enclosing parallel region. orphaned construct A construct that gives rise to a region whose binding thread set is the current team, but is not nested within another construct giving rise to the binding region. worksharing construct A construct that defines units of work, each of which is executed exactly once by one of the threads in the team executing the construct. For C/C++, worksharing constructs are for, sections, and single. For Fortran, worksharing constructs are do, sections, single and workshare. sequential loop A loop that is not associated with any OpenMP loop directive. place Unordered set of processors that is treated by the execution environment as a location unit when dealing with OpenMP thread affinity. place list The ordered list that describes all OpenMP places available to the execution environment. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
place partition An ordered list that corresponds to a contiguous interval in the OpenMP place list. 23 It de ent for a given SIMD instruction A single machine instruction that can can operate on multiple data elements. 56 SIMD lane dare mechanism capable of processing one data clement froma SIMD chunk A set of iterations executed concurrently,each by a S/MD lane,by a single thread by means of SIMD instructions. 9 SIMD loop A loop that includes at least one SIMD chunk. 101.2.3 Synchronization Terminology 111213 barrier cam may execute until beyond ds in the team have reached the barrier and all explicit tasks generated by the team have executed to completion.If cancellation has been requested,threads may proceed to the end of the canceled region even if some threads in the team have not reached the barrier. cancellation and caus es executing 8 cancellation point A point at which implicit and explicit tasks check if cancellation has been requested.If cancellation has been observed,they perform the cancellation. 20 COMMENT:For a list of cancellation points,see Section 2.13.1 on page 140 21 1.2.4 Tasking Terminology task 2 24 task region A region consisting of all code encountered during the execution of a task. 25 COMMENT:A parallel region consists of one or more implicit task regions 26 explicit task A task generated when a task construct is encountered during execution. 2728 implicit task A task generated by an implicit parallel region or generated when a paralle construcr is encountered during execution. 29 initial task An implicit task associated with an implicit parallel region. current task For a given thread,the task corresponding to the task region in which it is executing. 8 OpenMP API.Version 4.0-July 2013
8 OpenMP API • Version 4.0 - July 2013 place partition An ordered list that corresponds to a contiguous interval in the OpenMP place list. It describes the places currently available to the execution environment for a given parallel region. SIMD instruction A single machine instruction that can can operate on multiple data elements. SIMD lane A software or hardware mechanism capable of processing one data element from a SIMD instruction. SIMD chunk A set of iterations executed concurrently, each by a SIMD lane, by a single thread by means of SIMD instructions. SIMD loop A loop that includes at least one SIMD chunk. 1.2.3 Synchronization Terminology barrier A point in the execution of a program encountered by a team of threads, beyond which no thread in the team may execute until all threads in the team have reached the barrier and all explicit tasks generated by the team have executed to completion. If cancellation has been requested, threads may proceed to the end of the canceled region even if some threads in the team have not reached the barrier. cancellation An action that cancels (that is, aborts) an OpenMP region and causes executing implicit or explicit tasks to proceed to the end of the canceled region. cancellation point A point at which implicit and explicit tasks check if cancellation has been requested. If cancellation has been observed, they perform the cancellation. COMMENT: For a list of cancellation points, see Section 2.13.1 on page 140. 1.2.4 Tasking Terminology task A specific instance of executable code and its data environment, generated when a thread encounters a task construct or a parallel construct. task region A region consisting of all code encountered during the execution of a task. COMMENT: A parallel region consists of one or more implicit task regions. explicit task A task generated when a task construct is encountered during execution. implicit task A task generated by an implicit parallel region or generated when a parallel construct is encountered during execution. initial task An implicit task associated with an implicit parallel region. current task For a given thread, the task corresponding to the task region in which it is executing. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31