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


1.  Introducing the OpenMP API

2.  Compiling and Running OpenMP Programs

3.  Implementation-Defined Behaviors

4.  Nested Parallelism

5.  Tasking

6.  Automatic Scoping of Variables

7.  Scope Checking

8.  Performance Considerations

8.1 Some General Performance Recommendations

8.2 False Sharing And How To Avoid It

8.2.1 What Is False Sharing?

8.2.2 Reducing False Sharing

8.3 Oracle Solaris OS Tuning Features

A.  Placement of Clauses on Directives


8.3 Oracle Solaris OS Tuning Features

Oracle Solaris supports features that improve the performance of OpenMP programs without hardware upgrades, such as Memory Placement Optimizations (MPO) and Multiple Page Size Support (MPSS), among others.

MPO emables the OS to allocate pages close to the processors that access those pages. SunFire E20K and SunFire E25K systems have different memory latencies within the same UniBoard as opposed to between different UniBoards. The default MPO policy, called first-touch, allocates memory on the UniBoard containing the processor that first touches the memory. The first-touch policy can greatly improve the performance of applications where data accesses are made mostly to the memory local to each processor with first-touch placement. Compared to a random memory placement policy where the memory is evenly distributed throughout the system, the memory latencies for applications can be lowered and the bandwidth increased, leading to higher performance.

The MPSS feature enables a program to use different page sizes for different regions of virtual memory. The default Oracle Solaris page size is relatively small (8 KB on UltraSPARC processors and 4 KB on AMD64 Opteron processors). Applications that suffer from too many TLB misses could experience a performance boost by using a larger page size.

TLB misses can be measured using the Oracle Solaris Studio Performance Analyzer.

The default page size on a specific platform can be obtained with the Oracle Solaris OS command: /usr/bin/pagesize . The -a option on this command lists all the supported page sizes. (See the pagesize(1) man page for details.)

The three ways to change the default page size for an application are: