xargs com a opção -P (número de processos). Digamos que eu quisesse compactar todos os arquivos de log em um diretório em uma máquina de 4 cpu:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -P 4 bzip2
Você também pode dizer -n <number> para o número máximo de unidades de trabalho por processo. Então digamos que eu tenha 2500 arquivos e eu falei:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -n 500 -P 4 bzip2
Isso iniciaria 4% debzip2 processos, cada um com 500 arquivos e, em seguida, quando o primeiro terminasse, outros seriam iniciados nos últimos 500 arquivos.
Não sei por que a resposta anterior usa xargs e make , você tem dois mecanismos paralelos lá!