IBM Power7 Optimization And Tuning Manual page 28

Table of Contents

Advertisement

The Engineering and Scientific Subroutine Library (ESSL) contains an extensive set of
advanced mathematical functions and runs on AIX and Linux. Avoid having applications write
their own versions of functions, such as the Basic Linear Algebra Subprograms (BLAS).
Instead, use the Power optimized versions in ESSL.
java/util/concurrent
For Java, all of the standard class libraries are included with the JRE. One package of interest
for scalability optimization is java/util/concurrent. Some classes in java/util/concurrent
are more scalable replacements for older classes, such as
java/util/concurrent/ConcurrentHashMap, which can be used as a replacement for
java/util/Hashtable. ConcurrentHashMap might be slightly less efficient than Hashtable
when run in smaller system configurations where scalability is not an issue, so there can be
trade-offs. Also, switching packages requires a source code change, albeit a simple one.
Tuning to capitalize on hardware performance features
For almost all applications, using 64 KB pages is beneficial for performance. Newer Linux
releases (RHEL5, SLES11, and RHEL6) default to 64 KB pages, and AIX defaults to 4 KB
pages. Applications on AIX have 64 KB pages that are enabled through one or a combination
of the following methods:
1. Using an environment variable setting:
LDR_CNTRL=TEXTPSIZE=64K@DATAPSIZE=64K@STACKPSIZE=64K@SHMPSIZE=64K
2. Modifying the executable file with:
ldedit -btextpsize=64k -bdatapsize=64k -bstackpsize=64k <executable>
3. Using linker options at build time:
cc -btextpsize:64k -bdatapsize:64k -bstackpsize:64k ...
ld -btextpsize:64k -bdatapsize:64k -bstackpsize:64k ...
All of these mechanisms for enabling 64 KB pages can be safely used when they run on older
hardware or operating system levels that do not support 64 KB pages. When the needed
support is not in place, the system simply defaults to using 4 KB pages.
As mentioned in "Java options" on page 10, the recent Java releases default to using 64 KB
pages. For Java, it is important that the Java heap space uses 64 KB pages, which are
enabled by the -Xlp64k option in older releases (a minimum Linux level of RHEL5, SLES11,
or RHEL6 is required).
Larger 16 MB pages are also supported on the Power Architecture and might provide an
additional performance boost when compared to 64 KB pages. However, the usage of 16 MB
pages requires explicit configuration by the administrator of the AIX or Linux operating
system. The new DSO facility in AIX (see 4.2, "AIX Active System Optimizer and Dynamic
System Optimizer" on page 84) autonomously uses 16 MB pages without any administrator
configuration, and might be appropriate for cases in which a very large memory space is
being used by an application.
For certain types of non-numerical applications, turning off the default POWER7 hardware
prefetching improves performance. In specific cases, disabling hardware prefetching is
beneficial for Java programs, WebSphere Application Server, and DB2. One way to control
hardware prefetching is at the partition level, where prefetching is turned off by running the
following commands:
AIX: dscrctl -n -s 1
Linux: ppc64_cpu --dscr=1
12
POWER7 and POWER7+ Optimization and Tuning Guide

Advertisement

Table of Contents
loading

This manual is also suitable for:

Power7+

Table of Contents