GNU parallel - Um ferramenta para execução de processos em paralelo [Dica]
Publicado por danilo em 16/07/2012
[ Hits: 7.287 ]
GNU parallel é uma excelente ferramenta, muito fácil de usar, até para quem não tem muita experiência com shell script.
Basicamente, ela possibilita a execução de processos em paralelo, tanto no mesmo computador, quanto em computadores diferentes.
Um exemplo simples de uso, e que foi o meu caso: eu precisa fazer um grep em um arquivo muito grande, de quase um milhão e meio de linhas. A rotina estava demorando cerca de 6 segundos. Então, quebrei o arquivo em vários arquivos menores (usando o split), e executei um "grep" para cada arquivo, usando o parallel:
ls | parallel -X grep "$busca" {}
O exemplo acima, executa o "grep" para cada nome de arquivo do 'ls', fazendo a busca pelo texto representado pela variável "$busca". O pulo do gato aí, é a substituição do '{}' pelo nome do arquivo, e isso é feito pelo parallel.
Existem muitas opções de usar o parallel, inclusive para dividir o processamento em vários computadores, e explicar detalhadamente o uso desta ferramenta não é meu intuito, e sim compartilhar essa ferramenta fantástica.