Paralelo GNU do pobre homem implementado em ksh?

8

Eu gostaria de usar o recurso de paralelo GNU , onde ele pode executar o comando e a lista que ele usa em paralelo e cuspiu depois que tudo estiver pronto, no entanto, eu não quero instalar o GNU paralelo em todos os nossos servidores.

Ou talvez uma versão paralela de xargs ?

Existe uma implementação do ksh do que o GNU Parallel faz? Neste caso, não precisa ser feito em ordem, como o GNU Parallel faz - desde que toda a saída possa ser canalizada ou armazenada. Eu também gostaria de evitar o uso de arquivos temporários.

    
por Nitrodist 20.06.2011 / 17:24

2 respostas

6

Se você deseja fazer a paralelização em uma máquina com vários núcleos, basta usar (GNU) xargs , por exemplo:

echo seq_[0-9][0-9].gz | xargs -n 1 -P 16 ./crunching

Significado: xargs inicia até 16 processos em paralelo de ./crunching usando 1 token de stdin para cada processo.

Você também pode usar split em combinação com xargs.

Ou você pode criar um Makefile simples para execução de trabalhos e chamar make -f mymf -j $CORES (você precisa de arquivos temporários para esta solução).

PS: O manual paralelo GNU também inclui algumas comparações com outras ferramentas, incluindo xargs e make , curiosamente eles escrevem:

(Very early versions of GNU parallel were coincidently implemented using make -j).

    
por 20.06.2011 / 22:25
0

Veja o parallel --embed que incorpora o GNU Parallel no mesmo script de shell do qual você o utiliza.

parallel --embed > new_script

edite new_script.

    
por 26.02.2018 / 16:05