2 child task A task is a child task of its generating task region.A child task region is not part of its generating task region. 3 sibling tasks Tasks that are child tasks of the same task region descendent task A task that is the child task of a task region or of one of its descendent task regions. task completion Task completion occurs when the end of the structured block associated with the construct that generated the task is reached. COMMENT:Completion of the initial task occurs at program exit. task scheduling point A point during the execution of the current task region at which it can be 10 suspended to be resumed later,or the point of task completion,after which the 11 executing thread may switch to a different task region. 12 COMMENT:For a list of task scheduling points,see Section 2.11.3 on page 118 13 task switching The act of a thread switching from the execution of one task to another task. 格 tied task A task that,when its task region is suspended,can be resumed only by the same thread that suspended it.That is,the task is tied to that thread 1 untied task A task that,when its task region is suspended,can be resumed by any thread in 17 the team.That is,the task is not tied to any thread. undeferred task A task for which execution is not deferred with respect to its generating task 19 region.That is,its generating task region is suspended until execution of the 20 undeferred task is completed. 23 included task A task for which encountering thread. 站 merged task A task whose data emvironment,inclusive of ICVs,is the same as that of its generating task region 26 final task A task that forces all of its child tasks to become final and included tasks. 789 task dependence An orde ring relati on bet een two sibling tasks 39 dependent task A task that because of a task dependence cannot be executed until its predecessor tasks have completed. 32 predecessor task A task that must complete before its dependent tasks can be executed. task synchronization 33 construct A taskwait,taskgroup,or a barrier construc Chapter 1 Introduction 9
Chapter 1 Introduction 9 child task A task is a child task of its generating task region. A child task region is not part of its generating task region. sibling tasks Tasks that are child tasks of the same task region. descendent task A task that is the child task of a task region or of one of its descendent task regions. task completion Task completion occurs when the end of the structured block associated with the construct that generated the task is reached. COMMENT: Completion of the initial task occurs at program exit. task scheduling point A point during the execution of the current task region at which it can be suspended to be resumed later; or the point of task completion, after which the executing thread may switch to a different task region. COMMENT: For a list of task scheduling points, see Section 2.11.3 on page 118. task switching The act of a thread switching from the execution of one task to another task. tied task A task that, when its task region is suspended, can be resumed only by the same thread that suspended it. That is, the task is tied to that thread. untied task A task that, when its task region is suspended, can be resumed by any thread in the team. That is, the task is not tied to any thread. undeferred task A task for which execution is not deferred with respect to its generating task region. That is, its generating task region is suspended until execution of the undeferred task is completed. included task A task for which execution is sequentially included in the generating task region. That is, an included task is undeferred and executed immediately by the encountering thread. merged task A task whose data environment, inclusive of ICVs, is the same as that of its generating task region. final task A task that forces all of its child tasks to become final and included tasks. task dependence An ordering relation between two sibling tasks: the dependent task and a previously generated predecessor task. The task dependence is fulfilled when the predecessor task has completed. dependent task A task that because of a task dependence cannot be executed until its predecessor tasks have completed. predecessor task A task that must complete before its dependent tasks can be executed. task synchronization construct A taskwait, taskgroup, or a barrier construct. 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
11.2.5 Data Terminology 23 variable A named data storage block,whose value can be defined and redefined during the execution of a program. A 4 Note-An array or structure element is a variable that is part of another variable. 5 array section A designated subset of the elements of an array 6 array item An array,an array section or an array element. private variable With r et to a given set of sk lanes that bind to thes 89 e熟o黑金aa A variable that is part of another variable(as an array or structure element)cannot 11 be made private independently of other components. 12 shared variable With respect to a given set of task regions that bind to the same parallel region,a variable whose name provides access to the same block of storage for each task region. 15 that is part of another variable (a 167 ay企h6 cepr a的 be threadprivate variable A variable that is replicated,one instance per thread,by the OpenMP 28 implementation.Its name then provides access to a different block of storage for each thread. A variable that is part of another variable(as an array or structure element)cannot be made threadprivate independently of the other components,except for static 23 data members of C++classes. 24 threadprivate memory The set of threadprivate variables associated with each thread. 25 data environment The variables associated with the execution of a given region. device data 26 environment A data emvironment defined by a target data or target construct 27 10 OpenMP API.Version 4.0-July 2013
10 OpenMP API • Version 4.0 - July 2013 1.2.5 Data Terminology variable A named data storage block, whose value can be defined and redefined during the execution of a program. Note – An array or structure element is a variable that is part of another variable. array section A designated subset of the elements of an array. array item An array, an array section or an array element. private variable With respect to a given set of task regions or SIMD lanes that bind to the same parallel region, a variable whose name provides access to a different block of storage for each task region or SIMD lane. A variable that is part of another variable (as an array or structure element) cannot be made private independently of other components. shared variable With respect to a given set of task regions that bind to the same parallel region, a variable whose name provides access to the same block of storage for each task region. A variable that is part of another variable (as an array or structure element) cannot be shared independently of the other components, except for static data members of C++ classes. threadprivate variable A variable that is replicated, one instance per thread, by the OpenMP implementation. Its name then provides access to a different block of storage for each thread. A variable that is part of another variable (as an array or structure element) cannot be made threadprivate independently of the other components, except for static data members of C++ classes. threadprivate memory The set of threadprivate variables associated with each thread. data environment The variables associated with the execution of a given region. device data environment A data environment defined by a target data or target construct. 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
2 mapped variable An original variable in a data environment with a corresponding variable in a device data environment. 34 COMMENT:The original and corresponding variables may share storage. 567 mappable type Atype that is valid.Ifa type is from other types not mappable 89 COMMENT:Pointer types are mappable but the memory block to which the pointer refers is not mapped. For C: 11 The type must be a complete type For C++ The type must be a complete type 14 In addition,for class types: All member functions accessed in any target region must appear in a declare target directive. 17 All data members must be non-static 8 A mappable type cannot contain virtual members 20 For Fortran The type must be definable 名 defined For variables,the property of having a valid value. 2324 For the contents of variables,the property of having a valid value 25 For C++ 2 For the contents of variables of POD (plain old data)type,the property of having a valid value 2 For variables of non-POD class type,the property of having been constructed but not subsequently destructed. 303 For Fortran For the contents of variables,the property of having a valid value.For the 32 allocation or association status of variables,the property of having a valid status. COMMENT:Programs that rely upon variables that are not defined are 34 non-conforming program 35 class type For C++:Variables declared with one of the class,struct,or union keywords. Chapter 1 Introduction 11
Chapter 1 Introduction 11 mapped variable An original variable in a data environment with a corresponding variable in a device data environment. COMMENT: The original and corresponding variables may share storage. mappable type A type that is valid for a mapped variable. If a type is composed from other types (such as the type of an array or structure element) and any of the other types are not mappable then the type is not mappable. COMMENT: Pointer types are mappable but the memory block to which the pointer refers is not mapped. For C: The type must be a complete type. For C++: The type must be a complete type. In addition, for class types: • All member functions accessed in any target region must appear in a declare target directive. • All data members must be non-static. • A mappable type cannot contain virtual members. For Fortran: The type must be definable. defined For variables, the property of having a valid value. For C: For the contents of variables, the property of having a valid value. For C++: For the contents of variables of POD (plain old data) type, the property of having a valid value. For variables of non-POD class type, the property of having been constructed but not subsequently destructed. For Fortran: For the contents of variables, the property of having a valid value. For the allocation or association status of variables, the property of having a valid status. COMMENT: Programs that rely upon variables that are not defined are non-conforming programs. class type For C++: Variables declared with one of the class, struct, or union keywords. 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 35
sequentially consistent atomic construct An atomic construct for which the seg cst clause is specified. non-sequentially consistent atomic construct An atomic construct for which the seg cst clause is not specified. 31.2.6 Implementation Terminology supporting n levels of g parallelism Implies allowing an active parallel region to be enclosed by n-1 active parallel regions. supporting the OpenMP 6 API Supporting at least one level of parallelism. > Supporting more than one level of parallelism. internal control 89 variable A conceptual variable that specifies runtime behavior of a set of threads or tasks in an OpenMP program. 19 COMMENT:The acronym ICV is used interchangeably with the term internal control variable in the remainder of this specification. comnliant 格 implementation An implementation of the Op enMP sr ecification that compiles and executes any conforming program as defined by the specification 16 COMMENT:A compliant implementation may exhibit unspecified behavior when compiling or executing a non-conforming program. unspecified behavior A behavior or result that is not specified by the OpenMP specification or not known prior to the compilation or execution of an OpenMP program. Such unspecified behavior may result from: 19 Issues documented by the OpenMP specification as having unspecified 2 behavior. 21 A non-conforming program. 22 .A conforming program exhibiting an implementation defined behavior. 12 OpenMP API.Version 4.0-July 2013
12 OpenMP API • Version 4.0 - July 2013 sequentially consistent atomic construct An atomic construct for which the seq_cst clause is specified. non-sequentially consistent atomic construct An atomic construct for which the seq_cst clause is not specified. 1.2.6 Implementation Terminology supporting n levels of parallelism Implies allowing an active parallel region to be enclosed by n-1 active parallel regions. supporting the OpenMP API Supporting at least one level of parallelism. supporting nested parallelism Supporting more than one level of parallelism. internal control variable A conceptual variable that specifies runtime behavior of a set of threads or tasks in an OpenMP program. COMMENT: The acronym ICV is used interchangeably with the term internal control variable in the remainder of this specification. compliant implementation An implementation of the OpenMP specification that compiles and executes any conforming program as defined by the specification. COMMENT: A compliant implementation may exhibit unspecified behavior when compiling or executing a non-conforming program. unspecified behavior A behavior or result that is not specified by the OpenMP specification or not known prior to the compilation or execution of an OpenMP program. Such unspecified behavior may result from: • Issues documented by the OpenMP specification as having unspecified behavior. • A non-conforming program. • A conforming program exhibiting an implementation defined behavior. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
implementation 12 defined Behavior that must be documented by the implementation,and is allowed to vary among different compliant implementations.An implementation is allowed to define this behavior as unspecified. 45 COMMENT:All features that have implementation defined behavior are documented in Appendix D. Chapter 1 Introduction 13
Chapter 1 Introduction 13 implementation defined Behavior that must be documented by the implementation, and is allowed to vary among different compliant implementations. An implementation is allowed to define this behavior as unspecified. COMMENT: All features that have implementation defined behavior are documented in Appendix D. 1 2 3 4 5