logo

OpenMP Application Programming Interface Examples

  • Welcome to OMP Jupyter Book
  • Cover
  • Foreword
  • 1. Introduction
    • 1.1. Examples Organization
  • 2. OpenMP Directive Syntax
    • 2.1. C/C++ Pragmas
    • 2.2. C++ Attributes
    • 2.3. Fortran Comments (Fixed Source Form)
    • 2.4. Fortran Comments (Free Source Form)
  • 3. Parallel Execution
    • 3.1. A Simple Parallel Loop
    • 3.2. parallel Construct
    • 3.3. teams Construct on Host
    • 3.4. Controlling the Number of Threads on Multiple Nesting Levels
    • 3.5. Interaction Between the num_threads Clause and omp_set_dynamic
    • 3.6. Fortran Restrictions on the do Construct
    • 3.7. nowait Clause
    • 3.8. collapse Clause
    • 3.9. linear Clause in Loop Constructs
    • 3.10. parallel sections Construct
    • 3.11. firstprivate Clause and sections Construct
    • 3.12. single Construct
    • 3.13. workshare Construct
    • 3.14. masked Construct
    • 3.15. loop Construct
    • 3.16. Parallel Random Access Iterator Loop
    • 3.17. omp_set_dynamic and omp_set_num_threads Routines
    • 3.18. omp_get_num_threads Routine
  • 4. OpenMP Affinity
    • 4.1. proc_bind Clause
    • 4.2. Task Affinity
    • 4.3. Affinity Display
    • 4.4. Affinity Query Functions
  • 5. Tasking
    • 5.1. task and taskwait Constructs
    • 5.2. Task Priority
    • 5.3. Task Dependences
    • 5.4. Task Detachment
    • 5.5. taskgroup Construct
    • 5.6. taskyield Construct
    • 5.7. taskloop Construct
    • 5.8. Combined parallel masked and taskloop Constructs
  • 6. Devices
    • 6.1. target Construct
    • 6.2. defaultmap Clause
    • 6.3. Pointer Mapping
    • 6.4. Structure Mapping
    • 6.5. Fortran Allocatable Array Mapping
    • 6.6. Array Sections in Device Constructs
    • 6.7. C++ Virtual Functions
    • 6.8. Array Shaping
    • 6.9. declare mapper Directive
    • 6.10. target data Construct
    • 6.11. target enter data and target exit data Constructs
    • 6.12. target update Construct
    • 6.13. Declare Target Directive
    • 6.14. Lambda Expressions
    • 6.15. teams Construct and Related Combined Constructs
    • 6.16. Asynchronous target Execution and Dependences
    • 6.17. Device Routines
  • 7. SIMD
    • 7.1. simd and declare simd Directives
    • 7.2. inbranch and notinbranch Clauses
    • 7.3. Loop-Carried Lexical Forward Dependence
    • 7.4. ref , val , uval Modifiers for linear Clause
  • 8. Loop Transformations
    • 8.1. tile Construct
    • 8.2. unroll Construct
    • 8.3. Incomplete Tiles
  • 9. Synchronization
    • 9.1. critical Construct
    • 9.2. Worksharing Constructs Inside a critical Construct
    • 9.3. Binding of barrier Regions
    • 9.4. atomic Construct
    • 9.5. Restrictions on the atomic Construct
    • 9.6. flush Construct without a List
    • 9.7. Synchronization Based on Acquire/Release Semantics
    • 9.8. ordered Clause and ordered Construct
    • 9.9. depobj Construct
    • 9.10. Doacross Loop Nest
    • 9.11. Lock Routines
  • 10. Data Environment
    • 10.1. threadprivate Directive
    • 10.2. default(none) Clause
    • 10.3. private Clause
    • 10.4. Fortran Private Loop Iteration Variables
    • 10.5. Fortran Restrictions on shared and private Clauses with Common Blocks
    • 10.6. Fortran Restrictions on Storage Association with the private Clause
    • 10.7. C/C++ Arrays in a firstprivate Clause
    • 10.8. lastprivate Clause
    • 10.9. Reduction
    • 10.10. scan Directive
    • 10.11. copyin Clause
    • 10.12. copyprivate Clause
    • 10.13. C++ Reference in Data-Sharing Clauses
    • 10.14. Fortran ASSOCIATE Construct
  • 11. Memory Model
    • 11.1. OpenMP Memory Model
    • 11.2. Memory Allocators
    • 11.3. Race Conditions Caused by Implied Copies of Shared Variables in Fortran
  • 12. Program Control
    • 12.1. Conditional Compilation
    • 12.2. Internal Control Variables (ICVs)
    • 12.3. Placement of flush , barrier , taskwait and taskyield Directives
    • 12.4. Cancellation Constructs
    • 12.5. requires Directive
    • 12.6. declare variant Directive
    • 12.7. Metadirectives
    • 12.8. Nested Loop Constructs
    • 12.9. Restrictions on Nesting of Regions
    • 12.10. Target Offload
    • 12.11. Controlling Concurrency and Reproducibility with the order Clause
    • 12.12. interop Construct
    • 12.13. Utilities
  • 13. OMPT Interface
    • 13.1. OMPT Start
Powered by Jupyter Book
  • repository
  • open issue
  • .md

copyright

copyright#

Here is the publication information. For example, when published? the copyright? funding?

By The OpenMP Community
© Copyright 2022.