5

-kタイトルにあるように、このオプションが GNU 並列の速度に (強く) 影響するかどうか疑問に思っています。

man parallel_tutorialは と に関する議論が--ungroupあり、出力行をアンミックスする は よりもはるかに遅い--line-bufferと主張しています。では、ジョブ数が多い場合も大幅な速度低下が発生するのでしょうか?--linebuffer--ungroup-k

(このトピックはman parallelまたはで見つかりman parallel_tutorialませんでした。また、Google で何かを見つけたわけでもありません。まだ終わっていないman parallelので、検索が少なくて何かを見逃していた場合は、申し訳ありません。)

4

1 に答える 1

8

-k速度が低下することはありませんが、ジョブごとに 4 つのファイル ハンドルが必要です。GNU Parallel がファイル ハンドルを使い果たすと、実行中のジョブの 1 つが終了するまで待機します。

-gと比較すると-u、ジョブごとに約 1 ~ 2 ミリ秒遅くなります (さらに、ディスクからの出力の書き込みと読み取りにかかる時間)。したがって、速度の低下は、非常に短いジョブまたは出力の多いジョブを実行する場合にのみ顕著になります。

--line-bufferよりも速くなったり、遅くなったりし-gます。ディスクにバッファリングしませんが、特にジョブのデータ出力が遅い場合は、実行に CPU 時間がかかります。

最も使いやすいものを使用することをお勧めします。それが遅すぎることが判明した場合にのみ、他のオプションを検討してください。

于 2014-05-10T08:03:50.620 に答える