您的位置:首页 > 其它

关于numa的一些总结

2015-07-03 18:57 281 查看
http://blog.csdn.net/chrysanthemumcao/article/details/9237891

1.不同的操作系统对numa的支持不一样.

1.1 solaris提供了locality group api. 可以使用它方便地进行 locality操作.api可以参考http://docs.oracle.com/cd/E19082-01/820-1691/lgroups-1/index.html.
另外还有一点需要注意, solaris提供的系统调用mmap分配内存的时候会在多个node上都分配内存.所以在调度的时候,可以使用numa的locality特性来访问数据,以提高性能.

1.2 linux对numa也提供了一些函数,但是它提供的操作并不好用.如mbind,set_mempolicy.sched_setaffinity等.

不过linux上提供了一个api libnuma.可以用它来进行相关调用.不过个人感觉也不是很好用.

具体的比较可以参考论文"Exploring Thread and Memory Placement on NUMA Architectures: Solaris and Linux,

UltraSPARC/FirePlane and Opteron/HyperTransport".

2.libnuma提供的api:http://linux.die.net/man/3/numa.

3.从指定的内存地址得到其对应的node结点:http://stackoverflow.com/questions/7986903/can-i-get-the-numa-node-from-a-pointer-address-in-c-on-linux.

http://stackoverflow.com/questions/8154162/numa-aware-cache-aligned-memory-allocation.

4.给定一个进程,绑定到指定的node上.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: