HP-UX 11i Version 2 Release Notes (October 2003)
Other Functionality
ccNUMA
Chapter 11
246
ccNUMA
HP's new cell-based platforms use a ccNUMA (Cache Coherent Non-Uniform Memory)
Architecture. This means that memory latencies and bandwidths are not uniform across
the whole system. The latency and bandwidth of a same-cell memory access is better
than accessing memory on a different cell. This may have significant performance
implications for some workloads. The HP-UX 11i v2 release supports the following for
the ccNUMA platforms:
• give administrators the ability to configure memory
• provide good default behavior for applications that are not ccNUMA-aware
• give ccNUMA-aware applications the ability to control their memory placement as
well as process placement
ccNUMA is a core feature of HP-UX and does not have a separate product or version
number.
Summary of Change
Memory can be configured into “interleaved” and “cell local” memory. Interleaved
memory is a hardware-provided feature that mixes memory from different cells with a
very fine granularity. This has the effect of spreading out memory accesses and
eliminating “hot spots.” Cell local memory provides faster access to processes running on
the same cell as the memory, but slower access to processes running on any other cell.
The system administrator has the ability to configure how much memory will be
interleaved and how much will be cell local via the command line (parcreate or
parmodify) or Partition Manager GUI (parmgr)
1
.
Applications can now control which locality
2
they execute in using the locality binding
and launch policy features.
Application requests for memory are filled by the operating system with memory of the
appropriate type (if available) based on a set of heuristics. The operating system also
manages processes with the goal of keeping them “near” the memory they're using.
Interfaces are provided so that the placement of physical memory can be controlled by
applications and users.
Changes include the following:
• mmap()
These new memory locality flags have been added to mmap():
3
MAP_MEM_INTERLEAVED, MAP_MEM_LOCAL, MAP_MEM_FIRST_TOUCH.
1. For more information, see “Partition Manager” on page 79.
2. A locality domain consists of a related collection of processors, memory, and
peripheral resources that comprise a fundamental building block of the system.
All processors and peripheral devices in a given locality domain have equal
latency to the memory contained within that locality domain.
3. For other changes to mmap, see “The mmap() Function” on page 197.