
Simple NUMA policy support. It consists of a numactl program to run
other programs with a specific NUMA policy and a libnuma shared library 
("NUMA API") to set NUMA policy in applications.

The libnuma binary interface is supposed to stay binary compatible. 
Incompatible changes will use new symbol version numbers.

In addition there are various test and utility programs, like
numastat to display NUMA allocation statistics and memhog.

In test there is a small regression test suite.
Note that regress assumes a unloaded machine with memory free on each
node. Otherwise you will get spurious failures in the non strict
policies (prefered, interleave) 

See the manpages numactl.8 and numa.3 for details.

Source code maintenance:
  https://github.com/numactl/numactl/

Copyright:

numactl and the demo programs are under the GNU General Public License, v.2
libnuma is under the GNU Lesser General Public License, v2.1.

The manpages are under the same license as the Linux manpages (see the files)

numademo links with a library derived from the C version of STREAM
by John D. McCalpin and Joe R. Zagar for one sub benchmark. See stream_lib.c 
for the license. In particular when you publish numademo output
you might need to pay attention there or filter out the STREAM results.

It also uses a public domain Mersenne Twister implementation from
Michael Brundage.

Version 2.0.10-rc2: (C)2014 SGI

Author:
Andi Kleen, SUSE Labs

Version 2.0.0 by Cliff Wickman, Christoph Lameter and Lee Schermerhorn
cpw@sgi.com clameter@sgi.com lee.schermerhorn@hp.com

