Se estiver usando make, emita com -j
. De man make
:
-j [jobs], --jobs[=jobs]
Specifies the number of jobs (commands) to run simultaneously.
If there is more than one -j option, the last one is effective.
If the -j option is given without an argument, make will not limit the
number of jobs that can run simultaneously.
E, principalmente, se você deseja criar um script ou identificar o número de núcleos que você tem disponível (dependendo do seu ambiente e se você executa em muitos ambientes, isso pode mudar bastante), você pode usar a onipresente função Python cpu_count()
:
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.cpu_count
Como isso:
make -j $(python3 -c 'import multiprocessing as mp; print(int(mp.cpu_count() * 1.5))')
Se você está perguntando por 1.5
que citarei o ruído artless do usuário em um comentário acima:
O número 1.5 é devido ao problema de ligação de E / S observado. É uma regra de ouro. Cerca de 1/3 dos trabalhos aguardam E / S, portanto, os trabalhos restantes usarão os núcleos disponíveis. Um número maior que os núcleos é melhor e você pode até chegar a 2x.