GNU/Linux >> Linux の 問題 >  >> Linux

Linux でプロセスのプロセッサ アフィニティを設定するにはどうすればよいですか?

これにはタスクセットを使用しました。タスクセットがインストールされている場合は、次のようになります:

taskset -cp 0,2 45678

は、ID 45678 のプロセスを設定して、CPU 1 および 3 にアフィニティーを持たせます。


プロセス内では、呼び出しは sched_setaffinity() になります 、または pthreads の場合は pthread_setaffinity_np()

これに関連して、プログラムの CPU アフィニティについて心配している場合は、メモリ割り当てがどのように行われているかにも注意を払う価値があるかもしれません。メモリが複数のコントローラに接続されている大規模なシステム (つまり、それぞれが独自の複数の CPU ソケット) では、CPU とメモリのペアが異なると、遅延と帯域幅が変化します。 numactl を使用して、NUMA アフィニティも調べる必要があります。 コマンドまたはそれが動作するシステムコール。私が取り組んだ 1 つのプログラムは、これにより 10% のパフォーマンス向上を達成しました。


schedutils をインストールする必要があります (Linux スケジューラ ユーティリティ)。Ubuntu デスクトップで使用しています。

SF リンク


Linux
  1. Linux で C または C++ からプロセスの CPU アフィニティを設定する方法は?

  2. Linux pthreads でスレッドの名前を設定するには?

  3. 親プロセスの作業ディレクトリを設定するにはどうすればよいですか?

  1. Linux – Linuxでプロセスのプロセッサ親和性を設定するにはどうすればよいですか?

  2. Linuxでキーボードの状態を取得するにはどうすればよいですか?

  3. LinuxでCからIPアドレスを設定する方法

  1. Linux –Linuxでプロセスを1つのCPUコアに制限する方法は??

  2. UNIX / Linux :プロセスのナイスネス (優先度) を変更する方法

  3. Pythonのmatplotlibで「バックエンド」を設定するにはどうすればよいですか?