Primeiro: obtenha seu layout de cpu em / proc / cpuinfo, que será algo como (isso está em uma listagem de 2 soquetes, 6 núcleos, truncada):
> cat /proc/cpuinfo |grep -P 'processor|physical id|core id'
processor : 0
physical id : 1
core id : 0
processor : 1
physical id : 0
core id : 0
processor : 2
physical id : 1
core id : 1
processor : 3
physical id : 0
core id : 1
physical-id será o seu socket, observe no meu caso, o toggle do core-id entre soquetes.
use 'schedtool' para definir a afinidade de 1 grupo para todos em 1 ID físico. Então, no meu caso, como as variáveis e probabilidades estão em CPUs (sockets) separados, eu usaria:
schedtool -a 0,2,4,6,8,10 -e run_group1 &
schedtool -a 1,3,5,7,9,11 -e run_group2 &
onde run_group1 inicia todos os seus tópicos que você quer em 1 core, e run_group2 inicia os outros. (olhe para 'man schedtool' (em seção 8 para mais opções. Eu coloquei os dois no fundo então ambos os grupos devem ser executados simultaneamente.
Você pode precisar ser root para definir a afinidade - não tenho certeza.
Isso resolve o seu Q ou eu entendi mal alguma coisa?