サイト内の現在位置を表示しています。

OR分岐で処理時間をさらに短縮できるかも?

JobCenter Lab vol.4

こんにちは。WebSAM JobCenter ブログ担当の荒尾です。

今回は、JobCenterの部品オブジェクトで、並列処理を行うための「OR分岐」を紹介します。

並列処理の部品には他に「並列分岐」がありますが、「OR分岐」を活用すると、同じ並列処理でも、ジョブ全体の処理時間を更に短縮できる場合があるので、並列処理に適用するときの考え方についても紹介します。

並列分岐とOR分岐の機能の違い

並列処理を行う部品の、並列分岐とOR分岐の機能については以下の通りです。

並列分岐とOR分岐の機能
名 称 アイコン 機 能
並列分岐 アイコン 複数の単位ジョブ、または、サブジョブ ネットワークを並列に実行します
OR分岐 アイコン 複数の分岐フローのうち1つが終了すると 後続の部品を実行します
つまり、両部品の違いは「分岐の終わりで、分岐内の全分岐フローの処理終了を待ち合わせするか否か」になります。

OR分岐で処理時間が更に短縮できるか考えてみよう

ここでは、ジョブフローの検討時、全体の処理時間の短縮を考える場合に、並列処理にOR分岐を適用すると更に実行時間が短縮できるか、考え方について紹介します。

以下は、長方形の横幅が各単位ジョブの処理時間の長さ、矢印が単位ジョブの依存関係を表したジョブフローのイメージ図です。
ジョブBとジョブDは依存関係が無く並列に実行可能です。ジョブCはジョブBの終了を待つ必要がありますが、ジョブDの終了を待つ必要がありません。

フローイメージ

並列処理間に依存関係の無いジョブフローのイメージ

上記のジョブフローを、並列分岐とOR分岐でジョブネットワークを作成すると、それぞれ以下になります。(分岐部品のアイコンが異なる以外、見た目は同じです)

画面イメージ

並列分岐とOR分岐のジョブフロー例

これらのジョブフローをそれぞれ実行したときの、全体の実行時間は以下のようになります。
全分岐の終了を待つ必要がない並列処理の場合、OR分岐を利用することで、ジョブ全体の実行時間の短縮が期待できます。

フローイメージ

並列分岐とOR分岐の全体の実行時間(イメージ)

おわりに

上記の例では、実行時間が「(ジョブB+ジョブC)<(ジョブD)」となる場合は、実行時間の短縮は期待できませんが、条件が合えばOR分岐を活用することで、処理を単に並列化するだけでなく、更に全体の実行時間を短縮することができます。
ジョブフロー作成時、OR分岐の利用も検討してみてください。

お問い合わせ

当ブログに関するお問い合わせは、WebSAM JobCenterお問い合わせ窓口までお問い合わせください。