マルチスレッド対応について


Asprovaは、一部の処理をマルチCPU、マルチコア、ハイパースレッディングテクノロジーなどによる並列計算に対応しています(以降、マルチスレッド対応と呼びます)。
したがって、マルチCPU、マルチコア、ハイパースレッディングテクノロジーなどに対応したプロセッサーを搭載したマシンで実行することにより、リスケジュール中の一部の処理を高速に行なうことができます。

マルチスレッドに対応した処理(コマンド)は以下の通りです。

 Noコマンド名または実行タイミング処理内容対応時期備考
 1.起動時、カレンダーテーブルまたはシフトテーブル編集後のBroadcasting稼働時間の構築Ver.7.3.1~Ver.8制限機能。
 2.スケジュール評価コマンドオーダの評価Ver.7.3.1~Ver.8制限機能。
 3.オーダ割付け・紐付けコマンド割付けVer.10~64bit版のみ。Ver.10制限機能。
 4.製造オーダ割付けコマンド割付けVer.10~64bit版のみ。Ver.10制限機能。
 5.固定制約作業割付けコマンド割付けVer.10~64bit版のみ。Ver.10制限機能。
 6.実績制約作業割付けコマンド割付けVer.10~64bit版のみ。Ver.10制限機能。
 7.時間方向負荷平準化コマンド割付けVer.10~64bit版のみ。Ver.10制限機能。
 8.オーダ展開コマンド登録オーダのオーダ展開Ver.10~64bit版のみ。Ver.10制限機能。

・No.3~8の処理は、[ツール]-[スレッド数]により、使用するスレッド数を指定することができます。(最後に設定したスレッド数はWindowsアカウントごとに記憶されます)

・No.3~8の処理は、スレッド数を多くすれば多くするほど、実行速度が速くなるわけではありません。
製造BOMやオーダ数によって、最速となるスレッド数が変わってくるため、適切なスレッド数を選んで実行してください。


あるデータ(400万作業、50工程、100品目、1工程あたりの候補資源数3)におけるスレッド数とリスケジュール時間の例 (コア数12、ハイパースレッディングテクノロジー付きのプロセッサにて)


・No.3~7の処理は、スレッド数を2にすると、スレッド数が1のときと同じ実行速度になるので、高速化したいのであれば、3以上を設定してください。
(上図で使用スレッド数1と2でリスケジュール全体の実行時間が異なるのは、オーダ展開コマンドの実行時間が短縮されたため)


・以下の場合、No.3~7の処理は自動的にシングルスレッドでの割付けになります。

以下のプラグインキーが存在する場合(Ver.10.0.1.22以降)

KeyHookBeforeAssign
KeyHookAfterAssign
KeyHookInCodeFunction
EIIFilterCalcDuration
EIIFilterCalcCombinationSetupDuration
EIIFilterCalcEvaluation
EIIFilterCalcOperationTimeLimit
EIIFilterCalcNextOperationTimeLimit

計画パラメタの「割付け停止条件式」が設定されているとき

計画パラメタの「未割付けの前後工程作業を無視する」が「はい」に設定されているとき

計画パラメタ「原料制約を課す」が「いいえ」以外のとき(Ver.11.0.2 以降)


・以下の場合、No.8の処理は自動的にシングルスレッドでの割付けになります。

KeyHookInCodeFunction



注意事項

シングルスレッドでの実行結果とマルチスレッドでの実行結果は基本的に同じになりますが、割付けコマンドの資源評価の追加評価式にて、自分が割り付く資源と異なる資源の負荷(例えば後工程作業の資源の負荷)を評価値に反映させるような特殊な設定をした場合は割付け結果が変わります。


HelpNo.:8990601
© Since 2019 Asprova Corporation, All rights reserved.