- GNU Parallel は E2E テストを並列実行するのに便利
- 著者は、HTTP 経由の本番サービスに対して長時間実行されるテストセットの合格/不合格率に関する統計を収集しようとしていた
- 当初、著者は bash のネストしたループを使ってテストを実行していたが、各テストの実行時間が長いため、この方法は遅かった
- その後 GNU Parallel を使ってテストを並列実行したところ、より少ないコードで性能と機能が大幅に向上した
- GNU Parallel では、コマンドを並列実行するよう指定し、プレースホルダー({1}、{2} など)は入力値に置き換えられる
- コマンドへの入力は
::: 演算子の後に指定し、可能なすべての組み合わせでコマンドに渡される
- GNU Parallel には、同時実行ジョブ数を制限したり、各ジョブの開始を遅らせたりするなど、並行性を制御してリソース競合を避けるためのオプションがある
- このツールには、実行時間、終了コード、キャプチャした stdout/stderr を含む、ジョブ完了結果の CSV ファイルを出力する機能もある
- 著者は GNU Parallel の作者 Ole Tange の書籍を勧めている。SSH を使って他のホストにジョブを分散したり、ジョブ完了時間を監視したり、失敗しやすいジョブを再試行したり、並列実行が途中で中断された場合にジョブを再開したり、CPU 使用率に基づいてジョブの同時実行数を制限したりするなど、このツールの機能をさらに深く探るためだ
1件のコメント
Hacker News の意見
-parallelパラメータを持つ PowerShell の ForEach-Object cmdlets に関する経験を共有するユーザー。コマンドラインツールを使った並列化の魅力を強調