ps_get_cpu_affinity() queries the
CPU affinity of
a process. ps_set_cpu_affinity() sets the CPU affinity of a process.
Process handle.
Integer vector of CPU numbers to restrict a process to.
CPU numbers start with zero, and they have to be smaller than the
number of (logical) CPUs, see ps_cpu_count().
ps_get_cpu_affinity() returns an integer vector of CPU
numbers, starting with zero.
ps_set_cpu_affinity() returns NULL, invisibly.
CPU affinity consists in telling the OS to run a process on a limited
set of CPUs only (on Linux cmdline, the taskset command is typically
used).
These functions are only supported on Linux and Windows. They error on macOS.
# current
orig <- ps_get_cpu_affinity()
orig
#> [1] 0 1 2 3
# restrict
ps_set_cpu_affinity(affinity = 0:0)
ps_get_cpu_affinity()
#> [1] 0
# restore
ps_set_cpu_affinity(affinity = orig)
ps_get_cpu_affinity()
#> [1] 0 1 2 3