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

Publicado por danilo em 16/07/2012

[ Hits: 9.563 ]

 


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

Shell script com Kdialog

Usando find para expandir listas de arquivos em argumentos de modo seguro

Backup em shell script na virtualização de máquinas (VMWare)

Como criar e manter um mirror do Slackware em seu próprio micro

Script para adicionar hosts no Nagios

  

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