パイプラインにおけるクリティカルパスとは?
クリティカルパスは、パイプラインの始まりから終わりまでの、最も所要時間の長い依存jobのチェーンです。その上のすべてのjobは順番に実行される必要があるため、その合計時間が、他の場所でどれだけ並列化してもパイプライン全体がどれだけ速く終われるかの下限を決めます。パイプラインを速くするとは、クリティカルパスを短くすることです。
なぜ重要か
runnerを増やすことが役立つのは、ボトルネックが並列化可能な作業である場合だけで、長い直列チェーンには何の効果もありません。クリティカルパスを特定すれば、すでに速い分岐を並列化するのではなく、遅いjobの分割、入力のキャッシュ、不要な依存関係の削除といった、最適化が本当に効く場所が分かります。
関連する概念
- DAG内で最も長い依存チェーン
- パイプラインの最小エンドツーエンド時間を決める
- クリティカルパス外の並列化では速くならない
関連ガイド
What Is a DAG in CI/CD?A DAG is a directed acyclic graph of jobs where edges express dependencies and no cycles exist, defining a va…
What Is a Fan-In Barrier?A fan-in barrier is a synchronization point where a job waits for all of its parallel upstream jobs to finish…
What Is Test Parallelism?Test parallelism runs multiple tests at the same time, within a process or across machines, to reduce total t…