0

現在優先 FIFO スケジューリング アルゴリズムを使用しているエンタープライズ BI システムをクリーンアップしようとしています (したがって、火曜日の優先度 4 のレポートは、木曜日の優先度 4 のレポートと月曜日の優先度 3 のレポートの前に実行されます。) 追加の詳細:

  • キューが空になることはなく、ジョブは常に追加されています
  • ジョブの実行時間は、1 分未満から 24 時間以上の範囲です
  • ジョブを実行するために使用される 40 の奇数の同一のアプリ サーバーがあります。

優先度に関するハード ルールとキュー内の平均時間に関するいくつかのソフト ルールを使用して、このシナリオで optaPlanner を起動して実行できると思います。私はスケジューリングの最適化に慣れていないので、この状況で optaPlanner が役立つかどうかを判断するには、何を調べればよいのでしょうか?

4

1 に答える 1

3

この問題は、NP 完全であるビン パッキング(およびおそらくジョブ ショップ スケジューリング)の形式のように見えるため、OptaPlanner は FIFO アルゴリズムよりも優れています。

しかし、それは本当にNP 完全なのですか? これらの条件がすべて満たされている場合、次のような状況ではない可能性があります。

  • 40 台のサーバーはすべて同一です。そのため、サーバー B ではなくサーバー A で優先レポートを実行しても、レポートの配信は速くなりません。
  • 40 台のサーバーはすべて同一です。そのため、合計期間 (特定の入力セットの場合) は一定です。
  • メイクスパンの合計は関係ありません。したがって、1 時間の小規模な仕事が 20 件と、20 時間の大きな仕事が 1 件あり、2 台のマシンがある場合、合計 30 時間のメイクスパンを考えると、大きな仕事が始まる 10 時間後にすべての小さな仕事が完了しても問題ありません。メークスパンを 20 時間に短縮したいという欲求はありません。
  • 「キュー内の平均時間」には議論の余地があります。ジョブが開始されるまで、または終了するまで、ジョブがキューにある時間を気にしますか? 合計期間が一定の場合、これは、小さなジョブを最初または最後に先入れ先出しするだけで実行できます (もちろん優先度は考慮します)。
  • ジョブ間に依存関係はありません。

これらの条件がすべて満たされている場合、OptaPlanner は、正しく記述された貪欲なアルゴリズム (最小/最大の優先順位が最も高いジョブを最初にスケジュールする) よりも優れた処理を行うことはできません。これらの条件のいずれかが満たされない場合 (たとえば、より高速な新しいサーバーを 10 台購入するなど)、OptaPlanner の方がうまくいく可能性があります。それを理解するために 1 スレッドを費やす価値があるかどうかを評価するだけです。

OptaPlanner を使用する場合は、リアルタイム スケジューリングとデーモン モードを確認して、新しいレポートがシステムに入力されるたびに再計画してください。

于 2014-10-14T07:54:58.260 に答える