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

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

プロセス レベルで sched_setaffinity を使用するか、個々のスレッドに対して pthread_attr_setaffinity_np を使用します。


sched_setaffinity(2) を使用する必要があります .

たとえば、CPU 0 と 2 のみで実行するには:

#define _GNU_SOURCE
#include <sched.h>

cpu_set_t  mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask);
CPU_SET(2, &mask);
int result = sched_setaffinity(0, sizeof(mask), &mask);

(0 最初のパラメーターは現在のプロセスを意味するため、制御したい他のプロセスの場合は PID を指定します)。

sched_getcpu(3) も参照してください .


Linux
  1. CentOS/RHEL 7 で SYSTEMD プロセスの CPU アフィニティを設定する方法

  2. CからLinuxでPIDによってプロセスのCPU使用率を計算する方法は?

  3. C++ を使用して Linux で合計 CPU 使用率を取得する方法

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

  2. Linux で特定のプログラムのプロセス ID を設定する方法

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

  1. LinuxでプロセスのCPU使用率を制限する方法

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

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