首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么taskset对fedora没有影响?

为什么taskset对fedora没有影响?
EN

Stack Overflow用户
提问于 2013-02-03 11:24:07
回答 1查看 567关注 0票数 0

我正在尝试运行一个高度多线程的应用程序,并想用不同的内核( 0,1,2,3,4,5,6 ... 12)来测量它的性能。我在谷歌上看到了任务集,

代码语言:javascript
复制
taskset 0x00000003 ./my_app

但是当我看到fedora的系统监视器时,它只显示一个内核运行100%,而其他内核只运行12%,0%,...etc。有没有办法告诉进程在特定的内核上运行。我也听说过像-t #no of cores这样的选项。喜欢

代码语言:javascript
复制
./my_app -t2 

对于0和1核..但是这也没有效果,我做错了什么,请任何人把我引向正确的方向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 15:25:20

taskset 0x00000003 ./my_app将my_app进程的亲和性设置为核心1和2。如果您的应用程序是多线程的,则线程将继承亲和性,但不会设置它们在核心1和2之间的分布。

要设置进程内每个线程的亲和性,您可以在进程运行后使用taskset (例如,运行myapp,检查线程if并为每个线程调用taskset -pc <core> <tid> ),或者在创建线程时使用sched_setaffinity设置亲和性,如果使用pthread等,则使用pthread_setaffinity_np设置亲和性。

无论./myapp -t2做什么,都是特定于您的应用程序的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14669206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档