GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit afinitu CPU pro proces z C nebo C++ v Linuxu?

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) .


Linux
  1. Linux – Jak zrušit sdílení sítě pro aktuální proces?

  2. Linux – Jak nastavit výchozí afinitu CPU pro všechny démony v Systemd?

  3. Jak nastavit afinitu CPU pro proces SYSTEMD v CentOS/RHEL 7

  1. Jak nastavit IP adresu z C v linuxu

  2. Jak používat sched_getaffinity a sched_setaffinity v Linuxu z C?

  3. Jak nastavit ID procesu v Linuxu pro konkrétní program

  1. Jak omezit využití CPU procesu v Linuxu

  2. Jak vypočítat využití CPU procesu pomocí PID v Linuxu z C?

  3. Jak omezit proces na jedno jádro CPU v Linuxu?