Eu estou realmente surpreso que você tenha 270 MB / s usando --pipe
do GNU Parallel. Meus testes geralmente estão em torno de 100 MB / s.
Seu gargalo é mais provável no Paralelo GNU: --pipe
não é muito eficiente. --pipepart
, no entanto, é: Aqui eu posso obter na ordem de 1 GB / s por núcleo da CPU.
Infelizmente, existem algumas limitações no uso de --pipepart
:
- O arquivo deve ser pesquisável (ou seja, sem pipe)
- Você deve conseguir encontrar o início de um registro com --recstart / - recend (ou seja, nenhum arquivo compactado)
- O número da linha é desconhecido (portanto, você não pode ter um registro de 4 linhas).
Exemplo:
parallel --pipepart -a bigfile --block 100M grep somepattern