sched_setaffinityで特定のCPUにプロセスを固定する

タイトルの通り。

#define _GNU_SOURCE
#include <sched.h>

/* 略 */

int rank; /* プロセスのランク */
int proc; /* プロセス数 */

cpu_set_t mask;
CPU_ZERO(&mask);
CPU_SET(rank % proc, &mask);
sched_setaffinity(0, sizeof(mask), &mask);
  • D_GNU_SOURCEを忘れないように!