Você não precisa fazer nada especial: é a tarefa do kernel decidir qual encadeamento vai para qual CPU, e faz um trabalho muito melhor do que um humano poderia.
No entanto, não faz sentido ter 24 CPUs se você não tiver pelo menos 24 threads simultâneos para rodar. Os programas não serão magicamente mais rápidos se mais CPUs estiverem disponíveis: apenas os programas codificados para múltiplos threads paralelos serão beneficiados, e muitos programas não serão beneficiados, não porque sejam escritos de maneira inferior, mas porque o que eles fazem é inerentemente não paralelizável.
Um programa com N threads de computação concorrentes se beneficiará de até N CPUs (embora possa não ser N vezes mais rápido, porque a sincronização entre os threads leva tempo). A execução de M programas diferentes que não interagem muito, se de alguma forma semelhante, aproveitam as CPUs M (ou mais do que isso, se os programas forem multiencadeados).
Existem alguns casos em que a intervenção manual é necessária para aproveitar o paralelismo. Se você estiver iniciando várias tarefas de processamento de dados, cuide para que elas sejam geradas em paralelo (com pouco mais de uma tarefa por CPU) em vez de uma após a outra. Por exemplo, ao criar software, passe a opção -j
para make
. Veja alguns outros exemplos e explicações:
- Quatro tarefas em paralelo ... como Eu faço isso?
- Execução paralela de um programa em vários arquivos
- Por que as pessoas recomendam a opção -j3 para fazer ao ter uma CPU dual-core?
- Correndo até comandos X em paralelo
Se você estiver executando um servidor da Web, todos os servidores da Web projetados para cargas pesadas são bons para explorar o paralelismo. O Apache é usado como um caso de teste ao avaliar o desempenho das otimizações no kernel do Linux. No entanto, esteja ciente de que o paralelismo na CPU só ajuda se não houver nenhum outro gargalo, como a contenção devido ao acesso ao banco de dados ou à largura de banda de entrada-saída.