正在加载图片...
Implementations are allowed to relax the ordering imposed by implicit flush operations when the result is only visible to programs using non-sequentially consistent atomic directives. 41.5 OpenMP Compliance An implementation of the OpenMP API is compliant if and only if it compiles and 67 executes all conforming programs according to the syntax and semantics laid out in Chapters 1,2.3 and 4.A endices A.B.C.D.E and F and sections designated as Notes 89 specification. 10 The OpenMP API defines constructs that operate in the context of the base language that 11 1213 required to support it,with the exception that for Fortran,the implementation must 14 allow case insensitivity for directive and API routines names,and must allow identifiers 15 of more than six characters. 167 All library,intrinsic and built-in tines provided by the base languag inmmmetation.Inadd.the me 1 language must also be thread-safe.For example,ALLOCATE and DEALLOCATE 19 statements must be thread-safe in Fortran.Unsynchronized concurrent use of such 20 routines by different threads must produce correct results(although not necessarily the 2 same as serial execution results,as in the case of random number generation routines) 22 Starting with Fortran 90,variables with explicit initialization have the SAVE attribute 23 implicitly.This is not the case in Fortran 77.However,a compliant OpenMP Fortran implementation must give such a variable the sAvE attribute,regardless of the 25 underlying base language version. 2 Appendix D lists certain aspects of the OpenMP API that are implementation defined.A compliant implementation is required to define and document its behavior for each of 28 the items in Appendix D. Chapter 1 Introduction 21Chapter 1 Introduction 21 Implementations are allowed to relax the ordering imposed by implicit flush operations when the result is only visible to programs using non-sequentially consistent atomic directives. 1.5 OpenMP Compliance An implementation of the OpenMP API is compliant if and only if it compiles and executes all conforming programs according to the syntax and semantics laid out in Chapters 1, 2, 3 and 4. Appendices A, B, C, D, E and F and sections designated as Notes (see Section 1.7 on page 23) are for information purposes only and are not part of the specification. The OpenMP API defines constructs that operate in the context of the base language that is supported by an implementation. If the base language does not support a language construct that appears in this document, a compliant OpenMP implementation is not required to support it, with the exception that for Fortran, the implementation must allow case insensitivity for directive and API routines names, and must allow identifiers of more than six characters. All library, intrinsic and built-in routines provided by the base language must be thread￾safe in a compliant implementation. In addition, the implementation of the base language must also be thread-safe. For example, ALLOCATE and DEALLOCATE statements must be thread-safe in Fortran. Unsynchronized concurrent use of such routines by different threads must produce correct results (although not necessarily the same as serial execution results, as in the case of random number generation routines). Starting with Fortran 90, variables with explicit initialization have the SAVE attribute implicitly. This is not the case in Fortran 77. However, a compliant OpenMP Fortran implementation must give such a variable the SAVE attribute, regardless of the underlying base language version. Appendix D lists certain aspects of the OpenMP API that are implementation defined. A compliant implementation is required to define and document its behavior for each of the items in Appendix D. 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
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有