Utilisez sched_setaffinity au niveau du processus ou pthread_attr_setaffinity_np pour les threads individuels.
Vous devez utiliser sched_setaffinity(2)
.
Par exemple, pour s'exécuter uniquement sur les CPU 0 et 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
pour le premier paramètre signifie le processus en cours, fournissez un PID s'il s'agit d'un autre processus que vous souhaitez contrôler).
Voir aussi sched_getcpu(3)
.