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

Publicado por danilo em 16/07/2012

[ Hits: 9.527 ]

 


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.

Outras dicas deste autor

Shell script: auto-completion - Como implementar

Leitura recomendada

Limpando o .recycle do Samba

Criando certificados no Fedora Core

Como criar um cronômetro em modo texto

Script para adicionar hosts no Nagios

Shell script com Kdialog

  

Comentários
[1] Comentário enviado por julio_hoffimann em 16/07/2012 - 18:13h

Ótima dica Danilo!

Abraço!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts