首页
社区
课程
招聘
[求助]如何让程序只使用多核CPU的一个核
发表于: 2010-5-25 04:39 8002

[求助]如何让程序只使用多核CPU的一个核

2010-5-25 04:39
8002
要对一个程序做profile,用rdtscp指令。但是有点小问题,在多核cpu上,各个核之间的counter是不同步的,需要把程序设置成只使用一个核。

Windows下面很简单:
SetProcessAffinityMask(GetCurrentProcess(), 1);
就可以了。

Linux下面要如何实现呢?
google了一下,估计是使用, sched_setaffinity()这个API吧。可是不知道mask参数如何设置。

cpu_set_t mask;
/* 如何设置 mask ? (当前使用的CPU有8个核)*/
sched_setaffinity(0, sizeof(mask), &mask);

希望能给个详细些的说明。
谢谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 237
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
man sched_setaffinity
说得很详细啊。
2010-5-28 06:28
0
雪    币: 237
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
再给个网上手册的传送门
http://linux.die.net/man/2/sched_setaffinity
2010-5-28 06:29
0
游客
登录 | 注册 方可回帖
返回
//