Isso dependerá da sua carga de trabalho específica e de mais detalhes do seu arquitetura (por exemplo, os processos lêem a mesma memória, o que pode estar em nós NUMA separados?), então seria melhor se você pudesse medir desempenho e ver o que você recebe.
Executar 24 tarefas intensivas de CPU em mais de 8 unidades de execução exigirá agendando tarefas on e off, enquanto executando tantas tarefas quanto unidades de execução devem, em princípio, exigir menos comutação. Eu não faria esperar que a sobrecarga relacionada à execução de código para alternar entre tarefas é tão alto, mas, quando uma tarefa é agendada com uma CPU, efeito é que o estado de caches dessa CPU corre o risco de ser liberado (eles provavelmente se tornarão inúteis para a nova tarefa que está sendo agendada); se isso acontecer com frequência suficiente, pode levar a um desempenho degradado.
No seu caso, pode fazer sentido comparar esses três entre si:
- Executa 24 tarefas simultâneas;
- executar 8 tarefas;
- executam 8 tarefas, atribuindo uma CPU específica a cada uma delas.
Você pode fazer (3) usando, por exemplo, cpuset
no Linux.