Locality-Optimized Resource Alignment for Superdome 2

17
numa_sched_launch kernel tunable parameter
The numa_sched_launch parameter controls the default process launch policy. The launch policy
refers to the preferred locality for processes forked as children of a parent process. In LORA mode,
the default launch policy is PACKED, which places child processes in the same locality as their parent.
Setting the parameter to the value 0 forces the default launch policy to be the same as it is in SMP
mode. Individual processes can be launched with a custom policy by using the mpsched command.
numa_policy
kernel tunable parameter
The numa_policy kernel tunable parameter governs the way HP-UX 11i v3 performs memory
allocation on NUMA platforms. When the parameter is at its default value of 0, the kernel chooses
the allocation policy at boot time based on the platform memory configuration. The system
administrator can override the default choice at any time by changing the value of the parameter.
The numa_policy man page contains the full details; a brief summary appears below.
Table 2. Values for the numa_policy tunable parameter
Value
Default Memory Allocation Policy
Use Cases
0 automatically selected by the kernel at boot time recommended for all common workloads and
configurations
1 from the locality closest to the allocating processor in LORA mode or with lots of local memory
configured
2 from interleaved memory in SMP mode or with lots of interleaved memory
configured
3 text and library data segments from interleaved memory;
others from the locality closest to the allocating processor
highly threaded applications exhibiting spatial
locality
4 private objects from the closest locality; shared objects from
interleaved memory
applications that access lots of global data
mpsched command
In LORA mode, the kernel attempts to provide good alignment between the processors executing an
application and the memory that they reference. To offer direct control over process placement, HP-
UX 11i provides the mpsched command. The command reveals information about localities in the
system and controls the processor or locality on which a specific process executes. The man page
has the full details on how to use the command.
The mpsched command can be used to bind processes to a particular locality. In the absence of this
binding, the operating system might schedule processes in different localities as the workload ebbs
and flows. The binding ensures that the processes are always executing in the same locality as the
memory they allocate and hence will experience low memory latency. On the other hand, the use of
explicit process bindings restricts the scheduler's load-balancing algorithm and might reduce the
overall system throughput.
The mpsched command can also be used to specify a launch policy to control the scheduling of
children forked by a process.