JP4185103B2 - 実行可能プログラムをスケジューリングするためのシステム及び方法 - Google Patents

実行可能プログラムをスケジューリングするためのシステム及び方法 Download PDF

Info

Publication number
JP4185103B2
JP4185103B2 JP2006039467A JP2006039467A JP4185103B2 JP 4185103 B2 JP4185103 B2 JP 4185103B2 JP 2006039467 A JP2006039467 A JP 2006039467A JP 2006039467 A JP2006039467 A JP 2006039467A JP 4185103 B2 JP4185103 B2 JP 4185103B2
Authority
JP
Japan
Prior art keywords
scheduling
group
weights
processors
groups
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006039467A
Other languages
English (en)
Other versions
JP2006244479A (ja
Inventor
スコット・エイ・ライン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006244479A publication Critical patent/JP2006244479A/ja
Application granted granted Critical
Publication of JP4185103B2 publication Critical patent/JP4185103B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本出願は、包括的には、コンピュータ資源に対するアクセスのスケジューリングに関する。
多くの企業は、その企業の組織内で使用されるコンピュータ及びアプリケーションの数の劇的な増加を経験してきた。企業の事業グループが新たなアプリケーションを配備する時、その新たなアプリケーションをホストする1つ又は複数の専用サーバプラットフォームを追加することが可能である。このタイプの環境は、時に、「one−app−per−box(ボックスごとに1つのアプリケーション)」と呼ばれる。より多くの事業プロセスがデジタル化されるにつれて、「one−app−per−box」環境では、サーバプラットフォームの個数が過度なものになる。その結果、サーバプラットフォームの管理運営コストは大幅に増加する。その上、サーバプラットフォームの資源が実際に使用される時間のパーセンテージ(利用率)は、かなり低くなる可能性がある。これらの問題に対処するために、多くの企業は、複数のアプリケーションを共通のサーバプラットフォームに一元化して、プラットフォームの個数を削減し、システムの利用率を向上させてきた。このような一元化が行われた場合、アプリケーション及び他の実行可能プログラムがいつプロセッサ資源にアクセスするかを決定するための或る機能が通常設けられる。このような機能は、通常、「スケジューリング」と呼ばれる。
さまざまな複雑さを有するいくつかのスケジューリングアルゴリズムが存在する。おそらく、最も簡単なスケジューリングは、先着順アルゴリズムである。優先順位に基づくアルゴリズムは、優先順位をプロセスに割り当て、最も高い優先順位を有するプロセスが、適切な時刻に選択されて実行される。プリエンプティブスケジューリングアルゴリズムは、高い優先順位のプロセスの実行の準備ができると、低い優先順位のプロセスをプロセッサから移す(remove)のに使用することができる。ラウンドロビンスケジューリングアルゴリズムは、プロセスが或る時間間隔の満了まで実行することを可能にし、次いで、別の実行可能プログラムが選択されて、各プロセッサで実行される。これに加えて、フェアシェアスケジューラは、パーセント又はシェアを定義し、定義したシェアに比例して、プロセッサ資源にアクセスする機会をプロセスに提供する。
一実施の形態では、コンピュータシステムは、複数のプロセッサと、実行可能プログラムの複数のグループであって、各グループについて、そのグループの実行可能プログラムをサポートするプロセッサ資源の量を表す各シェアパラメータが定義される、実行可能プログラムの複数のグループと、シェアパラメータを使用して複数の重みを生成し、且つ、複数のプロセッサ間における重みの配分を生成する、ソフトウェアルーチンであって、この配分が、各グループについてのプロセッサのサブセット、及び、そのグループの実行可能プログラムをスケジューリングするための、サブセット内の各プロセッサの比率を定義する、ソフトウェアルーチンと、配分に従ったスケジューリング間隔の期間中に、複数のグループの各実行可能プログラムを複数のプロセッサの特定のプロセッサにスケジューリングするためのスケジューリングソフトウェアルーチンと、を備える。
別の実施の形態では、方法は、複数のグループの実行可能プログラムをスケジューリングするためのプロセッサ資源の量を表す複数のシェアパラメータを定義すること、これらの複数のシェアパラメータを使用して、整数区画問題(IPP)に従い複数の重みを生成すること、IPPアルゴリズムを使用して、複数のプロセッサ間における重みの配分を決定すること、及び、この配分を使用して、複数のプロセッサにグループの実行可能プログラムをスケジューリングすること、を含む。
別の実施の形態では、コンピュータシステムは、複数の資源デバイスと、複数の実行可能プログラムの複数のグループであって、各グループについて、そのグループの実行可能プログラムをサポートする複数の資源デバイスへのアクセス量を表す各シェアパラメータが定義される、複数の実行可能プログラムの複数のグループと、シェアパラメータを使用して複数の重みを生成し、且つ、複数の資源デバイス間における重みの配分を生成する、ソフトウェアルーチンであって、この配分が、各グループについての資源デバイスのサブセット、及び、そのグループの実行可能プログラムをスケジューリングするための、サブセット内の各資源デバイスの比率を定義する、ソフトウェアルーチンと、配分に従って、複数の資源デバイスの特定の資源デバイスに複数のグループの各実行可能プログラムをスケジューリングするためのスケジューリングソフトウェアルーチンと、を備える。
別の実施の形態では、コンピュータシステムは、整数区画問題(IPP)アルゴリズムを使用して、コンピュータシステムの複数の資源デバイス間における重みの配分を生成するための手段であって、これらの重みが、それぞれが実行可能プログラムの各グループに提供される複数の資源デバイスへのアクセス量を表す複数のシェアパラメータから生成され、この配分が、各グループについての資源デバイスのサブセット、及び、そのグループの実行可能プログラムをスケジューリングするための、サブセット内の各資源デバイスの比率を定義する、生成するための手段と、この配分に従って、グループの各実行可能プログラムを資源デバイスにスケジューリングするための手段と、を備える。
いくつかの代表的な実施の形態は、整数区画問題(IPP)アルゴリズムを使用して、シェアに基づくワークロードグループのオペレーションのスケジューリングを実行する。各グループには、そのグループに割り当てられたシステム資源の「シェア」を表すパラメータの値が与えられる。ソフトウェアモジュールは、IPPアルゴリズムを使用して各グループを1つ又は数個のプロセッサにマッピングする。具体的には、グループのシェアは「重み」に区分(separate)され、これらの重みは、各プロセッサに関連した重みがほぼ等しくなるようにプロセッサ(「ビン(bin)」)に配分される。
シェアの重みへの区分は、ワークロードのいくつかをサポートするのに使用される複数の「仮想プロセッサ」を考慮することができる。たとえば、或るグループに4つの仮想CPUが割り当てられ、各仮想CPUが物理CPUの約75パーセントの能力を有する場合、そのグループは、それぞれが75の4つの個々の重みを生成する。各CPUを100よりも多くのシェア又は少ないシェアでスケジューリングすることができるので、重みは、資源のパーセンテージに正確に対応するものではない。特定のCPUの実際のスケジューリングパーセンテージは、そのCPUで現在実行されているすべてのジョブの全重みを使用して求められる。
また、デフォルトのグループのシェアパラメータ又は最も低い優先順位のグループのシェアパラメータを複数の重みに区分することを可変に行って、プロセッサ間における重みの最適な配分を達成する確率を改善することができる。このデフォルトのグループは、具体的な重み又は優先順位を有しないすべての資源要求を保持するのに使用することができる。1つのインプリメンテーションでは、デフォルトのグループのすべてのメンバーは、他のグループにまだ割り当てられていない資源を均等に分け合う。
IPPアルゴリズムによって生成された配分は、各グループの物理CPUと、各グループがスケジューリング間隔内で受け取るそれらCPUの比率とのリストを提供する。これに加えて、各ジョブが受け取るプロセッサ時間の量が、ジョブスケジューリングパラメータを使用して追跡される。時間サンプリング間隔でより多くのプロセッサチックを累積したジョブは、自身のパラメータを減らす。平均のプロセッサチックよりも少ないプロセッサチックを累積したジョブは、自身のパラメータをインクリメントする。新たな各スケジューリング間隔時には、最も高いパラメータの値を有するジョブが、より多くのプロセッサチックをこれらのジョブに提供する利用可能な物理CPU(すなわち、全スケジューリング重みが最も低いCPU(複数可))に対して選択される。また、2つのCPUのスケジューリング重みが等しい場合、履歴に基づく最も低い使用量が、より良いCPUを選択するのに使用される。
次に図面を参照して、図1は、代表的な一実施の形態によるシステム100を示している。このシステム100は、プラットフォームのハードウェアレイヤ130に対する低レベルのアクセスを制御するホストオペレーティングシステム120を含む。一実施の形態では、ホストオペレーティングシステム120は、一例としてそのカーネル内に仮想化レイヤ121を含む。仮想化レイヤ121は、ハードウェアレイヤ130の物理資源に対応するソフトウェア構成(software constructs)(論理デバイス)を作成する。ハードウェアレイヤ130は、CPU131−1から131−N、メモリ132、ネットワークインターフェース133、入出力(I/O)インターフェース134等の任意の個数の物理資源を含むことができる。
一実施の形態では、仮想資源(たとえば、1又は数個の仮想CPU、仮想メモリ、仮想ネットワークインターフェースカード、仮想I/Oインターフェース等)が、各仮想マシン141に割り当てられる。仮想CPUの個数は、物理CPU131の個数を超えてもよい。各仮想マシン141は、自身に割り当てられた仮想資源に従ってオペレーティングシステム120上でプロセスとして実行される。CPUの仮想化は、各仮想マシン141がそれ自身のCPU又はそれ自身の1組のCPUで実行するように見えるよう行うことができる。CPUの仮想化は、各仮想CPUについて、1組のレジスタ、変換索引バッファ、及び他の制御構造体を設けることによって実施することができる。したがって、各仮想マシン141は、他の仮想マシン141から隔離される。これに加えて、各仮想マシン141は、各ゲストオペレーティングシステム142を実行するのに使用される。仮想マシン141に割り当てられた仮想資源は、ゲストオペレーティングシステム142には、物理サーバのハードウェア資源として見える。次に、ゲストオペレーティングシステム142は、1つ又は数個のアプリケーション143を実行するのに使用することができる。
スケジューリングルーチン125は、仮想マシン141に関連したどの実行可能なスレッドが各プロセッサ131で実行されるかを決定する。実行可能なスレッドには、保証された時間の比率で、各プロセッサ131で実行される機会が与えられる。この比率は、所与のスケジューリング間隔については、部分的に、実行可能なスレッドのグループに従って定義される。たとえば、各仮想マシン141をグループに割り当てることができ、シェア122は、さまざまなグループについて定義される。各シェアパラメータは、各グループの仮想マシン141が平均して受け取るべきプロセッサ「チック」の最小量を表す。
シェアは、仮想マシングループの現在の要求と組み合わせられて、重み付き資源要求に変換される。IPPアルゴリズム124は、これらの重みを使用して、各グループを1組の物理CPUにマッピングする。このマッピングは、(要素123に記憶された)配分と呼ばれる。各グループについて、このマッピングは、CPU、いくつのスレッドが各CPUで実行されるか、及び、時間の比率は何であるかのリストを含む。IPPアルゴリズム124によって生成された配分は、各CPUがサービス提供する全重みが可能な限り均一となるようにする。
所与のスケジューリング間隔内において、スケジューリングルーチン125は、各配分123及びスケジューリングパラメータ126を使用して、各グループ内のどの実行可能プログラムが各プロセッサ131で実行されるかを決定する。前述したように、選択された配分123は、各グループに利用可能な物理CPUを定義する。スケジューリングルーチン125は、スケジューリングパラメータ126を使用して、各グループからのどの特定のスレッドが、この間隔の間、そのリストのどのCPUで実行されるかを決定する。スケジューリングパラメータ126は、さまざまな実行可能プログラムが受け取ったプロセッサチックの受け取り履歴を示す。最も高いパラメータの値を有する実行可能プログラムが、最良の利用可能な物理CPUに対して選択される。スケジューリング間隔の完了時に、累積したプロセッサチックが平均プロセッサチックよりも少ない実行可能プログラムは、自身のパラメータをインクリメントし、平均よりも多くのプロセッサチックを累積した実行可能プログラムは、自身のパラメータを減らす。
仮想プロセッサに関連したマッピング及びスケジューリングが考察されたが、他の代表的な実施の形態は、あらゆる適切なマルチプロセッサコンピュータシステムのあらゆるタイプの実行可能プログラムをスケジューリングするのに使用することができる。これに加えて、マッピング及びスケジューリングは、コンピュータのタイムスライスされたあらゆるタイプの資源(たとえば、ネットワーク接続カード、ディスクI/Oチャネル、暗号化デバイス等)について行うことができる。
図2は、代表的な一実施の形態による、ソフトウェアジョブのグループのプロセッサへのマッピングを生成するためのフローチャートを示している。図2は、適切なコンピュータ可読媒体から取り出されたソフトウェアコード又はソフトウェア命令を使用して実施される。ステップ201では、複数のジョブをサポートする複数のグループが定義される。一実施の形態では、各ジョブは、各仮想マシンによってサポートされる。各仮想マシンは、1つ又は数個の仮想プロセッサを備える。ステップ202では、それらグループのシェアが定義される。これらのシェアは、各グループが平均して受け取る機会を有するプロセッサ資源の量を定義する。一実施の形態では、シェアは、100チックが1秒の時間内における単一の物理プロセッサの全能力を表す、プロセッサ「チック」を符号化する。いくつかの実施の形態では、他のグループに明示的に割り当てられていないチックのすべてを受け取る最も優先順位の低いグループ又はデフォルトのグループが定義される。たとえば、或るコンピュータシステムが6つのジョブ(A、B、C、D、及びE)をサポートし、2つのプロセッサ(200の全シェアが利用可能である)を有するものと仮定する。ジョブAは、「高い」優先順位のグループに割り当てられ、80のシェアを受け取る。ジョブBは、「中程度」の優先順位のグループに割り当てられ、45のシェアを受け取る。ジョブC、D、及びEは、デフォルトのグループに割り当てられ、このデフォルトのグループには、残りの75のシェアが割り当てられ、各グループは、平均して約25のシェアを受け取る。実行可能プログラムをグループに割り当てることによって、整数区画問題の組み合わせ複雑度が明らかに削減される。
ステップ203では、変数(N)が、(i)スケジューリングの目的のためにコンピュータシステムで利用可能な物理プロセッサの個数、及び、(ii)デフォルトのグループのアクティブなジョブの個数、のうちの最小値に等しくなるように設定される。
ステップ204では、グループのシェアパラメータが、異なる重みに区分される。いくつかの実施の形態では、デフォルトのグループのシェアパラメータは、N個の異なる等しい重み(又は、丸め誤差を考慮してほぼ等しい重み)に分割される。前の2つのプロセッサの例を使用すると、最初の繰り返しにおいて、デフォルトのグループのシェアパラメータ(75)は、37の第1の重み及び38の第2の重みに分割することができる。いくつかの実施の形態では、グループのシェアは、これに加えて、マルチスレッド化されたジョブを考慮した異なる重みに区分される。たとえば、ジョブAが、2つの仮想プロセッサを有する仮想マシンを使用して実施されるものと仮定する。高い優先度のグループの80のシェアは、2つの仮想プロセッサのスレッドをサポートするために、40の2つの重みに分割することができる。或るグループ(デフォルトのグループ以外)がマルチスレッド化されたジョブを含まない場合、そのグループには、そのシェアパラメータと等しい単一の重みが生成される。
ステップ205では、プロセッサ間での重みの配分を制限するための制約(constraints)が定義される。これらの制約は、あらかじめ定義された1組のルール又は条件に従って自動的に生成することができる。たとえば、マルチスレッド化されたジョブについて複数の資源要求の重みが生成される場合、これらの重みが同じプロセッサに割り当てられることを防止するための制約が定義される。また、特定のシステムについて、たとえば、高可用性アプリケーションに使用される冗長なソフトウェアモジュールを分離する(separate)ための制約を手動で定義することもできる。
ステップ206では、IPPアルゴリズムが使用されて、プロセッサ間における重みの最適なバランスを達成するように、プロセッサのリスト全体にわたって重みの配分が生成される。この生成された配分は、後の解析(ステップ210を参照)のために一時的に記憶される。「貪欲(greedy)」方法等の既知のIPPアルゴリズムを使用することができる。この貪欲方法では、すべての重みが割り当てられるまで、前に割り当てられた全重みが最も低い「ビン」に、残っている最も高い重みが割り当てられる。代替的に、「差分」方法を使用することもできる。この「差分」方法では、異なるサブセットの最大数を配置するとともに、それらの差分を新たな数として挿入することによって、割り当てが行われる。これらの数のすべてがこのようにして割り当てられた後、元の重みの配分が、後ろ向き再帰(backward recursion)によって求められる。IPPアルゴリズムのインプリメンテーションに関する詳細は、いくつかの出典から入手可能である。たとえば、IPPアルゴリズムの概要は、2002年12月14日のHaikun Zhu著の論文「On the Integer Partitioning Problem: Examples, Intuition and Beyond」に与えられている。
いくつかの実施の形態によれば、解は、まず、高速の貪欲方法を使用して計算される。この解が完全でない場合、N次元差分方法が使用され、最も高い正確度を有する解が選択される。プロセッサビンへの重みの配分は、各グループに利用可能なCPUの選択肢を決定する。CPUの全重みによって除算された、特定のジョブに関連した重みは、最終的に提供されるそのCPUの部分を決定する。特定のスレッドのCPUへの明示的なマッピングはこの段階では行われていないことに留意すべきである。その代わり、スレッドのグループのみが1組のCPUにマッピングされている。これに加えて、個々の配分が生成された後、その配分が妥当であるかどうか(たとえば、制約が満たされるかどうか)を判断するための論理比較(フローチャートには図示せず)が行われる。配分が妥当でない場合、その特定の配分のさらなる使用を省くことができる。代替的に、プロセッサビンへの重みの割り当て中に、IPPアルゴリズムのビン割り当てロジックの変更によって、制約に対処することができる。
ステップ207では、生成された配分が完全である(たとえば、各プロセッサに、計画された作業の同じ全重みが割り当てられている)かどうかを判断するための論理比較が行われる。生成された配分が完全である場合、生成された配分は記憶され、その配分は、その後のスケジューリングオペレーションで利用可能になる(ステップ211)。また、前に計算された完全でない配分は、完全な配分の生成時に消去することができる。
生成された配分が完全でない場合、プロセスフローは、ステップ208に進み、ステップ208において、変数Nが1に等しいかどうかを判断するための別の論理比較が行われる。変数Nが1に等しくない場合、プロセスフローはステップ209に進み、ステップ209において、Nがデクリメントされて、プロセスフローはステップ204に戻る。したがって、デフォルトのグループに関連した重みの個数は変更され、それらの重みの値は変更される。このように整数区画問題を変更して問題を再度解くことにより、配分の正確度を改善することができ、正確な配分を得る確率が増大する。
ステップ208の論理比較において、Nが1に等しい場合、プロセスフローはステップ210に進む。ステップ210では、記憶された配分が調べられて、M個の最良な配分(すなわち、各プロセッサに割り当てられた重み間の差分を最小にする配分)が特定される。ステップ211では、特定された配分が記憶されて、それらの配分がその後のスケジューリングオペレーションで利用可能になる。
いくつかの代表的な実施の形態では、図2のプロセスフローは、スケジューリングオペレーションの観点から、比較的低い頻度で実行される。具体的には、利用可能なプロセッサの個数が変化しない限り、又は、グループへのシェアの割り当てが変化しない限り、このプロセスフローの結果は変わらない。したがって、図2のプロセスフローは、大きなオーバーヘッドを課すことはなく、ワークロードの性能を低減させない。
図4は、代表的な一実施の形態による、図2のフローチャートに従って生成できる配分400を示している。或るシステムが8つのジョブ(A〜G)をサポートするものと仮定する。このシステムは、3つのプロセッサを含み、したがって、300のシェアが利用可能である(3*100)。また、ジョブAが80のシェア値を割り当てられ、2つの仮想プロセッサの仮想マシンに関連付けられるものと仮定する。さらに、ジョブB、C、及びDがそれぞれ60のシェア値を割り当てられるものと仮定する。ジョブA〜Dは、単一のジョブグループ(I〜IV)に割り当てられる。ジョブE〜Gは、デフォルトのグループ(グループV)に割り当てられる。このデフォルトのグループは、40のシェア値、すなわち、他のグループに割り当てられていないシェア量(300−80−60−60−60)を受け取る。ジョブAを含むグループIのシェア値は、2つの仮想プロセッサをサポートする2つの重みに分割される。これらの重みが同じ物理プロセッサに割り当てられることを防止するための制約も定義される。
これらの重み及び制約についてのIPP解法プロセスは、図4に示すような配分400という結果になる場合がある。グループIの第1の重みはプロセッサ1に割り当てられ、グループIの第2の重みはプロセッサ2に割り当てられる。グループIIの重み、グループIIIの重み、及びグループIVの重みは、それぞれ、プロセッサ1、2、及び3に割り当てられる。この場合、グループVのシェア値は、複数の重みに分割されず、グループVの単一の重みがプロセッサVに割り当てられる。次に、グループA〜Gの実行可能プログラムのスケジューリングが、配分400で特定されたプロセッサに行われる。
図3は、代表的な一実施の形態による、特定の物理CPUへの個々のジョブのスケジューリングを実行するためのフローチャートを示している。図3は、適切なコンピュータ可読媒体から取り出されたソフトウェアコード又はソフトウェア命令を使用して実施される。たとえば、システム割り込みに応答して呼び出された、オペレーティングシステムのスケジューリングソフトウェアルーチンを、図3のフローチャートを実施するのに使用することができる。
ステップ301では、ジョブスケジューリングパラメータが、ジョブによるプロセッサチックの受け取りに従って更新される。時間サンプリング間隔中に受け取るジョブがグループの平均よりも少ない場合、それらジョブのパラメータはインクリメントされる。受け取るジョブがグループの平均よりも少ない場合、それらジョブのパラメータはディクメントされる。アイドル状態にあるか、又は、要求の少ないジョブに関連したパラメータの値は、次第に0に減衰させることが可能な場合がある。
ステップ302では、グループの1つ又は複数の誤差が計算される(もしあれば)。ステップ303では、累積したあらゆるグループの誤差を補正する配分が選択される。具体的には、正確な配分が特定されなかったことから、複数の配分が生成されている場合、プロセスフローのさまざまな繰り返しにおいて、配分を交互に行う(alternation)ことができる。たとえば、配分Aがグループ1に有利であり、配分Bがグループ2に有利である場合、それら2つの配分を交互に行うことによって、より正確な方法でジョブ間のスケジューリングを行うことが可能になる。正確な配分が特定された場合、その正確な配分が使用される。
ステップ304では、各グループのジョブが、選択された配分に従い、且つ、各ジョブスケジューリングパラメータを使用してスケジューリングされる。具体的には、各グループについて、そのグループのジョブが、それらジョブの各ジョブスケジューリングパラメータによって順序付けられる。配分によって定義されたそのグループのCPUのリストが「望ましさ」によって順序付けられる。具体的には、全スケジューリング重みの低いCPUほど、より大きな望ましさを所有する。その理由は、このようなCPUの処理能力は、異なるグループの実行可能プログラム用に比較的大きなセグメント又は部分に分割されるからである。複数のCPUの全スケジューリング重みが等しい場合、CPUの履歴に基づく使用量を使用して、相対的な望ましさを求めることができる。具体的には、或るCPUが、履歴に基づく使用量が少ないことを示している場合、或るジョブが、当該ジョブにスケジューリングされた処理能力の部分を使用しない確率は高くなり、このような能力は別のジョブが使用することができる。
IPPアルゴリズムを使用して実行可能プログラムのグループをプロセッサへマッピングすること、及び、実行可能プログラムによる処理資源の受け取りを監視することによって、各グループ内の各ジョブは、同じ量のプロセッサ能力を経験することが可能になる。したがって、いくつかの代表的な実施の形態は、他の既知のマルチプロセッサスケジューリングアルゴリズムよりもはるかに「公平な」スケジューリングアルゴリズムを提供する。これに加えて、不完全な配分及び要求が少ないジョブは、限られた個数の間隔の間しかジョブに影響を与えない。具体的には、ジョブスケジューリングパラメータを使用して個々のジョブを特定のプロセッサにマッピングすることによって、このような問題を、ジョブのサブセットの損害につながる、スケジューリングオペレーションの恒久的なゆがみから防止する。グループ間の不完全性は、IPPアルゴリズムによって生成された複数の配分を交互に繰り返すことを使用して対処することができる。これに加えて、グループマッピングを実行可能プログラムの割り当てから分離することによって、いくつかの代表的な実施の形態が課すオーバーヘッドは比較的低くなり、それによって、アプリケーションからスケジューリングオペレーションへのプロセッサ資源の転換が省かれる。
代表的な一実施の形態による、複数の物理プロセッサに仮想プロセッサをスケジューリングするシステムを示す図である。 代表的な一実施の形態による、1組のCPUに実行可能プログラムの各グループをマッピングする1つ又は数個の配分を生成して、スケジューリングオペレーションをサポートするIPPアルゴリズムを含むフローチャートである。 代表的な一実施の形態による、特定の物理CPUへの個々のジョブのスケジューリングを行うためのフローチャートである。 実行可能プログラムのグループと複数のプロセッサとの間のマッピングを定義する配分を示す図である。
符号の説明
120・・・ホストOS
121・・・仮想化レイヤ
122・・・シェア
123・・・1組の配分
124・・・IPPアルゴリズム
125・・・スケジューリングルーチン
126・・・スケジューリング履歴性能パラメータ
130・・・ハードウェアレイヤ
132・・・メモリ
133・・・ネットワークインターフェース
134・・・I/Oインターフェース
143・・・アプリケーション

Claims (8)

  1. 複数のプロセッサ(131)と、
    実行可能プログラムの複数のグループ(143)であって、各グループ(143)について、前記グループ(143)の実行可能プログラムをサポートするプロセッサ資源の量を表す各シェアパラメータ(122)が定義される、実行可能プログラムの複数のグループ(143)と、
    前記シェアパラメータ(122)を使用して複数の重みを配分し、前記複数のプロセッサ(131)間における前記重みの配分を生成するソフトウェアルーチン(124)であって、前記配分が、各グループ(143)についてのプロセッサのサブセットと、前記グループ(143)の実行可能プログラムとをスケジューリングするための、前記サブセット内の各プロセッサの比率を定義するソフトウェアルーチン(124)と、
    前記配分に従ったスケジューリング間隔の期間中に、前記複数のグループ(143)の各実行可能プログラムを前記複数のプロセッサ(131)の特定のプロセッサにスケジューリングするためのスケジューリングソフトウェアルーチン(125)と
    を備え
    前記ソフトウェアルーチン(124)は、
    複数の整数区画問題(IPP;integer partition problem)アルゴリズムを使用して、前記複数のグループ(143)の少なくとも1つに割り当てられるシェアパラメータ(122)から生成された重みの個数を変化させることによって複数の配分を生成し、生成された前記複数の配分をスケジューリングに使用する
    コンピュータシステム。
  2. 前記可変の個数の重みは、
    デフォルトのグループに割り当てられるシェアパラメータ(122)から生成される
    請求項に記載のコンピュータシステム。
  3. 前記スケジューリングソフトウェアルーチン(125)は、
    前記複数のグループ(143)の間のスケジューリングの相違を補償するように前記複数の配分を交互に行う
    請求項に記載のコンピュータシステム。
  4. 前記複数のグループ(143)の実行可能プログラムのスケジューリングパラメータを保持するためのソフトウェアルーチンであって、各スケジューリングパラメータが、グループの平均に関連した(relate)、各実行可能プログラムが受け取るプロセッサ資源の量を示すソフトウェアルーチン
    をさらに備える
    請求項1に記載のコンピュータシステム。
  5. 前記スケジューリングソフトウェアルーチン(125)は、
    前記スケジューリングパラメータの値に従って、前記複数のグループ(143)の実行可能プログラムのサブセットを、割り当て期間内にプロセッサ資源を受け取る付加的な機会を実行可能プログラムの前記サブセットに提供する1つ又は数個のプロセッサに割り当てる
    請求項に記載のコンピュータシステム。
  6. 複数のグループの実行可能プログラムをスケジューリングするためのプロセッサ資源の量を表す複数のシェアパラメータを定義すること(202)と、
    前記複数のシェアパラメータを使用して、整数区画問題(IPP;integer partition problem)に従い複数の重みを生成すること(204)と、
    複数のIPPアルゴリズムを使用して、前記重みの個数を変化させることによって、複数のプロセッサ間における前記重みの配分を複数決定すること(206〜210)と、
    前記複数の配分を使用して、前記複数のプロセッサにグループの実行可能プログラムをスケジューリングすること(304)と
    を含む方法。
  7. 前記複数のグループの実行可能プログラムのスケジューリングパラメータを保持することであって、各スケジューリングパラメータが、グループの平均に関連した、各実行可能プログラムが受け取るプロセッサ資源の量を示すこと
    をさらに含む請求項に記載の方法。
  8. 前記スケジューリングすることは、
    1つ又は数個のプロセッサについて、前記スケジューリングパラメータの値に従って実行可能プログラムを選択することであって、前記1つ又は数個のプロセッサが、前記選択された実行可能プログラムに、スケジューリング間隔内でプロセッサ資源を受け取る付加的な機会を提供すること
    を含む請求項に記載の方法。
JP2006039467A 2005-02-28 2006-02-16 実行可能プログラムをスケジューリングするためのシステム及び方法 Expired - Fee Related JP4185103B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/067,852 US20060195845A1 (en) 2005-02-28 2005-02-28 System and method for scheduling executables

Publications (2)

Publication Number Publication Date
JP2006244479A JP2006244479A (ja) 2006-09-14
JP4185103B2 true JP4185103B2 (ja) 2008-11-26

Family

ID=36848286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006039467A Expired - Fee Related JP4185103B2 (ja) 2005-02-28 2006-02-16 実行可能プログラムをスケジューリングするためのシステム及び方法

Country Status (3)

Country Link
US (1) US20060195845A1 (ja)
JP (1) JP4185103B2 (ja)
DE (1) DE102006004838A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111732455B (zh) * 2020-06-30 2022-05-31 苏州蓝晶研材料科技有限公司 一种双锡层陶瓷导电材料及其制备方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214836B1 (en) 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US7984447B1 (en) * 2005-05-13 2011-07-19 Oracle America, Inc. Method and apparatus for balancing project shares within job assignment and scheduling
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US20070061813A1 (en) * 2005-08-30 2007-03-15 Mcdata Corporation Distributed embedded software for a switch
US8286170B2 (en) * 2007-01-31 2012-10-09 International Business Machines Corporation System and method for processor thread allocation using delay-costs
US8087028B2 (en) * 2007-03-07 2011-12-27 Microsoft Corporation Computing device resource scheduling
US8046766B2 (en) 2007-04-26 2011-10-25 Hewlett-Packard Development Company, L.P. Process assignment to physical processors using minimum and maximum processor shares
US20090077550A1 (en) * 2007-09-13 2009-03-19 Scott Rhine Virtual machine schedular with memory access control
US8291424B2 (en) * 2007-11-27 2012-10-16 International Business Machines Corporation Method and system of managing resources for on-demand computing
US8245234B2 (en) * 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
US11093235B2 (en) 2015-06-05 2021-08-17 Shell Oil Company System and method for replacing a live control/estimation application with a staged application
CN109074304A (zh) * 2016-02-16 2018-12-21 泰克年研究发展基金会公司 优化的数据分布系统
US11282027B2 (en) 2019-04-26 2022-03-22 Walmart Apollo, Llc System and method of delivery assignment
US20200342387A1 (en) * 2019-04-29 2020-10-29 Walmart Apollo, Llc System and method of driver matching and dispatch

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
CA2077061C (en) * 1991-11-22 1998-04-21 Mark J. Baugher Scheduling system for distributed multimedia resources
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5623404A (en) * 1994-03-18 1997-04-22 Minnesota Mining And Manufacturing Company System and method for producing schedules of resource requests having uncertain durations
US5768389A (en) * 1995-06-21 1998-06-16 Nippon Telegraph And Telephone Corporation Method and system for generation and management of secret key of public key cryptosystem
US6373846B1 (en) * 1996-03-07 2002-04-16 Lsi Logic Corporation Single chip networking device with enhanced memory access co-processor
US5961585A (en) * 1997-01-07 1999-10-05 Apple Computer, Inc. Real time architecture for computer system
US5948065A (en) * 1997-03-28 1999-09-07 International Business Machines Corporation System for managing processor resources in a multisystem environment in order to provide smooth real-time data streams while enabling other types of applications to be processed concurrently
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
GB2332289A (en) * 1997-12-11 1999-06-16 Ibm Handling processor-intensive data processing operations
US6345240B1 (en) * 1998-08-24 2002-02-05 Agere Systems Guardian Corp. Device and method for parallel simulation task generation and distribution
US6295602B1 (en) * 1998-12-30 2001-09-25 Spyrus, Inc. Event-driven serialization of access to shared resources
US6393012B1 (en) * 1999-01-13 2002-05-21 Qualcomm Inc. System for allocating resources in a communication system
US6438704B1 (en) * 1999-03-25 2002-08-20 International Business Machines Corporation System and method for scheduling use of system resources among a plurality of limited users
US6448732B1 (en) * 1999-08-10 2002-09-10 Pacific Steamex Cleaning Systems, Inc. Dual mode portable suction cleaner
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
US6868447B1 (en) * 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
EP1182550A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Task based priority arbitration
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US6535238B1 (en) * 2001-10-23 2003-03-18 International Business Machines Corporation Method and apparatus for automatically scaling processor resource usage during video conferencing
US7174354B2 (en) * 2002-07-31 2007-02-06 Bea Systems, Inc. System and method for garbage collection in a computer system, which uses reinforcement learning to adjust the allocation of memory space, calculate a reward, and use the reward to determine further actions to be taken on the memory space
US7437446B2 (en) * 2002-09-30 2008-10-14 Electronic Data Systems Corporation Reporting of abnormal computer resource utilization data
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US7178062B1 (en) * 2003-03-12 2007-02-13 Sun Microsystems, Inc. Methods and apparatus for executing code while avoiding interference
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US20060095690A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method, and storage medium for shared key index space for memory regions
US7689993B2 (en) * 2004-12-04 2010-03-30 International Business Machines Corporation Assigning tasks to processors based at least on resident set sizes of the tasks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111732455B (zh) * 2020-06-30 2022-05-31 苏州蓝晶研材料科技有限公司 一种双锡层陶瓷导电材料及其制备方法

Also Published As

Publication number Publication date
DE102006004838A1 (de) 2006-09-07
US20060195845A1 (en) 2006-08-31
JP2006244479A (ja) 2006-09-14

Similar Documents

Publication Publication Date Title
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
US11243805B2 (en) Job distribution within a grid environment using clusters of execution hosts
KR101626378B1 (ko) 병렬도를 고려한 병렬 처리 장치 및 방법
US20050081208A1 (en) Framework for pluggable schedulers
US8332862B2 (en) Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
WO2018120991A1 (zh) 一种资源调度方法及装置
US20030056091A1 (en) Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
Chen et al. Adaptive multiple-workflow scheduling with task rearrangement
US8082546B2 (en) Job scheduling to maximize use of reusable resources and minimize resource deallocation
US7920282B2 (en) Job preempt set generation for resource management
Raj et al. Enhancement of hadoop clusters with virtualization using the capacity scheduler
Muthuvelu et al. On-line task granularity adaptation for dynamic grid applications
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
Moulik et al. COST: A cluster-oriented scheduling technique for heterogeneous multi-cores
JP4121525B2 (ja) リソース利用率を制御する方法およびコンピュータシステム
CN114489807A (zh) 在计算节点上分配对作业的处理
Sodan Loosely coordinated coscheduling in the context of other approaches for dynamic job scheduling: a survey
Lu et al. Overhead aware task scheduling for cloud container services
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
Nickolay et al. Towards accommodating real-time jobs on HPC platforms
GB2485019A (en) Assigning cores to applications based on the number of cores requested by the application
Ahmad et al. A novel dynamic priority based job scheduling approach for cloud environment
KR101639947B1 (ko) 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체
Massa et al. Heterogeneous quasi-partitioned scheduling
EP1630671A1 (en) Framework for pluggable schedulers

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070627

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070926

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080811

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080904

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350