Você não pode fazer isso como um usuário normal. Mas você pode configurar um cgroup como root e configurá-lo pelo usuário.
Se você ainda não possui os controladores cgroups padrão montados por, por exemplo, systemd:
$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
Crie um cgroup:
$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}
Agora você pode modificar a configuração do seu cgroup como um usuário normal:
$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus
Adicione um processo a esse grupo:
$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks
Ou crie um subgrupo:
$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks
rm -r
não para mim