Com o GNU Parallel, você pode fazer isso:
parallel analysis.C ::: *.txt
Ou se você tiver realmente muitos .txt
-files:
printf '%s(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
' *.txt | parallel -0 analysis.C
O padrão é executar um trabalho por thread de CPU. Isso pode ser ajustado com -j20
para 20 trabalhos em paralelo.
Ao contrário do parallel.moreutils
-solution, você pode processar a saída: A saída é serializada, então você nunca verá a saída do mix de duas tarefas.
O GNU Parallel é um paralelizador geral e facilita a execução de trabalhos em paralelo na mesma máquina ou em várias máquinas para as quais você tem acesso ssh.
Se você tem 32 tarefas diferentes que você quer rodar em 4 CPUs, uma forma direta de paralelizar é rodar 8 tarefas em cada processador:
O
GNUParallelgeraumnovoprocessoquandoumtermina-mantendoasCPUsativaseeconomizandotempo:
Instalação
Por razões de segurança, você deve instalar o GNU Parallel com seu gerenciador de pacotes, mas se o 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 ao fazer isso:
parallel analysis.C ::: *.txt
Para outras opções de instalação, consulte o link
Saiba mais
Veja mais exemplos: link
Assista aos vídeos de introdução: link
Percorra o tutorial: link
Leia o livro: link
Inscreva-se na lista de e-mail para obter suporte: link