Suponha que eu queira encontrar todas as correspondências no arquivo de texto compactado:
$ gzcat file.txt.gz | pv --rate -i 5 | grep some-pattern
pv --rate
usado aqui para medir a produtividade do tubo. Na minha máquina, são cerca de 420 Mb / s (após a descompressão).
Agora estou tentando fazer grep paralelo usando o GNU paralelo.
$ gzcat documents.json.gz | pv --rate -i 5 | parallel --pipe -j4 --round-robin grep some-pattern
Agora, a taxa de transferência caiu para ~ 260Mb / s. E o que é o parallel
processo mais interessante em si é usar muita CPU. Mais que grep
processos (mas menos que gzcat
).
Edição 1 : Eu tentei diferentes tamanhos de bloco ( --block
), bem como diferentes valores para -N
/ -L
options. Nada me ajuda neste momento.
O que estou fazendo errado?
--pipe
ser ineficiente? Quero dizer, é algum tipo de problema fundamental ou mais específico da implementação.