2012-04-07 55 views
1

我想在运行Linux的多核系统上运行一些基准测试。我想为我的基准保留一个核心。我知道我可以使用sched_setaffinity来限制我的基准测试。我怎样才能让关闭我的核心?换句话说,我如何将所有进程的默认关联设置为不包含我的核心?如何更改Linux中的默认处理器关联?

回答

1

即使您将所有其他进程都保留为“保留用于基准测试”的核心,请记住,您无法阻止它们将有限的内存带宽的变量和不可预测比例消耗到多核芯片,并且您无法阻止他们对共享L2和L3缓存进行可变要求。

恕我直言,可重复的科学基准需要一台机器本身。

+0

这是一台专门的机器,除了我的基准测试以外什么都没有。但是,我对Linux不熟悉,并且对Windows非常熟悉,知道有几十个系统进程在后台运行,而我几乎无法控制它。我正在尽量减少他们的影响。 – 2012-04-08 04:36:34

+1

啊我看到了;好吧,我假设你试图在桌面上屏蔽某些资源。但个人而言,我会使用调度优先级来解决问题。只需运行您的基准测试过程,其优先级高于系统过程。请参阅http://stackoverflow.com/questions/6957687/these-days-what-are-good-reasons-for-setting-thread-affinity-rather-than-leavin,特别是我对Ariel的回答的评论。 – timday 2012-04-08 08:34:58