異種早期完了時間( HEFT ) は、通信時間を考慮して、一連の依存タスクを異種ワーカーのネットワークにスケジュールするためのヒューリスティック アルゴリズムです。 [ 1 ] HEFT は入力として、有向非巡回グラフとして表現されるタスクのセット、ワーカーのセット、各ワーカーで各タスクを実行する時間、および各ジョブの結果を各ワーカーの子に通信する時間を要求します。これはリスト スケジューリングアルゴリズムから派生したものです。
HEFTは2つのフェーズで実行されます。
最初の段階では、各タスクに優先順位が付けられます。各タスクの優先順位は通常、その「上位ランク」として指定され、それは次のように再帰的に定義されます。
どこはタスク、は、全プロセッサにおけるジョブ i の平均計算コストです。は、タスクに直接依存するすべてのジョブの集合です。、 そしてこれは、ジョブ間で転送される変数の平均通信コストです。そしてすべての労働者ペア間で。計算はすべての子のランクの計算に依存します。上方向のランクは、任意のタスクから計算の終了までの期待距離を表すことを意図しています。平均量の場合、異なる平均値を用いると、異なる結果が得られる可能性がある。[ 2 ]
第2フェーズでは、タスクがワーカーに割り当てられます。すべてのタスクに優先順位が付けられたので、最も優先度の高いものから順に、各タスクを検討してスケジュールします。依存するすべてのタスクが完了している最も優先度の高いタスクは、そのタスクの完了時刻が最も早くなるワーカーにスケジュールされます。この完了時刻は、必要なすべての入力をワーカーに送信する通信時間、ワーカー上でのタスクの計算時間、およびそのプロセッサが使用可能になる時間(別のタスクでビジー状態になっている可能性あり)によって決まります。HEFTは、既にスケジュールされたタスク間の十分な大きさのギャップを埋める挿入ベースのポリシーを使用します。
HEFT はこの問題に対するヒューリスティック アルゴリズムの中で高く評価されています。しかし、複雑な状況では最適なスケジューリングを見つけることが容易に失敗する可能性があります。HEFT は本質的に貪欲なアルゴリズムであり、長期的な利益のために短期的な犠牲を払うことができません。HEFT に基づくいくつかの改良されたアルゴリズムは、スケジューリング決定の質をより良く推定するために先を見越して、実行時間とスケジューリング パフォーマンスのトレードオフに使用できます。[ 3 ] [ 4 ]
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)