Pular para o conteúdo

GNU parallel - Um ferramenta para execução de processos em paralelo

Dica publicada em Shell Script / Avançado
danilo danilosampaio
Hits: 10.260 Categoria: Shell Script Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

GNU parallel - Um ferramenta para execução de processos em paralelo

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.

O pacote pode ser baixado do site do GNU:
Atualmente, o repositório padrão do Ubuntu não tem este pacote, ao tentar instalar:

sudo apt-get install parallel

É sugerido a instalação do pacote "moreutils", cujo comando parallel, é diferente do GNU parallel.

Obrigado.

Shell script: auto-completion - Como implementar

openSUSE - Carregando Script do IPtables no Boot

Redimensionando e renomeamento imagens em massa

Criar lançador para o Grafix2

CGI + Shell Script: gerando listagem de IPs disponíveis em sua rede

Como escrever em arquivos protegidos usando o sudo e redirecionamento

#1 Comentário enviado por julio_hoffimann em 16/07/2012 - 18:13h
Ótima dica Danilo!

Abraço!

Contribuir com comentário

Entre na sua conta para comentar.