web-dev-qa-db-ja.com

異なるプロセスに異なるCPUコアを割り当てるにはどうすればよいですか?

Ubuntu Server Edition 11.10を使用していますが、同じコアで2つのCPU集中型プログラムを実行しています。これらのプロセスはどちらもマルチコア処理用にプログラムされていません。プロセスAをコア1で実行し、プロセスBをコア2で実行するように指示する方法はありますか?

7
Otoris

受け入れられた答えは良いアドバイスかもしれませんが、それは確かにあなたの質問に対する答えではありません。あなたの質問は、あなたにも答えを聞く資格がないことを私に示していません。実際、どのプロセッサが何をすべきかを具体的に示したい状況の良い例のように聞こえます。

要点は、CPUセットです。 Ubuntuの11.10でサポートされているのは、最新の十分なLinuxカーネルを使用しているためです。 Linux 2.6が必要だと思います。

ここでcpusetのmanページを読むことができます: http://www.kernel.org/doc/man-pages/online/pages/man7/cpuset.7.html

ここに一般的な読書のための別のページがあります: http://www.bullopensource.org/cpuset/

LinuxはCPU時間の割り当て方法を決定するのに「素晴らしい」かもしれませんが、完全ではありません。

6
GoldenNewby

これが失礼だとは思わないことを願いますが、もしこの質問をするなら、あなたもそれを考慮するべきではありません。これは、Linuxが単独で理解するのに非常に優れていることの1つです。これを行うと、パフォーマンスに非常に悪影響を及ぼす可能性があります。プログラムがより多くのプロセッサを使用するように設計されていない場合でも、Linuxは必要に応じてそれらを異なるコアに移動します。プログラムは気付かないでしょう。

Niceコマンドを使用して、それらに低いNice値を与えて、より高い優先度を与えることができます。

2