2012-04-07 11 views
1

Linuxを実行しているマルチコアシステムで、いくつかのベンチマークを実行したいと考えています。ベンチマークのためにコアの1つを予約したいと思います。私はsched_setaffinityを使って私のベンチマークをそのコアに限定できることを知っています。他のすべてのプロセスを維持するにはどうすればいいですかオフ私のコア?つまり、コアを含まないようにすべてのプロセスのデフォルトアフィニティを設定するにはどうすればよいですか?Linuxでデフォルトのプロセッサアフィニティを変更するにはどうすればよいですか?

答えて

1

他のすべてのプロセスを "ベンチマーク用に予約された"コアから離しても、限られたメモリ帯域幅の可変かつ予測不能な部分をマルチコアチップに消費させないようにすることはできません。 L2とL3の共有キャッシュでさまざまな要求をすることを止めることはできません。

IMHO再現性のある、科学的なベンチマークでは、すべてのマシンが必要です。

+0

これは私のベンチマーク以外は実行していない専用マシンです。しかし、私はLinuxに慣れておらず、Windowsには十分に精通しているため、バックグラウンドで数十のシステムプロセスが実行されていることを知ることはできません。私はその影響を最小限に抑えようとしています。 –

+1

ああ、私は参照してください。 OK私はあなたのデスクトップ上のいくつかのリソースを鳴らそうとしていたと仮定していました。しかし、個人的には、代わりにスケジュール優先度を使用して問題を攻撃します。これらのシステムプロセスよりも優先度の高いベンチマークプロセスを実行するだけです。 http://stackoverflow.com/questions/6957687/these-days-what-are-good-reasons-for-setting-thread-affinity-rather-than-leavin特にアリエルの答えに対する私のコメントを参照してください。 – timday

関連する問題