并行分割文本和进程

时间:2016-11-21 10:27:38

标签: bash parallel-processing gnu-parallel

我有一个生成大量(太字节)输出的程序并将其发送到stdout。

我希望将该输出拆分并与另一个程序的一堆实例并行处理。它可以以任何方式分发,只要线条保持完整。

并行可以执行此操作,但它需要固定数量的行并在此之后重新启动过滤器进程:

./relgen | parallel -l 100000 -j 32 --spreadstdin ./filter

是否有办法保持一定数量的进程在其中运行并在其中分发数据?

1 个答案:

答案 0 :(得分:2)

-l对表现不利。如果可能,请使用--block

您可以将数据分发为:--roundrobin

./relgen | parallel --block 3M --round-robin -j 32 --pipe ./filter