Cra*_*den 7 parallel-processing bash gnu-parallel
我有一个程序可以生成很多(太字节)的输出并将其发送到stdout.
我想分割输出并与另一个程序的一堆实例并行处理它.它可以以任何方式分发,只要线条保持完整即可.
Parallel可以执行此操作,但它需要固定数量的行并在此之后重新启动过滤器进程:
./relgen | parallel -l 100000 -j 32 --spreadstdin ./filter
Run Code Online (Sandbox Code Playgroud)
有没有办法保持一定数量的进程运行并在它们之间分配数据?
-l对性能没有好处。如果可能的话请使用--block。
您可以通过以下方式循环分发数据:--roundrobin。
./relgen | parallel --block 3M --round-robin -j 32 --pipe ./filter
Run Code Online (Sandbox Code Playgroud)