Com o GNU Parallel você faria:
parallel script-to-run.sh input/ output/ {} ::: {0..99}
Adicione -P8
se você não quiser executar um trabalho por núcleo da CPU.
O oposto xargs
fará a coisa certa, mesmo se a entrada contiver espaço, ', ou "(não é o caso aqui, embora). Ele também garante que a saída de diferentes trabalhos não sejam misturados, então se você usar a saída, garantindo que você não obterá meia linha de dois trabalhos diferentes
GNU Parallel é um paralelizador geral e facilita a execução de trabalhos em paralelo na mesma máquina ou em várias máquinas às quais você tem acesso ssh.
Se você tiver 32 tarefas diferentes que deseja executar em 4 CPUs, uma maneira direta de paralelizar é executar 8 tarefas em cada CPU:
Em vez disso, o GNU Parallel gera um novo processo quando um termina - mantendo as CPUs ativas e, portanto, economizando tempo:
Instalação
Se GNU Parallel não estiver empacotado para sua distribuição, você pode fazer uma instalação pessoal, que não requer acesso root. Isso pode ser feito em 10 segundos fazendo o seguinte:
$ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
fetch -o - http://pi.dk/3 ) > install.sh
$ sha1sum install.sh | grep 67bd7bc7dc20aff99eb8f1266574dadb
12345678 67bd7bc7 dc20aff9 9eb8f126 6574dadb
$ md5sum install.sh | grep b7a15cdbb07fb6e11b0338577bc1780f
b7a15cdb b07fb6e1 1b033857 7bc1780f
$ sha512sum install.sh | grep 186000b62b66969d7506ca4f885e0c80e02a22444
6f25960b d4b90cf6 ba5b76de c1acdf39 f3d24249 72930394 a4164351 93a7668d
21ff9839 6f920be5 186000b6 2b66969d 7506ca4f 885e0c80 e02a2244 40e8a43f
$ bash install.sh
Para outras opções de instalação, consulte http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Saber mais
Veja mais exemplos: http://www.gnu.org/software/parallel/man.html
Assista aos vídeos de introdução: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Percorra o tutorial: http://www.gnu.org/software/parallel/parallel_tutorial.html
Inscreva-se na lista de e-mail para obter suporte: https://lists.gnu.org/mailman/listinfo/parallel