JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.3: OpenMP API User's Guide     Oracle Solaris Studio 12.3 Information Library
search filter icon
search icon

Document Information

Preface

1.  Introducing the OpenMP API

2.  Compiling and Running OpenMP Programs

3.  Implementation-Defined Behaviors

3.1 Task Scheduling Points

3.2 Memory Model

3.3 Internal Control Variables

3.4 Dynamic Adjustment of Threads

3.5 Loop Directive

3.6 Constructs

3.6.1 SECTIONS

3.6.2 SINGLE

3.6.3 ATOMIC

3.7 Routines

3.7.1 omp_set_num_threads()

3.7.2 omp_set_schedule()

3.7.3 omp_set_max_active_levels()

3.7.4 omp_get_max_active_levels()

3.8 Environment Variables

3.9 Fortran Issues

3.9.1 THREADPRIVATE Directive

3.9.2 SHARED Clause

3.9.3 Runtime Library Definitions

4.  Nested Parallelism

5.  Tasking

6.  Automatic Scoping of Variables

7.  Scope Checking

8.  Performance Considerations

A.  Placement of Clauses on Directives

Index

3.2 Memory Model

Memory accesses by multiple threads to the same variable without synchronization are not necessarily atomic with respect to each other. Several implementation-dependent and application-dependent factors affect whether accesses are atomic. Some variables might be larger than the largest atomic memory operation on the target platform. Some variables might be misaligned or of unknown alignment and the compiler or the runtime system might need to use multiple loads/stores to access the variable. Sometimes there are faster code sequences that use more loads/stores.