Použijte sched_setaffinity na úrovni procesu nebo pthread_attr_setaffinity_np pro jednotlivá vlákna.
Musíte použít sched_setaffinity(2)
.
Například pro spuštění pouze na CPU 0 a 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
pro první parametr znamená aktuální proces, zadejte PID, pokud je to nějaký jiný proces, který chcete řídit).
Viz také sched_getcpu(3)
.