Re: [问题] 请问是否可以强制多执行绪共用一个cpu

楼主: wtchen (没有存在感的人)   2016-10-23 18:09:05
上来回报测试结果:
https://gist.github.com/gnitnaw/d3572c7e90e07fc1b76d25d540be7f3d
gcc thread.c -Wall -pedantic -lpthread -o thread
并没有特意设继承属性,不过似乎默认就是继承了
taskset的结果:
pid 4857's current affinity list: 0
(是在我的笔电上测试,64bit+ 4 core)
※ 引述《wtchen (没有存在感的人)》之铭言:
: 正在构思一个程式,load其实不是很重,但是有3-4个thread必须轮流对单一device存取
: 但是想做到lock-free+节省load+空出其他core做其他的事,
: 所以希望把该程式生出的所有的thread都集中在单一个core跑。
: raspberry pi的case简单(本来就是single core),可是想在rp3上也这样做。
: 请问有在user space(pthread)实作的方法吗?
: 我在 http://fred-zone.blogspot.fr/2007/10/cpu.html 看到一个例子:
: int main(void) {
: cpu_set_t cmask;
: unsigned long len = sizeof(cmask);
: __CPU_ZERO(&cmask); /* 初始化 cmask */
: __CPU_SET(0, &cmask); /* 指定第一个处理器 */
: /* 设定自己由指定的处理器执行 */
: if (!sched_setaffinity(0, len, &cmask)) {
: printf("Could not set cpu affinity for current process.\n");
: exit(1);
: }
: return 0;
: }
: 请问在sched_setaffinity(0, len, &cmask) 之后,不管该程式分出多少thread
: 都会只在cpu 0 执行吗?
: 感谢
作者: ooookkkk   2016-11-18 18:06:00
那如果要指定thread绑定cpu要如何实作
楼主: wtchen (没有存在感的人)   2016-11-18 20:42:00
我附的程式码有实作阿不然可以用pthread_setaffinity_np
作者: ooookkkk   2016-11-18 22:07:00
好的我试试看,感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com