The numactl program allows you to run your application program on specific cpu's and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program.
numactl --cpubind=0 --membind=0,1 myprogruns program "myprog" on cpu 0, using memory on nodes 0 and 1.
The package contains other commands, such as numademo, numastat and memhog. The numademo command provides a quick overview of NUMA performance on your system.
For example, you can call numa_bind() to cause your program to be bound to (in other words, run on) specific nodes.
You can probably obtain the numactl command and libnuma library as installable packages from your Linux distribution.
The numactl command and libnuma library are now maintained at https://github.com/numactl/numactl.
Send comments, discussion and patches to firstname.lastname@example.org
To subscribe to the list, place "subscribe linux-numa" in the body of an email and send it to email@example.com. Majordomo will return a confirmation message that you will have to return.
The numactl/libnuma maintainers are Filipe Brandenburger (firstname.lastname@example.org) and Cliff Wickman (email@example.com).
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)