プロセス レベルで 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)
も参照してください .