私はGNU Parallel totorialに取り組んでいます。「複数の引数」セクションには、次の例があります (注: num30000 は、連続した行に 1 から 30,000 までの番号を持つテキスト ファイルです)。
並列処理を向上させるために、GNU Parallel は、ファイルの終わりに達したときに、すべての並列ジョブ間で引数を分散できます。
4 つのジョブを並行して実行すると、引数の最後の行が 4 つのジョブに分割され、合計 5 つのジョブになります。
cat num30000 | parallel --jobs 4 -m echo | wc -l
出力:
5
私の質問は、なぜ合計 5 つのジョブが必要なのですか? 重要かどうかはわかりませんが、明らかにポイントがありません。30,000 は 4 で割り切れるので、4 つのジョブを期待していました。次のコマンドを実行した後、この質問を投稿することにしました。
cat num30000 | parallel --jobs 4 -m echo | colrm 12
その結果:
1 2 3 4 5 6
23696 23697
25273 25274
26850 26851
28427 28428
echo
これは、最初のコマンドに最初の 23,695 個の引数が渡されるように見えます。次に、残りのジョブは、引数カウントが 1577、1577、1577、および 1574 の 4 つのジョブに分割されます。ありがとうございました!