using the OpenMP API to produce a conforming program.The OpenMP API does not cover compiler-generated automatic parallelization. 31.2 Glossary 41.2.1 Threading Concepts thread An execution entity with a stack and associated static memory,called threadprivate 6 memory. 7 OpenMP thread A thread that is managed by the OpenMP implementation thread number A number that the OpenMP implementation assigns to an OpenMP thread.For threads within the same team,zero identifies the master thread and consecutive 10 numbers identify the other threads of this team. 11 idle thread An OpenMP thread that is not currently part of any parallel region thread-safe routine A routine that performs the intended function even when executed concurrently (by more than one thread). processor Implementation-defined hardware unit on which one or more OpenMP threads can 15 execute. 16 device An implementation-defined logical execution engine 17 COMMENT:A device could have one or more processors 18 host device The device on which the OpenMP program begins execution. 9 target device A device onto which code and data may be offloaded from the host device. 21 parent device For a given target region,the device on which the corresponding target construct was encountered 221.2.2 OpenMP Language Terminology 23 base language A programming language that serves as the foundation of the OpenMP specification. 的 COMMENT:See Section 1.7 on page 31 for a listing of current base languages for the OpenMP API. OpenMP API-Version 5.0 November 2018
1 using the OpenMP API to produce a conforming program. The OpenMP API does not cover 2 compiler-generated automatic parallelization. 3 1.2 Glossary 4 1.2.1 Threading Concepts 5 thread An execution entity with a stack and associated static memory, called threadprivate 6 memory. 7 OpenMP thread A thread that is managed by the OpenMP implementation. 8 thread number A number that the OpenMP implementation assigns to an OpenMP thread. For 9 threads within the same team, zero identifies the master thread and consecutive 10 numbers identify the other threads of this team. 11 idle thread An OpenMP thread that is not currently part of any parallel region. 12 thread-safe routine A routine that performs the intended function even when executed concurrently (by 13 more than one thread). 14 processor Implementation-defined hardware unit on which one or more OpenMP threads can 15 execute. 16 device An implementation-defined logical execution engine. 17 COMMENT: A device could have one or more processors. 18 host device The device on which the OpenMP program begins execution. 19 target device A device onto which code and data may be offloaded from the host device. 20 parent device For a given target region, the device on which the corresponding target 21 construct was encountered. 22 1.2.2 OpenMP Language Terminology 23 base language A programming language that serves as the foundation of the OpenMP specification. 24 COMMENT: See Section 1.7 on page 31 for a listing of current base 25 languages for the OpenMP API. 2 OpenMP API – Version 5.0 November 2018
base program A program written in a base language 23 program order COMMENT:For C11 and C++11,program order corresponds to the sequenced before relation between operations performed by the same 6 thread. structured block For C/C++.an executable statement,possibly compound,with a single entry at the 8 top and a single exit at the bottom,or an OpenMP construct. For Fortran,a block of executable statements with a single entry at the top and a 10 single exit at the bottom,or an OpenMP construct. 11 COMMENT:See Section 2.1 on page 38 for restrictions on structured 12 blocks. 13 compilation unit For C/C++,a translation unit. 14 For Fortran,a program unit. 15 enclosing context For C/C++.the innermost scope enclosing an OpenMP directive. 16 For Fortran,the innermost scoping unit enclosing an OpenMP directive directive For C/C++.a #pragma,and for Fortran,a comment,that specifies OpenMF program behavior. 19 COMMENT:See Section 2.1 on page 38 for a description of OpenMP 20 directive syntax. 21 metadirective A directive that conditionally resolves to another directive at compile time 22 white space A non-empty sequence of space and/or horizontal tab characters. 23 OpenMP program A program that consists of a base program that is annotated with OpenMP directives 24 or that calls OpenMP API runtime library routines conforming program An OpenMP program that follows all rules and restrictions of the OpenMP 2 specification 27 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 29 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 32 stand-alone directive An OpenMP executable directive that has no associated user code except for that 33 which appears in clauses in the directive. CHAPTER 1.INTRODUCTION 3
1 base program A program written in a base language. 2 program order An ordering of operations performed by the same thread as determined by the 3 execution sequence of operations specified by the base language. 4 COMMENT: For C11 and C++11, program order corresponds to the 5 sequenced before relation between operations performed by the same 6 thread. 7 structured block For C/C++, an executable statement, possibly compound, with a single entry at the 8 top and a single exit at the bottom, or an OpenMP construct. 9 For Fortran, a block of executable statements with a single entry at the top and a 10 single exit at the bottom, or an OpenMP construct. 11 COMMENT: See Section 2.1 on page 38 for restrictions on structured 12 blocks. 13 compilation unit For C/C++, a translation unit. 14 For Fortran, a program unit. 15 enclosing context For C/C++, the innermost scope enclosing an OpenMP directive. 16 For Fortran, the innermost scoping unit enclosing an OpenMP directive. 17 directive For C/C++, a #pragma, and for Fortran, a comment, that specifies OpenMP 18 program behavior. 19 COMMENT: See Section 2.1 on page 38 for a description of OpenMP 20 directive syntax. 21 metadirective A directive that conditionally resolves to another directive at compile time. 22 white space A non-empty sequence of space and/or horizontal tab characters. 23 OpenMP program A program that consists of a base program that is annotated with OpenMP directives 24 or that calls OpenMP API runtime library routines 25 conforming program An OpenMP program that follows all rules and restrictions of the OpenMP 26 specification. 27 declarative directive An OpenMP directive that may only be placed in a declarative context. A declarative 28 directive results in one or more declarations only; it is not associated with the 29 immediate execution of any user code. 30 executable directive An OpenMP directive that is not declarative. That is, it may be placed in an 31 executable context. 32 stand-alone directive An OpenMP executable directive that has no associated user code except for that 33 which appears in clauses in the directive. CHAPTER 1. INTRODUCTION 3
1 construct An OpenMP executable directive (and for Fortran,the paired end directive,if any) 2 and the associated statement,loop or structured block,if any,not including the code in any called routines.That is,the lexical extent of an executable directive. combined construct 5 Ag specifying the first construct containing one instance of the second construct and no other statements. composite construct A construct that is composed of two constructs but does not have identical semantics onstructs immediately nested inside the other.A co 19 construct eradtsemanticsnotincludcdintheconst cts from which it is composed or the nesting of the one construct inside the other is not conforming. combined target A combined construct that is composed of a target construct along with another 3 construct construct. 1415 region All code en construct includes any code in called routines as 1 of a task at the point where a task generating construct is encountered is a part of the 18 region of the encountering thread.However,an explicit task region corresponding to 19 a task generating construct is not part of the region of the encountering thread unless it is an incded ask region.The point is 2 encountered is a part of the region of the encountering thread,but the region corresponding to the target or teams directive is not. 23 COMMENTS: A region may also be thought of as the dynamic or runtime extent of a 25 construct or of an OpenMP library routine. 9 During the execution of an OpenMP program,a construct may give rise to many regtons. active parallel region A parallel region that is executed by a team consisting of more than one thread. 29 inactive parallel region A parallel region that is executed by a team of only one thread. active target region A target region that is executed on a device other than the device that encountered 31 the target construct. 32 inactive target region A target region that is executed on the same device that encountered the target construct. 4 OpenMP API-Version 5.0 November 2018
1 construct An OpenMP executable directive (and for Fortran, the paired end directive, if any) 2 and the associated statement, loop or structured block, if any, not including the code 3 in any called routines. That is, the lexical extent of an executable directive. 4 combined construct A construct that is a shortcut for specifying one construct immediately nested inside 5 another construct. A combined construct is semantically identical to that of explicitly 6 specifying the first construct containing one instance of the second construct and no 7 other statements. 8 composite construct A construct that is composed of two constructs but does not have identical semantics 9 to specifying one of the constructs immediately nested inside the other. A composite 10 construct either adds semantics not included in the constructs from which it is 11 composed or the nesting of the one construct inside the other is not conforming. combined target construct 12 A combined construct that is composed of a target construct along with another 13 construct. 14 region All code encountered during a specific instance of the execution of a given construct 15 or of an OpenMP library routine. A region includes any code in called routines as 16 well as any implicit code introduced by the OpenMP implementation. The generation 17 of a task at the point where a task generating construct is encountered is a part of the 18 region of the encountering thread. However, an explicit task region corresponding to 19 a task generating construct is not part of the region of the encountering thread unless 20 it is an included task region. The point where a target or teams directive is 21 encountered is a part of the region of the encountering thread, but the region 22 corresponding to the target or teams directive is not. 23 COMMENTS: 24 A region may also be thought of as the dynamic or runtime extent of a 25 construct or of an OpenMP library routine. 26 During the execution of an OpenMP program, a construct may give rise to 27 many regions. 28 active parallel region A parallel region that is executed by a team consisting of more than one thread. 29 inactive parallel region A parallel region that is executed by a team of only one thread. 30 active target region A target region that is executed on a device other than the device that encountered 31 the target construct. 32 inactive target region A target region that is executed on the same device that encountered the target 33 construct. 4 OpenMP API – Version 5.0 November 2018
sequential part All code encountered during the execution of an initial task region that is not part of onding to a parallel construct or a task region COMMENTS: 夕 A sequential part is enclosed by an implicit parallel region. 678 Executable statements in called routines may be in bothasenpar and any umber of explicit points in the program execution. master thread An OpenMP thread that has thread number 0.A master thread may be an initial 10 thread or the thread that encounters a parallel construct,creates a team, generates a set of implicit tasks,and then executes one of those tasks as thread 12 number 0. 1314 parent thread The thread that encountered the and generated aparalle region is the parent thread of each of the threads in the team of that parallel 15 region.The master thread of a parallel region is the same thread as its parent 16 thread with respect to any resources associated with an OpenMP thread. chd thread When a thread encounters a parallel construct,each of the threads in the 18190 e child th ads of the encountered the target or teams construct. ancestor thread For a given thread,its parent thread or one of its parent thread's ancestor threads. 2 descendent thread For a given thread,one of its child threads or one of its child threads'descendent 2 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 27 least one additional thread. 28 For an inactive parallel region,the team comprises only the master thread. 29 league The set of teams created by a teams construct. 30 contention group An initial thread and its descendent threads. 31 23 Implicit parallel regions surround the whole OpenMP program.regions. and all teams regions. 34 initial thread The thread that executes an implicit parallel region. CHAPTER 1.INTRODUCTION 5
1 sequential part All code encountered during the execution of an initial task region that is not part of 2 a parallel region corresponding to a parallel construct or a task region 3 corresponding to a task construct. 4 COMMENTS: 5 A sequential part is enclosed by an implicit parallel region. 6 Executable statements in called routines may be in both a sequential part 7 and any number of explicit parallel regions at different points in the 8 program execution. 9 master thread An OpenMP thread that has thread number 0. A master thread may be an initial 10 thread or the thread that encounters a parallel construct, creates a team, 11 generates a set of implicit tasks, and then executes one of those tasks as thread 12 number 0. 13 parent thread The thread that encountered the parallel construct and generated a parallel 14 region is the parent thread of each of the threads in the team of that parallel 15 region. The master thread of a parallel region is the same thread as its parent 16 thread with respect to any resources associated with an OpenMP thread. 17 child thread When a thread encounters a parallel construct, each of the threads in the 18 generated parallel region’s team are child threads of the encountering thread. 19 The target or teams region’s initial thread is not a child thread of the thread that 20 encountered the target or teams construct. 21 ancestor thread For a given thread, its parent thread or one of its parent thread’s ancestor threads. 22 descendent thread For a given thread, one of its child threads or one of its child threads’ descendent 23 threads. 24 team A set of one or more threads participating in the execution of a parallel region. 25 COMMENTS: 26 For an active parallel region, the team comprises the master thread and at 27 least one additional thread. 28 For an inactive parallel region, the team comprises only the master thread. 29 league The set of teams created by a teams construct. 30 contention group An initial thread and its descendent threads. 31 implicit parallel region An inactive parallel region that is not generated from a parallel construct. 32 Implicit parallel regions surround the whole OpenMP program, all target regions, 33 and all teams regions. 34 initial thread The thread that executes an implicit parallel region. CHAPTER 1. INTRODUCTION 5
1 initial team The team that comprises an initial thread executing an implicit parallel region. 2 nested construct A construct (lexically)enclosed by another construct. 3 closely nested construct A construct nested inside another construct with no other construct nested between 4 them nested region A region (dynamically)enclosed by another region.That is,a region generated from 6 the execution of another region or one of its nested regions. COMMENT:Some nestings are conforming and some are not.See 8 Section 2.20 on page 328 for the restrictions on nesting. closely nested region A region nested inside another region with no parallel region nested between them. 11 strictly nested region A region nested inside another region with no other region nested between them. all threads All OpenMP threads participating in the OpenMP program. 13 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. 16718 current team tasks All tasks encountered by the corresponding team.The implicit tasks constituting the parallel regi ent tasks hesenuded in this set ofring the xcuion of generating task For a given region,the task for which 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 2 region. 2234 The binding setfo current team,or the encountering thread. COMMENT:The binding thread set for a particular region is described in 26 its corresponding subsection of this specification. 2728 binding task set The set of tasks that are affected by.or provide the context for,the execution of a region 29 The binding task set for a given region can be all tasks,the current team tasks,all 3 tasks of the current team that are generated in the region,the binding implicit task,or 31 the generating task. 6 COMMENT:The binding task set for a particular region (if applicable)is described in its corresponding subsection of this specification. 6 OpenMP API-Version 5.0 November 2018
1 initial team The team that comprises an initial thread executing an implicit parallel region. 2 nested construct A construct (lexically) enclosed by another construct. 3 closely nested construct A construct nested inside another construct with no other construct nested between 4 them. 5 nested region A region (dynamically) enclosed by another region. That is, a region generated from 6 the execution of another region or one of its nested regions. 7 COMMENT: Some nestings are conforming and some are not. See 8 Section 2.20 on page 328 for the restrictions on nesting. 9 closely nested region A region nested inside another region with no parallel region nested between 10 them. 11 strictly nested region A region nested inside another region with no other region nested between them. 12 all threads All OpenMP threads participating in the OpenMP program. 13 current team All threads in the team executing the innermost enclosing parallel region. 14 encountering thread For a given region, the thread that encounters the corresponding construct. 15 all tasks All tasks participating in the OpenMP program. 16 current team tasks All tasks encountered by the corresponding team. The implicit tasks constituting the 17 parallel region and any descendent tasks encountered during the execution of 18 these implicit tasks are included in this set of tasks. 19 generating task For a given region, the task for which execution by a thread generated the region. 20 binding thread set The set of threads that are affected by, or provide the context for, the execution of a 21 region. 22 The binding thread set for a given region can be all threads on a device, all threads 23 in a contention group, all master threads executing an enclosing teams region, the 24 current team, or the encountering thread. 25 COMMENT: The binding thread set for a particular region is described in 26 its corresponding subsection of this specification. 27 binding task set The set of tasks that are affected by, or provide the context for, the execution of a 28 region. 29 The binding task set for a given region can be all tasks, the current team tasks, all 30 tasks of the current team that are generated in the region, the binding implicit task, or 31 the generating task. 32 COMMENT: The binding task set for a particular region (if applicable) is 33 described in its corresponding subsection of this specification. 6 OpenMP API – Version 5.0 November 2018