拆分文本并并行处理
Split up text and process in parallel
我有一个生成大量(TB)输出并将其发送到标准输出的程序。
我想拆分该输出并与另一个程序的一堆实例并行处理它。可以用任何方式分发,只要线路完好无损。
并行可以做到这一点,但它需要固定数量的行并在这之后重新启动过滤过程:
./relgen | parallel -l 100000 -j 32 --spreadstdin ./filter
有没有办法保持恒定数量的进程运行并在它们之间分发数据?
-l
不利于性能。尽可能使用 --block
。
您可以通过以下方式让数据分布式循环:--roundrobin
。
./relgen | parallel --block 3M --round-robin -j 32 --pipe ./filter
我有一个生成大量(TB)输出并将其发送到标准输出的程序。
我想拆分该输出并与另一个程序的一堆实例并行处理它。可以用任何方式分发,只要线路完好无损。
并行可以做到这一点,但它需要固定数量的行并在这之后重新启动过滤过程:
./relgen | parallel -l 100000 -j 32 --spreadstdin ./filter
有没有办法保持恒定数量的进程运行并在它们之间分发数据?
-l
不利于性能。尽可能使用 --block
。
您可以通过以下方式让数据分布式循环:--roundrobin
。
./relgen | parallel --block 3M --round-robin -j 32 --pipe ./filter