Utilice sched_setaffinity a nivel de proceso o pthread_attr_setaffinity_np para subprocesos individuales.
Necesitas usar sched_setaffinity(2)
.
Por ejemplo, para ejecutar solo en las CPU 0 y 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
para el primer parámetro significa el proceso actual, proporcione un PID si es algún otro proceso que desea controlar).
Véase también sched_getcpu(3)
.