JP3901112B2 - Gang scheduling method - Google Patents

Gang scheduling method Download PDF

Info

Publication number
JP3901112B2
JP3901112B2 JP2003060469A JP2003060469A JP3901112B2 JP 3901112 B2 JP3901112 B2 JP 3901112B2 JP 2003060469 A JP2003060469 A JP 2003060469A JP 2003060469 A JP2003060469 A JP 2003060469A JP 3901112 B2 JP3901112 B2 JP 3901112B2
Authority
JP
Japan
Prior art keywords
parallel program
cpu
gang
cpus
gang scheduling
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
JP2003060469A
Other languages
Japanese (ja)
Other versions
JP2004272466A (en
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2003060469A priority Critical patent/JP3901112B2/en
Publication of JP2004272466A publication Critical patent/JP2004272466A/en
Application granted granted Critical
Publication of JP3901112B2 publication Critical patent/JP3901112B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ギャングスケジューリング機能(並列プログラムをスケジュールするとき、必要とする数のCPUを同時に割り当てる機能)を有するコンピュータシステムにおけるギャングスケジューリング方式に関する。
【0002】
【従来の技術】
スーパーコンピュータ等を用いた数値シミュレーションでは、並列プログラムで並列処理を行うのが一般的である。
【0003】
並列プログラムでは、複数の処理が複数のCPU(Central Processing Unit)に振り分けられて処理が行われる。なお、本明細書では、並列プログラムにおいて複数のCPUに振り分けられた複数の処理を構成する個々の処理を「振り分け処理」と呼ぶ。
【0004】
このような並列プログラムでは、全ての振り分け処理の完了を待ち合わせることがあり、もしも多重に並列プログラムが実行されること等によってCPUの奪い合いが起こると、振り分け処理の完了の待ち合わせによって無駄な時間が生じ、ユーザのCPU使用時間であるユーザタイムが延びてしまうことがある。大学や研究機関等で用いられるユーザタイムに応じた料金を徴収する管理システムでは、この無駄なユーザタイムの延びが大きな問題となる。
【0005】
上記のような問題を解決するために用いられる技術が、ギャングスケジューリングである。ギャングスケジューリングは、並列プログラムに対して使用する複数のCPUを必ず同時に割り当てる方法を提供する。これにより、多重に並列プログラムが実行されても、単独で実行されるときと同じ効率で、各並列プログラムを実行できるようになり、「無駄なユーザタイムの延び」という上記の問題は解消する。
【0006】
このようなギャングスケジューリング機能を実現するための従来のギャングスケジューリング方式(ギャングスケジューリングの実装手法)では、全ての並列プログラムを対象としてギャングスケジューリングが行われていた。すなわち、全ての並列プログラムに対して、定期的にギャングスケジューラがCPUを割り当てるべき並列プログラムを決定し、決定された並列プログラムにカーネルスケジューラが設定CPU数を超えないCPU数の使用を保証していた。
【0007】
この従来技術は、一定期間毎に並列プログラムに対して設定されたCPU数の使用が保証されるため、多重に並列プログラムが実行されても、必要なCPU数が確保されないために起きるユーザタイムの延びが起きずに並列プログラムを効率良く実行でき、また一定期間毎にギャングスケジューラを起動するためギャングスケジューリングによるオーバヘッドが少ないという特徴がある(例えば、非特許文献1参照)。
【0008】
【非特許文献1】
Koji SUZUKI and Kentaro YABUKI, "Design and Implemention
of Gang Scheduler on Multi-Node SX-4 and SX-5 Supercomputer Systems", NEC
Res. & Develop., 39, 4, pp. 396-401, 1998
【0009】
【発明が解決しようとする課題】
上述した従来技術(従来のギャングスケジューリング方式)では、上記のように、全ての並列プログラムがギャングスケジューリングの対象となっていたので、次のような問題点があった。
【0010】
すなわち、その問題点とは、複数のCPUを同時に割り当てるべきでない(割り当てる必要のない)並列プログラムに対しても、ギャングスケジューリングを行ってしまうことである。そして、そのような並列プログラムが一定期間毎にギャングスケジューリングの対象になることにより、その並列プログラムが本来望まない動作を行うこととなったり、またそのことが複数のCPUを同時に割り当てるべき並列プログラムに対しても悪影響を及ぼすこととなっていた。
【0011】
ここで、一般的に、複数のCPUを同時に割り当てるべき並列プログラムは、同等の処理を複数のCPUに振り分けて並列処理を行う並列プログラムであり、当該並列プログラム内の各振り分け処理の使用CPU時間がほぼ等しくなるという特性を持つ。それに対し、一般的に、複数のCPUを同時に割り当てるべきでない(割り当てる必要のない)並列プログラムは、処理の都合上異なる処理を複数のCPUに振り分けた並列プログラムであり、当該並列プログラム内の各振り分け処理の使用CPU時間に差が生じるという特性を持つ。
【0012】
本発明の目的は、上述の点に鑑み、「複数のCPUを同時に割り当てるべき並列プログラムでは各振り分け処理の使用CPU時間がほぼ等しくなるのに対し、複数のCPUを同時に割り当てるべきでない(割り当てる必要のない)並列プログラムでは各振り分け処理の使用CPU時間に差が生じる」という一般的な特性を利用し、各並列プログラムにおける各振り分け処理の使用CPU時間を比較することによって複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない並列プログラムとを区別する機能をギャングスケジューラに追加し、従来技術におけるギャングスケジューラの上記の問題点(複数のCPUを同時に割り当てるべきでない並列プログラムが本来望まない動作を行うこととなったり、そのことが複数のCPUを同時に割り当てるべき並列プログラムにも悪影響を及ぼすこととなったりするという問題点)を改善(解消)することができるギャングスケジューリング方式(全ての並列プログラムの中からギャングスケジューリングの対象とする並列プログラムを選別して決定する機能を含むギャングスケジューリング方式)を提供することにある。
【0013】
【課題を解決するための手段】
本発明のギャングスケジューリング方式は、ギャングスケジューリング機能を有するコンピュータシステムにおいて、当該コンピュータシステムで実行される各並列プログラムに対応する設定CPU数を格納する設定CPU数格納部と、各並列プログラムの各振り分け処理の使用CPU時間の比較によりギャングスケジューリング対象の並列プログラムを決定する際に用いられるギャングスケジューリング対象決定閾値を格納するギャングスケジューリング対象決定閾値格納部と、一定期間毎に、各並列プログラムの各振り分け処理の使用CPU時間を監視し、その監視結果を示す情報をギャングスケジューラに渡す機能を持つカーネルスケジューラ内の使用CPU時間監視手段と、一定期間毎に、前記使用CPU時間監視手段から渡された各並列プログラムの各振り分け処理のCPU使用時間の参照・比較を行い、各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差の大小を表す値とギャングスケジューリング対象決定閾値との比較を行い、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差が当該ギャングスケジューリング対象決定閾値で示される基準よりも小さい各並列プログラムだけをギャングスケジューリング対象にすると決定する機能を持つギャングスケジューラ内のギャングスケジューリング対象決定手段と、前記ギャングスケジューリング対象決定手段で決定されたギャングスケジューリング対象並列プログラム群(ギャングスケジューリング対象にすると決定された並列プログラム群)の中から次回実行並列プログラムを決定し、その決定結果をカーネルスケジューラに渡す機能を持つギャングスケジューラ内の次回実行並列プログラム決定手段と、前記次回実行並列プログラム決定手段で決定された次回実行並列プログラムに対して、前記設定CPU数格納部に格納されている当該次回実行並列プログラムに対応する設定CPU数で示される数のCPUを同時に割り当てることが保証されるように調整を行う機能を持つカーネルスケジューラ内のCPU割り当て決定手段と、各並列プログラムに対して当該各並列プログラムに対する設定CPU数を超える数のCPUを与えないようにするための管理(割り当て時の管理とともに割り当て後の管理も含む)を行う機能を持つカーネルスケジューラ内のCPU割り当て数監視手段とを有する。
【0014】
また、本発明のギャングスケジューリング方式は、上記の各構成要素に加えて、ギャングスケジューリング対象決定閾値格納部内のギャングスケジューリング対象決定閾値の変更(ユーザからの指示等に基づくコンピュータシステムの動作・運用状況等に応じた動的/静的な変更)を行う閾値変更手段を有するように構成することも可能である。
【0015】
なお、本発明のギャングスケジューリング方式は、より一般的には、ギャングスケジューリング機能を有するコンピュータシステムにおいて、「複数のCPUを同時に割り当てるべき並列プログラムでは各振り分け処理の使用CPU時間がほぼ等しくなるのに対し、複数のCPUを同時に割り当てるべきでない(割り当てる必要のない)並列プログラムでは各振り分け処理の使用CPU時間に差が生じる」という一般的な特性を利用し、各並列プログラムにおける各振り分け処理の使用CPU時間を比較することによって複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない並列プログラムとを区別する機能を備え、複数のCPUを同時に割り当てるべきでない並列プログラムをギャングスケジューリングの対象とはしないように制御した上で、次回実行並列プログラム(ギャングスケジューリングにおける次回のCPU割り当て時にCPU割り当ての対象とすべき並列プログラム)を決定するギャングスケジューラと、各並列プログラムの各振り分け処理の使用CPU時間を監視してその監視結果を前記ギャングスケジューラに通知し、前記ギャングスケジューラにより決定された次回実行並列プログラムへのCPUの割り当てに関する管理を行うカーネルスケジューラとを有すると表現することができる。
【0016】
さらに、本発明は、ギャングスケジューリング機能を有するコンピュータシステムを、「複数のCPUを同時に割り当てるべき並列プログラムでは各振り分け処理の使用CPU時間がほぼ等しくなるのに対し、複数のCPUを同時に割り当てるべきでない並列プログラムでは各振り分け処理の使用CPU時間に差が生じる」という一般的な特性を利用し、各並列プログラムにおける各振り分け処理の使用CPU時間を比較することによって複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない並列プログラムとを区別する機能を備え、複数のCPUを同時に割り当てるべきでない並列プログラムをギャングスケジューリングの対象とはしないように制御した上で、次回実行並列プログラムを決定するギャングスケジューラ,および各並列プログラムの各振り分け処理の使用CPU時間を監視してその監視結果を前記ギャングスケジューラに通知し、前記ギャングスケジューラにより決定された次回実行並列プログラムへのCPUの割り当てに関する管理を行うカーネルスケジューラとして機能させるためのプログラムの態様で実現することも可能である。
【0017】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【0018】
(1) 第1の実施の形態
【0019】
図1は、本発明の第1の実施の形態に係るギャングスケジューリング方式の構成を示すブロック図である。
【0020】
図1を参照すると、本実施の形態に係るギャングスケジューリング方式は、CPUの割り当てを管理する機能を持つカーネルスケジューラ10と、ギャングスケジューリングを管理する機能を持つギャングスケジューラ20と、設定CPU数格納部30と、ギャングスケジューリング対象決定閾値格納部40とを含んで構成されている。
【0021】
カーネルスケジューラ10は、使用CPU時間監視手段11と、CPU割り当て決定手段12と、CPU割り当て数監視手段13とを含んで構成されている。
【0022】
ギャングスケジューラ20は、ギャングスケジューリング対象決定手段21と、次回実行並列プログラム決定手段22とを含んで構成されている。
【0023】
設定CPU数格納部30内には、各並列プログラムに対応する設定CPU数が格納されている。各並列プログラムに対応する設定CPU数は、当該各並列プログラムの属性として設定されている値であり、当該各並列プログラムの実行に必要なCPUの数を示す情報である。
【0024】
ギャングスケジューリング対象決定閾値格納部40内のギャングスケジューリング対象決定閾値は、各並列プログラムの各振り分け処理(先述のように、「並列プログラムにおいて複数のCPUに振り分けられた複数の処理を構成する個々の処理」を意味する)の使用CPU時間の比較によりギャングスケジューリング対象の並列プログラムを決定する際に用いられる閾値である。
【0025】
ギャングスケジューラ20内のギャングスケジューリング対象決定手段21は、一定期間(例えば、1秒)毎に、カーネルスケジューラ10から渡された各並列プログラムの各振り分け処理の使用CPU時間の参照・比較を行う。そして、各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間(最大使用CPU時間)と使用CPU時間の最も小さい振り分け処理の使用CPU時間(最小使用CPU時間)との差の大小を表す値と所定の閾値(本実施の形態では、ギャングスケジューリング対象決定閾値)との比較を行い、最大使用CPU時間と最小使用CPU時間との差が当該閾値で示される基準よりも小さい各並列プログラムだけをギャングスケジューリング対象にすると決定し、その決定結果を次回実行並列プログラム決定手段22やカーネルスケジューラ10に渡す機能を持つ。
【0026】
具体的には、ある並列プログラムについて、最大使用CPU時間(MAXと表記する)と最小使用CPU時間(MINと表記する)との差とMAXとの比率R(R=(MAX−MIN)/MAX=1−MIN/MAX)がギャングスケジューリング対象決定閾値以下または未満(以下にするか未満にするかはシステム設定によって任意である。本実施の形態では「以下」とする)の場合にはその並列プログラムをギャングスケジューリングの対象にし、そうでない場合にはその並列プログラムをギャングスケジューリングの対象にしないという決定を行う。なお、上記の比率R(後述のように、「ギャングスケジューリング対象判別比率」と呼ぶ)の計算式が採用される場合には、ギャングスケジューリング対象決定閾値は0〜1(100%)の値をとる。
【0027】
ギャングスケジューラ20内の次回実行並列プログラム決定手段22は、ギャングスケジューリング対象決定手段21で決定されたギャングスケジューリング対象並列プログラム群(ギャングスケジューリング対象にすると決定された並列プログラム群)の中から、次回に実行するべき並列プログラム(次回実行並列プログラム)を決定し(この決定手法は従来技術と同様である)、その決定結果をカーネルスケジューラ10に渡す機能を持つ。
【0028】
カーネルスケジューラ10内の使用CPU時間監視手段11は、一定期間毎に、各並列プログラムの各振り分け処理の使用CPU時間を監視し、その監視結果を示す情報(各並列プログラムの各振り分け処理の使用CPU時間)をギャングスケジューラ20に渡す機能を持つ。
【0029】
カーネルスケジューラ10内のCPU割り当て決定手段12は、ギャングスケジューラ20で決定された次回実行並列プログラムに対して、設定CPU数格納部30に格納されている当該次回実行並列プログラムに対応する設定CPU数で示される数のCPUを同時に割り当てることが保証されるように調整を行う機能を持つ。
【0030】
カーネルスケジューラ10内のCPU割り当て数監視手段13は、各並列プログラムに対して当該各並列プログラムに対する設定CPU数を超える数のCPUを与えないようにするための管理(割り当て時の管理とともに割り当て後の管理も含む)を行う機能を持つ。
【0031】
なお、CPU割り当て決定手段12およびCPU割り当て数監視手段13によるCPUの割り当てに関する処理は、従来技術における処理と同様のものである。
【0032】
図2は、本実施の形態に係るギャングスケジューリング方式における使用CPU時間監視処理を示す流れ図である。この処理は、使用CPU時間監視ステップA1と、監視結果引き渡しステップA2とからなる。
【0033】
図3は、本実施の形態に係るギャングスケジューリング方式におけるギャングスケジューリング処理を示す流れ図である。この処理は、使用CPU時間参照・比較ステップB1と、振り分け処理抽出ステップB2と、ギャングスケジューリング対象判別比率算出ステップB3と、ギャングスケジューリング対象判別比率大小判定ステップB4と、ギャングスケジューリング対象決定ステップB5と、ギャングスケジューリング非対象決定ステップB6と、全並列プログラム処理終了判定ステップB7と、次回実行並列プログラム決定ステップB8とからなる。
【0034】
次に、図1〜図3を参照して、上記のように構成された本実施の形態に係るギャングスケジューリング方式の動作について詳細に説明する。
【0035】
第1に、カーネルスケジューラ10における使用CPU時間監視処理時の動作について説明する(図2参照)。
【0036】
カーネルスケジューラ10は、常に、CPUの割り当てを管理している。
【0037】
その管理の一環として、カーネルスケジューラ10内の使用CPU時間監視手段11は、各並列プログラムの各振り分け処理の使用CPU時間を監視し(ステップA1)、その監視結果を示す情報(各並列プログラムの各振り分け処理の使用CPU時間を示す情報)をギャングスケジューラ20に渡す(ステップA2)。使用CPU時間監視手段11は、上記の処理を、一定期間毎に(例えば、1秒毎に)、繰り返す。
【0038】
第2に、ギャングスケジューラ20におけるギャングスケジューリング処理時の動作について説明する(図3参照)。なお、この動作(処理)は、使用CPU時間監視手段11における監視間隔である上記の一定期間(例えば、1秒)毎に行われる。
【0039】
ギャングスケジューラ20内のギャングスケジューリング対象決定手段21は、カーネルスケジューラ10から渡された各並列プログラムの各振り分け処理の使用CPU時間の参照・比較を行う(ステップB1)。
【0040】
ギャングスケジューリング対象決定手段21は、ステップB1の参照・比較に基づき、全ての並列プログラムの各々について順次、以下のステップB2〜ステップB6の処理を行う。
【0041】
まず、当該並列プログラムについて、使用CPU時間の最も大きい振り分け処理と使用CPU時間の最も小さい振り分け処理とを抽出する(ステップB2)。
【0042】
次に、当該並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間(最大使用CPU時間。MAXと表記する)と使用CPU時間の最も小さい振り分け処理の使用CPU時間(最小使用CPU時間。MINと表記する)との差とMAXとの比率R(R=1−MIN/MAXという値)を算出する(ステップB3)。なお、上記のようにして算出される比率Rをギャングスケジューリング対象判別比率と呼ぶ。
【0043】
さらに、ステップB3で算出したギャングスケジューリング対象判別比率がギャングスケジューリング対象決定閾値格納部40内のギャングスケジューリング対象決定閾値以下であるか否か(先に述べたように、「以下であるか否か」の代わりに「未満であるか否か」としてもよい)を判定する(ステップB4)。
【0044】
ステップB4で「ギャングスケジューリング対象判別比率がギャングスケジューリング対象決定閾値以下である」と判定した場合には、その並列プログラムをギャングスケジューリング対象にするという決定を行い、その決定結果(その並列プログラムがギャングスケジューリング対象並列プログラムである旨)を次回実行並列プログラム決定手段22に渡す(ステップB5)。
【0045】
一方、ステップB4で「ギャングスケジューリング対象判別比率がギャングスケジューリング対象決定閾値以下ではない」と判定した場合には、その並列プログラムをギャングスケジューリング対象にしないという決定を行い、その決定結果をカーネルスケジューラ10に渡す(ステップB6)。
【0046】
ギャングスケジューリング対象決定手段21は、以上のステップB2〜ステップB6の処理の後に、全ての並列プログラム(カーネルスケジューラ10による使用CPU時間の監視対象の全並列プログラム)に対するステップB2〜ステップB6の処理が終了したか否かを判定する(ステップB7)。
【0047】
ギャングスケジューリング対象決定手段21は、ステップB7で「全ての並列プログラムに対してはステップB2〜ステップB6の処理はまだ終了していない」と判定した場合には、次の並列プログラム(未処理の並列プログラムの1つ)について、ステップB2〜ステップB6の処理を繰り返す。一方、ステップB7で「全ての並列プログラムに対するステップB2〜ステップB6の処理が終了した」と判定した場合には、次回実行並列プログラム決定手段22に制御を渡す。
【0048】
ギャングスケジューラ20内の次回実行並列プログラム決定手段22は、ギャングスケジューリング対象決定手段21から制御を渡されると、ギャングスケジューリング対象決定手段21で決定されたギャングスケジューリング対象並列プログラム群の中から、従来技術と同様の決定アルゴリズムによって、次回のCPU割り当て時(ギャングスケジューリングによるCPUの割り当て時)にCPU割り当ての対象とすべき並列プログラムである次回実行並列プログラムを決定し、その決定結果をカーネルスケジューラ10に渡す(ステップB8)。
【0049】
第3に、カーネルスケジューラ10におけるCPU割り当て処理時の動作について説明する。
【0050】
カーネルスケジューラ10内のCPU割り当て決定手段12は、図3のステップB8でギャングスケジューラ20から渡された決定結果(次回実行並列プログラムを示す情報)を用いて、ギャングスケジューリングにおける次回のCPU割り当て時にCPU割り当ての対象とすべき並列プログラム(すなわち、次回実行並列プログラム)に対して、当該並列プログラムに対する設定CPU数(設定CPU数格納部30に格納されている当該並列プログラムに対応する設定CPU数)で示される数のCPUを同時に割り当てることが保証されるように調整を行う。
【0051】
同時に、カーネルスケジューラ10内のCPU割り当て数監視手段13は、当該並列プログラム(次回実行並列プログラム)に対して、当該設定CPU数を超える数のCPUを割り当てないようにするための管理を行う。また、CPU割り当て数監視手段13は、このCPU割り当て時の後も、当該並列プログラムに当該設定CPU数を超える数のCPUを与えないようにするための管理を行う。
【0052】
なお、カーネルスケジューラ10は、ギャングスケジューラ20によってギャングスケジューリングの対象としないと決定された並列プログラム群(図3のステップB5参照)に対しては、CPU割り当て数監視手段13による設定CPU数を超える数のCPUを与えないようにするための管理を行い、それ以外については非並列プログラムと同等の処理を行う。
【0053】
以上のような構成および動作により、従来技術によるギャングスケジューラの問題点を改善することができる。
【0054】
(2) 第2の実施の形態
【0055】
図4は、本発明の第2の実施の形態に係るギャングスケジューリング方式の構成を示すブロック図である。
【0056】
図4を参照すると、本実施の形態に係るギャングスケジューリング方式は、CPUの割り当てを管理する機能を持つカーネルスケジューラ10と、ギャングスケジューリングを管理する機能を持つギャングスケジューラ20と、設定CPU数格納部30と、ギャングスケジューリング対象決定閾値格納部40と、閾値変更手段50とを含んで構成されている。
【0057】
カーネルスケジューラ10は、第1の実施の形態と同様の構成要素であり、使用CPU時間監視手段11と、CPU割り当て決定手段12と、CPU割り当て数監視手段13とを含んで構成されている。
【0058】
ギャングスケジューラ20は、第1の実施の形態と同様の構成要素であり、ギャングスケジューリング対象決定手段21と、次回実行並列プログラム決定手段22とを含んで構成されている。
【0059】
本実施の形態(第2の実施の形態)に係るギャングスケジューリング方式は、第1の実施の形態に係るギャングスケジューリング方式と比較して、ギャングスケジューリング対象決定閾値格納部40内のギャングスケジューリング対象決定閾値の変更(動的または静的な変更)を行うための閾値変更手段50を有している点が異なっている。
【0060】
すなわち、閾値変更手段50は、ユーザからの指示等に基づき、ギャングスケジューリング対象決定閾値格納部40内のギャングスケジューリング対象決定閾値を動的または静的に変更する。これにより、各並列プログラムをギャングスケジューリングの対象にするか否かの判別基準を、本実施の形態が適用されるコンピュータシステムの動作・運用状況に応じて適切に変更設定することができるようになり、当該コンピュータシステムにおける並列プログラム群の運用を柔軟かつ効率的に制御することが可能になる。
【0061】
ここで、このようなギャングスケジューリング対象決定閾値の変更の内容として、R=1−MIN/MAXという計算式で算出されるギャングスケジューリング対象判別比率Rと比較されるギャングスケジューリング対象決定閾値を1(100%)と設定すれば、従来技術のギャングスケジューラによるギャングスケジューリング処理(全ての並列プログラムをギャングスケジューリング対象とする処理)と全く同一のものとすることができる。
【0062】
なお、閾値変更手段50に関する動作以外の動作については、本実施の形態(第2の実施の形態)も第1の実施の形態も同様なものとなる。
【0063】
(3) 第3の実施の形態
【0064】
図5は、本発明の第3の実施の形態の構成を示すブロック図である。
【0065】
図5を参照すると、本発明の第3の実施の形態は、図1に示した第1の実施の形態に対して、ギャングスケジューリング制御プログラム500を備える点が異なっている。
【0066】
ギャングスケジューリング制御プログラム500は、カーネルスケジューラ10,ギャングスケジューラ20,設定CPU数格納部30,およびギャングスケジューリング対象決定閾値格納部40を含むコンピュータシステムに読み込まれ、当該コンピュータシステムの動作を設定CPU数格納部30およびギャングスケジューリング対象決定閾値格納部40が存在することを前提とした上で、使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,および次回実行並列プログラム決定手段22として制御する。ギャングスケジューリング制御プログラム500の制御による使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,および次回実行並列プログラム決定手段22の動作は、第1の実施の形態における使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,および次回実行並列プログラム決定手段22の動作と全く同様になるので、その詳しい説明を割愛する。
【0067】
(4) 第4の実施の形態
【0068】
図6は、本発明の第4の実施の形態の構成を示すブロック図である。
【0069】
図6を参照すると、本発明の第4の実施の形態は、図4に示した第2の実施の形態に対して、ギャングスケジューリング制御プログラム600を備える点が異なっている。
【0070】
ギャングスケジューリング制御プログラム600は、カーネルスケジューラ10,ギャングスケジューラ20,設定CPU数格納部30,ギャングスケジューリング対象決定閾値格納部40,および閾値変更手段50を含むコンピュータシステムに読み込まれ、当該コンピュータシステムの動作を設定CPU数格納部30およびギャングスケジューリング対象決定閾値格納部40が存在することを前提とした上で、使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,次回実行並列プログラム決定手段22,および閾値変更手段50として制御する。ギャングスケジューリング制御プログラム600の制御による使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,次回実行並列プログラム決定手段22,および閾値変更手段50の動作は、第2の実施の形態における使用CPU時間監視手段11,CPU割り当て決定手段12,CPU割り当て数監視手段13,ギャングスケジューリング対象決定手段21,次回実行並列プログラム決定手段22,および閾値変更手段50の動作と全く同様になるので、その詳しい説明を割愛する。
【0071】
【発明の効果】
以上説明したように、本発明によると、以下に示すような効果が生じる。
【0072】
第1の効果は、複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない(割り当てる必要のない)並列プログラムとを区別する機能をギャングスケジューラに追加すること等により、複数のCPUを同時に割り当てるべきでない並列プログラムをギャングスケジューリングの対象とはしないように制御し、従来技術におけるギャングスケジューラで生じていた「複数のCPUを同時に割り当てるべきでない並列プログラムが一定期間毎にギャングスケジューリング対象になることによってその並列プログラムが本来望まない動作を行うこととなったり、またそのことが複数のCPUを同時に割り当てるべき並列プログラムである他の並列プログラムにも悪影響を及ぼすこととなる」という従来技術における問題点を改善(解消)することができるということである。
【0073】
第2の効果は、閾値変更手段を設けてギャングスケジューリング対象決定閾値を動的または静的に変更することを可能にすることにより、本発明が適用されるコンピュータシステムの動作・運用状況に柔軟に対応して、上記の第1の効果を達成することができるということである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るギャングスケジューリング方式の構成を示すブロック図である。
【図2】図1に示すギャングスケジューリング方式における使用CPU時間監視処理を示す流れ図である。
【図3】図1に示すギャングスケジューリング方式におけるギャングスケジューリング処理を示す流れ図である。
【図4】本発明の第2の実施の形態に係るギャングスケジューリング方式の構成を示すブロック図である。
【図5】本発明の第3の実施の形態の構成を示すブロック図である。
【図6】本発明の第4の実施の形態の構成を示すブロック図である。
【符号の説明】
10 カーネルスケジューラ
20 ギャングスケジューラ
30 設定CPU数格納部
40 ギャングスケジューリング対象決定閾値格納部
50 閾値変更手段
11 使用CPU時間監視手段
12 CPU割り当て決定手段
13 CPU割り当て数監視手段
21 ギャングスケジューリング対象決定手段
22 次回実行並列プログラム決定手段
500,600 ギャングスケジューリング制御プログラム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a gang scheduling method in a computer system having a gang scheduling function (a function for simultaneously allocating a necessary number of CPUs when scheduling a parallel program).
[0002]
[Prior art]
In numerical simulation using a supercomputer or the like, it is common to perform parallel processing using a parallel program.
[0003]
In the parallel program, a plurality of processes are distributed to a plurality of CPUs (Central Processing Units). In this specification, individual processes constituting a plurality of processes distributed to a plurality of CPUs in a parallel program are referred to as “distribution processes”.
[0004]
In such a parallel program, the completion of all distribution processes may be waited, and if a CPU scrambles due to multiple parallel programs being executed, a wasteful time is generated due to the completion of the distribution process. The user time, which is the user's CPU usage time, may be extended. In a management system that collects fees according to user time used in universities, research institutes, etc., this increase in useless user time is a major problem.
[0005]
A technique used to solve the above problem is gang scheduling. Gang scheduling provides a method that always assigns a plurality of CPUs to be used for a parallel program at the same time. As a result, even if multiple parallel programs are executed, each parallel program can be executed with the same efficiency as when executed alone, and the above-mentioned problem of “useless user time extension” is solved.
[0006]
In the conventional gang scheduling method (gang scheduling implementation method) for realizing such a gang scheduling function, gang scheduling is performed for all parallel programs. That is, for all parallel programs, the gang scheduler periodically determines the parallel program to which the CPU should be assigned, and the kernel scheduler guarantees the use of the CPU number that does not exceed the set CPU number for the determined parallel program. .
[0007]
Since this conventional technique guarantees the use of the number of CPUs set for the parallel program at regular intervals, even when multiple parallel programs are executed, the necessary number of CPUs cannot be secured. The parallel program can be efficiently executed without causing an increase, and the gang scheduler is activated at regular intervals, so that the overhead due to gang scheduling is small (see, for example, Non-Patent Document 1).
[0008]
[Non-Patent Document 1]
Koji SUZUKI and Kentaro YABUKI, "Design and Implemention
of Gang Scheduler on Multi-Node SX-4 and SX-5 Supercomputer Systems ", NEC
Res. & Develop., 39, 4, pp. 396-401, 1998
[0009]
[Problems to be solved by the invention]
In the above-described prior art (conventional gang scheduling method), as described above, since all parallel programs are the targets of gang scheduling, there are the following problems.
[0010]
That is, the problem is that gang scheduling is performed even for a parallel program in which a plurality of CPUs should not be allocated at the same time (not required to be allocated). Such a parallel program is subject to gang scheduling at regular intervals, causing the parallel program to perform an undesired operation, or to a parallel program to which a plurality of CPUs should be assigned simultaneously. It had an adverse effect on them.
[0011]
Here, in general, a parallel program to which a plurality of CPUs should be allocated simultaneously is a parallel program in which equivalent processes are distributed to a plurality of CPUs to perform parallel processing, and the CPU time used for each distribution process in the parallel program. It has the property of being almost equal. On the other hand, in general, a parallel program in which a plurality of CPUs should not be assigned at the same time (does not have to be assigned) is a parallel program in which different processes are assigned to a plurality of CPUs for convenience of processing. There is a characteristic that a difference occurs in the CPU time used for processing.
[0012]
The object of the present invention is, in view of the above-mentioned points, “in a parallel program in which a plurality of CPUs are to be allocated at the same time, the CPU time used for each distribution process is almost equal, whereas a plurality of CPUs should not be allocated at the same time (need to be allocated A parallel program to which a plurality of CPUs should be assigned simultaneously by comparing the CPU time used for each distribution process in each parallel program, utilizing the general characteristic that a parallel program uses a difference in the CPU time used for each distribution process. A function for distinguishing a program from a parallel program that should not be assigned a plurality of CPUs at the same time is added to the gang scheduler. Decided to do A gang scheduling method that can improve (resolve) the problem that this may adversely affect a parallel program to which a plurality of CPUs should be allocated at the same time. Another object is to provide a gang scheduling method including a function for selecting and determining a target parallel program.
[0013]
[Means for Solving the Problems]
The gang scheduling method of the present invention is a computer system having a gang scheduling function, a set CPU number storage unit for storing a set CPU number corresponding to each parallel program executed in the computer system, and each distribution process of each parallel program. A gang scheduling target determination threshold value storage unit for storing a gang scheduling target determination threshold value used when determining a parallel program as a gang scheduling target by comparing the CPU time used, and for each distribution process of each parallel program for a certain period of time Used CPU time monitoring means in the kernel scheduler having a function of monitoring the used CPU time and passing information indicating the monitoring result to the gang scheduler, and is passed from the used CPU time monitoring means at regular intervals. The CPU usage time of each allocation process of the parallel program is referred and compared, and for each parallel program, the difference between the CPU time used for the allocation process with the largest CPU time used and the CPU time used for the allocation process with the smallest CPU time used. Is compared with the gang scheduling target determination threshold, and the difference between the CPU time used for the distribution process with the largest CPU time used and the CPU time used for the distribution process with the smallest CPU time used is the gang scheduling target. A gang scheduling target determining unit in a gang scheduler having a function of determining only each parallel program smaller than a reference indicated by the determination threshold as a gang scheduling target, and the gang scheduling determined by the gang scheduling target determining unit. Next execution parallel program determination means in the gang scheduler having a function of determining a next execution parallel program from a parallel program group (a parallel program group determined to be a gang scheduling target) and passing the determination result to the kernel scheduler And the number of CPUs indicated by the number of set CPUs corresponding to the next execution parallel program stored in the set CPU number storage unit with respect to the next execution parallel program determined by the next execution parallel program determination means CPU allocation determination means in the kernel scheduler having a function of adjusting so as to guarantee allocation at the same time, and to prevent each parallel program from giving more CPUs than the number of CPUs set for each parallel program Management (assignment pipes CPU allocation number monitoring means in the kernel scheduler having a function of performing management (including management after allocation as well as management).
[0014]
Further, the gang scheduling method of the present invention, in addition to each of the above components, changes of the gang scheduling target determination threshold in the gang scheduling target determination threshold storage unit (operation / operation status of the computer system based on instructions from the user, etc.) It is also possible to have a threshold value changing means for performing dynamic / static change according to the above.
[0015]
The gang scheduling method of the present invention is more generally used in a computer system having a gang scheduling function: “In a parallel program in which a plurality of CPUs should be allocated at the same time, the CPU time used for each distribution process is almost equal. , A parallel program in which a plurality of CPUs should not be allocated at the same time (which need not be allocated) uses a general characteristic that a difference occurs in the CPU time used for each distribution process, and the CPU time used for each distribution process in each parallel program By comparing a parallel program that should be assigned a plurality of CPUs simultaneously with a parallel program that should not be assigned a plurality of CPUs at the same time. A gang scheduler that determines a next execution parallel program (a parallel program that should be a target of CPU allocation at the next CPU allocation in gang scheduling), and a distribution process for each parallel program after being controlled so as not to be subject to ringing It can be expressed as having a kernel scheduler that monitors the CPU usage time, notifies the monitoring result to the gang scheduler, and manages the allocation of the CPU to the next execution parallel program determined by the gang scheduler. .
[0016]
Further, the present invention provides a computer system having a gang scheduling function, which says, “A parallel program in which a plurality of CPUs are to be assigned at the same time uses substantially the same CPU time for each distribution process, but a plurality of CPUs are not to be assigned in a parallel manner. By using the general characteristic that “the program uses a difference in the CPU time used for each distribution process” and comparing the CPU time used for each distribution process in each parallel program, a parallel program and a plurality of CPUs to which a plurality of CPUs should be allocated simultaneously are compared. A function that distinguishes parallel CPUs that should not be assigned at the same time is determined, and a parallel program that should not be assigned at the same time is controlled so that it is not subject to gang scheduling. The gang scheduler and the CPU time used for each distribution process of each parallel program are monitored, the monitoring result is notified to the gang scheduler, and the management of CPU allocation to the next execution parallel program determined by the gang scheduler is managed. It can also be realized in the form of a program for functioning as a kernel scheduler.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described in detail with reference to the drawings.
[0018]
(1) First embodiment
[0019]
FIG. 1 is a block diagram showing the configuration of the gang scheduling method according to the first embodiment of the present invention.
[0020]
Referring to FIG. 1, the gang scheduling method according to the present embodiment includes a kernel scheduler 10 having a function of managing CPU allocation, a gang scheduler 20 having a function of managing gang scheduling, and a set CPU number storage unit 30. And a gang scheduling target determination threshold value storage unit 40.
[0021]
The kernel scheduler 10 includes a CPU usage time monitoring unit 11, a CPU allocation determination unit 12, and a CPU allocation number monitoring unit 13.
[0022]
The gang scheduler 20 includes a gang scheduling target determining unit 21 and a next execution parallel program determining unit 22.
[0023]
In the set CPU number storage unit 30, a set CPU number corresponding to each parallel program is stored. The set number of CPUs corresponding to each parallel program is a value set as an attribute of each parallel program, and is information indicating the number of CPUs necessary for executing each parallel program.
[0024]
The gang scheduling target determination threshold value stored in the gang scheduling target determination threshold storage unit 40 is determined by each distribution process of each parallel program (as described above, “individual processes constituting a plurality of processes distributed to a plurality of CPUs in a parallel program” Is a threshold value used when determining a parallel program to be gang-scheduled by comparing the CPU time used.
[0025]
The gang scheduling target determination means 21 in the gang scheduler 20 refers to and compares the CPU time used for each distribution process of each parallel program delivered from the kernel scheduler 10 every fixed period (for example, 1 second). For each parallel program, the difference between the used CPU time (maximum used CPU time) of the allocation process with the largest used CPU time and the used CPU time (minimum used CPU time) of the allocated process with the smallest used CPU time is calculated. Each parallel program in which the difference between the maximum use CPU time and the minimum use CPU time is smaller than the reference indicated by the threshold value by comparing the value to be expressed with a predetermined threshold value (in this embodiment, the gang scheduling target determination threshold value) Only the gang scheduling target is determined, and the determination result is passed to the next execution parallel program determination means 22 and the kernel scheduler 10.
[0026]
Specifically, for a certain parallel program, a ratio R between the difference between the maximum CPU time (denoted as MAX) and the minimum CPU time (denoted as MIN) and MAX (R = (MAX−MIN) / MAX). = 1−MIN / MAX) is less than or less than the gang scheduling target determination threshold (whether it is less than or less than the gang scheduling target is optional depending on the system setting. A decision is made that the program is subject to gang scheduling, otherwise the parallel program is not subject to gang scheduling. When the calculation formula of the ratio R (referred to as “gang scheduling target discrimination ratio” as described later) is adopted, the gang scheduling target determination threshold takes a value of 0 to 1 (100%). .
[0027]
The next execution parallel program determination means 22 in the gang scheduler 20 executes the next time from the gang scheduling target parallel program group determined by the gang scheduling target determination means 21 (the parallel program group determined to be the gang scheduling target). A parallel program to be executed (next execution parallel program) is determined (this determination method is the same as in the prior art), and the determination result is passed to the kernel scheduler 10.
[0028]
The used CPU time monitoring means 11 in the kernel scheduler 10 monitors the used CPU time of each distribution process of each parallel program at regular intervals, and shows the monitoring result (the CPU used of each distribution process of each parallel program). Time) to the gang scheduler 20.
[0029]
The CPU allocation determination means 12 in the kernel scheduler 10 has a set CPU number corresponding to the next execution parallel program stored in the set CPU number storage unit 30 for the next execution parallel program determined by the gang scheduler 20. It has a function of adjusting so as to guarantee that the indicated number of CPUs are allocated simultaneously.
[0030]
The CPU allocation number monitoring means 13 in the kernel scheduler 10 manages to prevent each parallel program from giving more CPUs than the number of CPUs set for each parallel program (along with management at the time of allocation and after allocation) (Including management).
[0031]
The processing related to CPU allocation by the CPU allocation determining unit 12 and the CPU allocation number monitoring unit 13 is the same as the processing in the prior art.
[0032]
FIG. 2 is a flowchart showing the used CPU time monitoring process in the gang scheduling method according to the present embodiment. This process includes a CPU usage time monitoring step A1 and a monitoring result delivery step A2.
[0033]
FIG. 3 is a flowchart showing gang scheduling processing in the gang scheduling method according to the present embodiment. This process includes a CPU time reference / comparison step B1, a distribution process extraction step B2, a gang scheduling target determination ratio calculation step B3, a gang scheduling target determination ratio magnitude determination step B4, and a gang scheduling target determination step B5. It consists of a gang scheduling non-target determination step B6, an all parallel program processing end determination step B7, and a next execution parallel program determination step B8.
[0034]
Next, the operation of the gang scheduling method according to the present embodiment configured as described above will be described in detail with reference to FIGS.
[0035]
First, the operation during the used CPU time monitoring process in the kernel scheduler 10 will be described (see FIG. 2).
[0036]
The kernel scheduler 10 always manages CPU allocation.
[0037]
As part of the management, the used CPU time monitoring means 11 in the kernel scheduler 10 monitors the used CPU time of each distribution process of each parallel program (step A1), and shows the monitoring result (each of each parallel program). (Information indicating the CPU time used for the distribution process) is passed to the gang scheduler 20 (step A2). The used CPU time monitoring unit 11 repeats the above processing at regular intervals (for example, every second).
[0038]
Secondly, the operation during the gang scheduling process in the gang scheduler 20 will be described (see FIG. 3). Note that this operation (processing) is performed every the above-mentioned fixed period (for example, 1 second) which is the monitoring interval in the used CPU time monitoring unit 11.
[0039]
The gang scheduling target determining means 21 in the gang scheduler 20 refers to and compares the CPU time used for each distribution process of each parallel program delivered from the kernel scheduler 10 (step B1).
[0040]
The gang scheduling target determining unit 21 sequentially performs the following steps B2 to B6 for each of all the parallel programs based on the reference / comparison at step B1.
[0041]
First, for the parallel program, an allocation process with the largest CPU usage time and an allocation process with the smallest usage CPU time are extracted (step B2).
[0042]
Next, for the parallel program, the used CPU time (maximum used CPU time; expressed as MAX) of the allocation process with the largest used CPU time and the used CPU time (minimum used CPU time) of the allocated process with the smallest used CPU time. A ratio R between the difference between the difference between the difference between MIN and MAX (R = 1−MIN / MAX) is calculated (step B3). The ratio R calculated as described above is referred to as a gang scheduling target determination ratio.
[0043]
Furthermore, whether or not the gang scheduling target determination ratio calculated in step B3 is equal to or smaller than the gang scheduling target determination threshold value in the gang scheduling target determination threshold value storage unit 40 (as described above, “whether it is equal to or lower than“ (It is good also as "whether it is less than") (step B4).
[0044]
If it is determined in step B4 that “the gang scheduling target determination ratio is equal to or less than the gang scheduling target determination threshold”, the parallel program is determined to be gang scheduling target, and the determination result (the parallel program is gang scheduling target) Is passed to the next execution parallel program determination means 22 (step B5).
[0045]
On the other hand, if it is determined in step B4 that “the gang scheduling target determination ratio is not less than or equal to the gang scheduling target determination threshold”, the parallel program is determined not to be a gang scheduling target, and the determination result is sent to the kernel scheduler 10. (Step B6).
[0046]
The gang scheduling target determining means 21 completes the processing of step B2 to step B6 for all the parallel programs (all parallel programs for which the CPU time used is monitored by the kernel scheduler 10) after the processing of steps B2 to B6. It is determined whether or not (step B7).
[0047]
If the gang scheduling target determining means 21 determines in step B7 that "the processes in steps B2 to B6 have not been completed for all parallel programs", the next parallel program (unprocessed parallel program) For one of the programs, the processing from step B2 to step B6 is repeated. On the other hand, if it is determined in step B7 that “the processing of step B2 to step B6 for all parallel programs has been completed”, control is passed to the next execution parallel program determination means 22.
[0048]
When the next execution parallel program determining means 22 in the gang scheduler 20 receives control from the gang scheduling target determining means 21, the next-time parallel program determining means 22, among the gang scheduling target parallel program groups determined by the gang scheduling target determining means 21, By the same determination algorithm, the next execution parallel program that is a parallel program to be a target of CPU allocation at the next CPU allocation (CPU allocation by gang scheduling) is determined, and the determination result is passed to the kernel scheduler 10 ( Step B8).
[0049]
Third, the operation at the time of CPU allocation processing in the kernel scheduler 10 will be described.
[0050]
The CPU allocation determining means 12 in the kernel scheduler 10 uses the determination result (information indicating the next execution parallel program) passed from the gang scheduler 20 in step B8 in FIG. 3 to allocate the CPU at the next CPU allocation in gang scheduling. The number of CPUs set for the parallel program (that is, the number of set CPUs corresponding to the parallel program stored in the set CPU count storage unit 30) for the parallel program to be processed Adjustments are made to ensure that a certain number of CPUs are allocated at the same time.
[0051]
At the same time, the CPU allocation number monitoring unit 13 in the kernel scheduler 10 performs management for preventing the number of CPUs exceeding the set CPU number from being allocated to the parallel program (next execution parallel program). Further, the CPU allocation number monitoring means 13 performs management for preventing the number of CPUs exceeding the set CPU number from being given to the parallel program even after the CPU allocation.
[0052]
Note that the kernel scheduler 10 has a number exceeding the number of CPUs set by the CPU allocation number monitoring means 13 for the parallel program group (see step B5 in FIG. 3) determined not to be the target of gang scheduling by the gang scheduler 20. The management is performed so as not to give the CPU, and the other processing is equivalent to that of the non-parallel program.
[0053]
With the configuration and operation as described above, it is possible to improve the problems of the conventional gang scheduler.
[0054]
(2) Second embodiment
[0055]
FIG. 4 is a block diagram showing the configuration of the gang scheduling method according to the second embodiment of the present invention.
[0056]
Referring to FIG. 4, the gang scheduling method according to the present embodiment includes a kernel scheduler 10 having a function of managing CPU allocation, a gang scheduler 20 having a function of managing gang scheduling, and a set CPU number storage unit 30. And a gang scheduling target determination threshold value storage unit 40 and a threshold value changing means 50.
[0057]
The kernel scheduler 10 is a component similar to that of the first embodiment, and includes a used CPU time monitoring unit 11, a CPU allocation determination unit 12, and a CPU allocation number monitoring unit 13.
[0058]
The gang scheduler 20 is the same component as that of the first embodiment, and includes a gang scheduling target determining unit 21 and a next execution parallel program determining unit 22.
[0059]
The gang scheduling method according to the present embodiment (second embodiment) is compared with the gang scheduling method according to the first embodiment in the gang scheduling target determination threshold storage unit 40. The difference is that threshold value changing means 50 is provided for making a change (dynamic or static change).
[0060]
That is, the threshold changing unit 50 dynamically or statically changes the gang scheduling target determination threshold in the gang scheduling target determination threshold storage unit 40 based on an instruction from the user or the like. As a result, the criteria for determining whether or not each parallel program is subject to gang scheduling can be appropriately changed and set according to the operation / operation status of the computer system to which this embodiment is applied. The operation of the parallel program group in the computer system can be controlled flexibly and efficiently.
[0061]
Here, as the content of the change of the gang scheduling target determination threshold, the gang scheduling target determination threshold to be compared with the gang scheduling target determination ratio R calculated by the calculation formula R = 1−MIN / MAX is 1 (100 %)), The gang scheduling process by the gang scheduler of the prior art (a process in which all parallel programs are targeted for gang scheduling) can be made completely the same.
[0062]
Note that operations other than the operation relating to the threshold value changing means 50 are the same in the present embodiment (second embodiment) and the first embodiment.
[0063]
(3) Third embodiment
[0064]
FIG. 5 is a block diagram showing the configuration of the third exemplary embodiment of the present invention.
[0065]
Referring to FIG. 5, the third embodiment of the present invention is different from the first embodiment shown in FIG. 1 in that a gang scheduling control program 500 is provided.
[0066]
The gang scheduling control program 500 is read into a computer system including a kernel scheduler 10, a gang scheduler 20, a set CPU number storage unit 30, and a gang scheduling target determination threshold value storage unit 40, and controls the operation of the computer system. 30 and the gang scheduling target determination threshold storage unit 40, the used CPU time monitoring means 11, the CPU allocation determination means 12, the CPU allocation number monitoring means 13, the gang scheduling target determination means 21, and the next time The execution parallel program determination means 22 is controlled. The operations of the used CPU time monitoring means 11, the CPU allocation determining means 12, the CPU allocation number monitoring means 13, the gang scheduling target determining means 21, and the next execution parallel program determining means 22 under the control of the gang scheduling control program 500 are as follows. The operation is exactly the same as the operation of the used CPU time monitoring means 11, the CPU allocation determining means 12, the CPU allocation number monitoring means 13, the gang scheduling target determining means 21, and the next execution parallel program determining means 22 in the embodiment. I will omit the explanation.
[0067]
(4) Fourth embodiment
[0068]
FIG. 6 is a block diagram showing the configuration of the fourth exemplary embodiment of the present invention.
[0069]
Referring to FIG. 6, the fourth embodiment of the present invention is different from the second embodiment shown in FIG. 4 in that a gang scheduling control program 600 is provided.
[0070]
The gang scheduling control program 600 is read into a computer system including the kernel scheduler 10, the gang scheduler 20, a set CPU number storage unit 30, a gang scheduling target determination threshold storage unit 40, and threshold change means 50, and performs operations of the computer system. On the premise that the set CPU number storage unit 30 and the gang scheduling target determination threshold value storage unit 40 exist, the used CPU time monitoring unit 11, the CPU allocation determination unit 12, the CPU allocation number monitoring unit 13, the gang scheduling target determination The means 21, the next execution parallel program determination means 22, and the threshold value changing means 50 are controlled. Operations of the used CPU time monitoring means 11, the CPU allocation determining means 12, the CPU allocation number monitoring means 13, the gang scheduling target determining means 21, the next execution parallel program determining means 22, and the threshold changing means 50 under the control of the gang scheduling control program 600 Are used CPU time monitoring means 11, CPU allocation determining means 12, CPU allocation number monitoring means 13, gang scheduling target determining means 21, next execution parallel program determining means 22, and threshold changing means 50 in the second embodiment. Since it is exactly the same as the operation, its detailed explanation is omitted.
[0071]
【The invention's effect】
As described above, according to the present invention, the following effects are produced.
[0072]
The first effect is that, by adding a function for distinguishing between a parallel program in which a plurality of CPUs should be allocated simultaneously and a parallel program in which a plurality of CPUs should not be allocated at the same time (which need not be allocated) to the gang scheduler, etc. The parallel program that should not be assigned at the same time is controlled so that it is not subject to gang scheduling, and the conventional gang scheduler has caused "a parallel program that should not be assigned multiple CPUs at the same time is subject to gang scheduling. This causes the parallel program to perform an undesired operation, and it also adversely affects other parallel programs that are parallel programs to which a plurality of CPUs should be assigned at the same time. It is that it is possible to improve (eliminate) the definitive problems.
[0073]
The second effect is that by providing a threshold value changing means to dynamically or statically change the gang scheduling target determination threshold value, the operation / operation status of the computer system to which the present invention is applied can be flexibly changed. Correspondingly, the first effect can be achieved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a gang scheduling method according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing a used CPU time monitoring process in the gang scheduling method shown in FIG. 1;
FIG. 3 is a flowchart showing a gang scheduling process in the gang scheduling method shown in FIG. 1;
FIG. 4 is a block diagram showing a configuration of a gang scheduling method according to a second embodiment of the present invention.
FIG. 5 is a block diagram showing a configuration of a third exemplary embodiment of the present invention.
FIG. 6 is a block diagram showing a configuration of a fourth exemplary embodiment of the present invention.
[Explanation of symbols]
10 Kernel scheduler
20 Gang scheduler
30 Setting CPU number storage
40 Gang scheduling target determination threshold storage unit
50 threshold change means
11 CPU usage monitoring means
12 CPU allocation determining means
13 CPU allocation number monitoring means
21 Gang scheduling target decision means
22 Next execution program decision means
500,600 Gang scheduling control program

Claims (7)

ギャングスケジューリング機能を有するコンピュータシステムにおいて、
「複数のCPUを同時に割り当てるべき並列プログラムでは各振り分け処理の使用CPU時間がほぼ等しくなるのに対し、複数のCPUを同時に割り当てるべきでない並列プログラムでは各振り分け処理の使用CPU時間に差が生じる」という一般的な特性を利用し、各並列プログラムにおける各振り分け処理の使用CPU時間を比較することによって複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない並列プログラムとを区別する機能を備え、複数のCPUを同時に割り当てるべきでない並列プログラムをギャングスケジューリングの対象とはしないように制御した上で、次回実行並列プログラムを決定するギャングスケジューラと、
各並列プログラムの各振り分け処理の使用CPU時間を監視してその監視結果を前記ギャングスケジューラに通知し、前記ギャングスケジューラにより決定された次回実行並列プログラムへのCPUの割り当てに関する管理を行うカーネルスケジューラと
を有することを特徴とするギャングスケジューリング方式。
In a computer system having a gang scheduling function,
“A parallel program that should be assigned a plurality of CPUs has almost the same CPU time used for each sort process, whereas a parallel program that should not be assigned a plurality of CPUs is different in the CPU time used for each sort process.” A function that distinguishes between a parallel program that should be assigned a plurality of CPUs at the same time and a parallel program that should not be assigned a plurality of CPUs at the same time by using the general characteristics and comparing the CPU time used for each distribution process in each parallel program A gang scheduler that determines a parallel program that is to be executed next time after controlling a parallel program that should not be assigned a plurality of CPUs at the same time as a target of gang scheduling;
A kernel scheduler that monitors the CPU time used for each distribution process of each parallel program, notifies the gang scheduler of the monitoring result, and manages the CPU allocation to the next execution parallel program determined by the gang scheduler; A gang scheduling system characterized by comprising:
ギャングスケジューリング機能を有するコンピュータシステムにおいて、
当該コンピュータシステムで実行される各並列プログラムに対応する設定CPU数を格納する設定CPU数格納部と、
各並列プログラムの各振り分け処理の使用CPU時間の比較によりギャングスケジューリング対象の並列プログラムを決定する際に用いられるギャングスケジューリング対象決定閾値を格納するギャングスケジューリング対象決定閾値格納部と、
一定期間毎に、各並列プログラムの各振り分け処理の使用CPU時間を監視し、その監視結果を示す情報をギャングスケジューラに渡す機能を持つカーネルスケジューラ内の使用CPU時間監視手段と、
一定期間毎に、前記使用CPU時間監視手段から渡された各並列プログラムの各振り分け処理のCPU使用時間の参照・比較を行い、各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差の大小を表す値とギャングスケジューリング対象決定閾値との比較を行い、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差が当該ギャングスケジューリング対象決定閾値で示される基準よりも小さい各並列プログラムだけをギャングスケジューリング対象にすると決定する機能を持つギャングスケジューラ内のギャングスケジューリング対象決定手段と、
前記ギャングスケジューリング対象決定手段で決定されたギャングスケジューリング対象並列プログラム群の中から次回実行並列プログラムを決定し、その決定結果をカーネルスケジューラに渡す機能を持つギャングスケジューラ内の次回実行並列プログラム決定手段と、
前記次回実行並列プログラム決定手段で決定された次回実行並列プログラムに対して、前記設定CPU数格納部に格納されている当該次回実行並列プログラムに対応する設定CPU数で示される数のCPUを同時に割り当てることが保証されるように調整を行う機能を持つカーネルスケジューラ内のCPU割り当て決定手段と、
各並列プログラムに対して当該各並列プログラムに対する設定CPU数を超える数のCPUを与えないようにするための管理を行う機能を持つカーネルスケジューラ内のCPU割り当て数監視手段と
を有することを特徴とするギャングスケジューリング方式。
In a computer system having a gang scheduling function,
A setting CPU number storage unit that stores the number of setting CPUs corresponding to each parallel program executed in the computer system;
A gang scheduling target determination threshold value storage unit for storing a gang scheduling target determination threshold value used in determining a gang scheduling target parallel program by comparing the CPU time used for each distribution process of each parallel program;
CPU time monitoring means in the kernel scheduler having a function of monitoring the CPU time used for each distribution process of each parallel program for each fixed period and passing information indicating the monitoring result to the gang scheduler;
The CPU usage time of each allocation process of each parallel program passed from the CPU usage time monitoring means is referred to and compared at regular intervals, and the CPU time used for the allocation process with the largest CPU usage time for each parallel program. And the value representing the difference between the CPU time used for the distribution process with the smallest CPU time used and the threshold value for determining the gang scheduling target are compared, and the CPU time and CPU time used for the distribution process with the largest CPU time used are compared. A gang scheduling target determining means in the gang scheduler having a function of determining that only a parallel program whose target is the gang scheduling target is the difference between the CPU time of use of the smallest distribution process and the criterion indicated by the gang scheduling target determination threshold; ,
The next execution parallel program determination means in the gang scheduler having a function of determining the next execution parallel program from the gang scheduling target parallel program group determined by the gang scheduling target determination means, and passing the determination result to the kernel scheduler;
To the next execution parallel program determined by the next execution parallel program determining means, the number of CPUs indicated by the number of set CPUs corresponding to the next execution parallel program stored in the set CPU number storage unit is simultaneously allocated. CPU allocation determination means in the kernel scheduler having a function of adjusting so as to be guaranteed,
And a CPU allocation number monitoring unit in a kernel scheduler having a function of managing each parallel program so as not to give more CPUs than the number of CPUs set for each parallel program. Gang scheduling method.
ギャングスケジューリング対象決定閾値格納部内のギャングスケジューリング対象決定閾値の変更を行う閾値変更手段を有することを特徴とする請求項2記載のギャングスケジューリング方式。3. The gang scheduling method according to claim 2, further comprising threshold changing means for changing the gang scheduling target determination threshold in the gang scheduling target determination threshold storage unit. 各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差と使用CPU時間の最も大きい振り分け処理の使用CPU時間との比率をギャングスケジューリング対象判別比率として算出し、当該ギャングスケジューリング対象判別比率とギャングスケジューリング対象決定閾値とを比較することによって使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差が当該ギャングスケジューリング対象決定閾値で示される基準よりも小さいか否かを判定するギャングスケジューリング対象決定手段を有することを特徴とする請求項2または請求項3記載のギャングスケジューリング方式。For each parallel program, the ratio of the difference between the CPU time used for the distribution process with the largest CPU time used and the CPU time used for the distribution process with the smallest CPU time to the CPU time used for the distribution process with the largest CPU time. Use as a gang scheduling target determination ratio, and by using the gang scheduling target determination ratio and the gang scheduling target determination threshold value, the use CPU time of the distribution process with the largest use CPU time and the use of the distribution process with the smallest use CPU time 4. The gang scheduling object determining means according to claim 2, further comprising a gang scheduling object determining means for determining whether or not a difference from the CPU time is smaller than a reference indicated by the gang scheduling object determination threshold value. Ring system. ギャングスケジューリング機能を有するコンピュータシステムを、「複数のCPUを同時に割り当てるべき並列プログラムでは各振り分け処理の使用CPU時間がほぼ等しくなるのに対し、複数のCPUを同時に割り当てるべきでない並列プログラムでは各振り分け処理の使用CPU時間に差が生じる」という一般的な特性を利用し、各並列プログラムにおける各振り分け処理の使用CPU時間を比較することによって複数のCPUを同時に割り当てるべき並列プログラムと複数のCPUを同時に割り当てるべきでない並列プログラムとを区別する機能を備え、複数のCPUを同時に割り当てるべきでない並列プログラムをギャングスケジューリングの対象とはしないように制御した上で、次回実行並列プログラムを決定するギャングスケジューラ,および各並列プログラムの各振り分け処理の使用CPU時間を監視してその監視結果を前記ギャングスケジューラに通知し、前記ギャングスケジューラにより決定された次回実行並列プログラムへのCPUの割り当てに関する管理を行うカーネルスケジューラとして機能させるためのプログラム。A computer system having a gang scheduling function is described as follows: “In a parallel program in which a plurality of CPUs are to be assigned at the same time, the CPU time used for each distribution process is almost equal, whereas in a parallel program in which a plurality of CPUs are not to be assigned at the same time By using the general characteristic that “the difference in the CPU time used” occurs, and by comparing the CPU time used for each distribution process in each parallel program, a parallel program that should be assigned a plurality of CPUs simultaneously and a plurality of CPUs that should be assigned at the same time A gang schedule that determines the next parallel program to be executed after controlling so that a parallel program that should not be assigned multiple CPUs at the same time is not subject to gang scheduling. And monitoring the CPU time used for each allocation process of each parallel program and notifying the monitoring result to the gang scheduler, and managing the CPU allocation to the next execution parallel program determined by the gang scheduler A program that functions as a kernel scheduler. 各並列プログラムに対応する設定CPU数を格納する設定CPU数格納部およびギャングスケジューリング対象決定閾値を格納するギャングスケジューリング対象決定閾値格納部が存在することを前提として、ギャングスケジューリング機能を有するコンピュータシステムを、一定期間毎に、各並列プログラムの各振り分け処理の使用CPU時間を監視し、その監視結果を示す情報をギャングスケジューラに渡す機能を持つカーネルスケジューラ内の使用CPU時間監視手段,一定期間毎に、前記使用CPU時間監視手段から渡された各並列プログラムの各振り分け処理のCPU使用時間の参照・比較を行い、各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差の大小を表す値とギャングスケジューリング対象決定閾値との比較を行い、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差が当該ギャングスケジューリング対象決定閾値で示される基準よりも小さい各並列プログラムだけをギャングスケジューリング対象にすると決定する機能を持つギャングスケジューラ内のギャングスケジューリング対象決定手段,前記ギャングスケジューリング対象決定手段で決定されたギャングスケジューリング対象並列プログラム群の中から次回実行並列プログラムを決定し、その決定結果をカーネルスケジューラに渡す機能を持つギャングスケジューラ内の次回実行並列プログラム決定手段,前記次回実行並列プログラム決定手段で決定された次回実行並列プログラムに対して、前記設定CPU数格納部に格納されている当該次回実行並列プログラムに対応する設定CPU数で示される数のCPUを同時に割り当てることが保証されるように調整を行う機能を持つカーネルスケジューラ内のCPU割り当て決定手段,および各並列プログラムに対して当該各並列プログラムに対する設定CPU数を超える数のCPUを与えないようにするための管理を行う機能を持つカーネルスケジューラ内のCPU割り当て数監視手段として機能させるためのプログラム。A computer system having a gang scheduling function on the premise that there is a set CPU number storage unit that stores the number of set CPUs corresponding to each parallel program and a gang scheduling target determination threshold value storage unit that stores a gang scheduling target determination threshold value, Used CPU time monitoring means in the kernel scheduler having a function of monitoring the CPU time used for each distribution process of each parallel program for each fixed period and passing information indicating the monitoring result to the gang scheduler, The CPU usage time of each allocation process of each parallel program passed from the used CPU time monitoring means is referred and compared, and for each parallel program, the CPU usage time and the CPU usage time of the allocation process having the largest CPU usage time are calculated. Small sorting area The value representing the difference between the CPU time used and the gang scheduling target determination threshold is compared, and the CPU time used for the distribution process with the largest CPU time used is the CPU time used for the distribution process with the smallest CPU time used. Determined by the gang scheduling target determining means in the gang scheduler having a function of determining that only parallel programs whose target is the gang scheduling target are determined to be only parallel programs whose difference is smaller than the criterion indicated by the gang scheduling target determination threshold. The next execution parallel program determining means in the gang scheduler having a function of determining the next execution parallel program from the group of parallel programs subject to gang scheduling and passing the determination result to the kernel scheduler, It is guaranteed that the number of CPUs indicated by the number of set CPUs corresponding to the next-executed parallel program stored in the set CPU number storage unit are simultaneously assigned to the next-run parallel program determined by the parallel program determining unit. CPU allocation determination means in the kernel scheduler having a function of adjusting the number of CPUs, and management for preventing each parallel program from giving more CPUs than the number of CPUs set for each parallel program A program for functioning as a means for monitoring the number of assigned CPUs in a kernel scheduler having a function. 各並列プログラムに対応する設定CPU数を格納する設定CPU数格納部およびギャングスケジューリング対象決定閾値を格納するギャングスケジューリング対象決定閾値格納部が存在することを前提として、ギャングスケジューリング機能を有するコンピュータシステムを、一定期間毎に、各並列プログラムの各振り分け処理の使用CPU時間を監視し、その監視結果を示す情報をギャングスケジューラに渡す機能を持つカーネルスケジューラ内の使用CPU時間監視手段,一定期間毎に、前記使用CPU時間監視手段から渡された各並列プログラムの各振り分け処理のCPU使用時間の参照・比較を行い、各並列プログラムについて、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差の大小を表す値とギャングスケジューリング対象決定閾値との比較を行い、使用CPU時間の最も大きい振り分け処理の使用CPU時間と使用CPU時間の最も小さい振り分け処理の使用CPU時間との差が当該ギャングスケジューリング対象決定閾値で示される基準よりも小さい各並列プログラムだけをギャングスケジューリング対象にすると決定する機能を持つギャングスケジューラ内のギャングスケジューリング対象決定手段,前記ギャングスケジューリング対象決定手段で決定されたギャングスケジューリング対象並列プログラム群の中から次回実行並列プログラムを決定し、その決定結果をカーネルスケジューラに渡す機能を持つギャングスケジューラ内の次回実行並列プログラム決定手段,前記次回実行並列プログラム決定手段で決定された次回実行並列プログラムに対して、前記設定CPU数格納部に格納されている当該次回実行並列プログラムに対応する設定CPU数で示される数のCPUを同時に割り当てることが保証されるように調整を行う機能を持つカーネルスケジューラ内のCPU割り当て決定手段,各並列プログラムに対して当該各並列プログラムに対する設定CPU数を超える数のCPUを与えないようにするための管理を行う機能を持つカーネルスケジューラ内のCPU割り当て数監視手段,および前記ギャングスケジューリング対象決定閾値格納部内のギャングスケジューリング対象決定閾値の変更を行う閾値変更手段として機能させるためのプログラム。A computer system having a gang scheduling function on the premise that there is a set CPU number storage unit that stores the number of set CPUs corresponding to each parallel program and a gang scheduling target determination threshold value storage unit that stores a gang scheduling target determination threshold value, Used CPU time monitoring means in the kernel scheduler having a function of monitoring the CPU time used for each distribution process of each parallel program for each fixed period and passing information indicating the monitoring result to the gang scheduler, The CPU usage time of each allocation process of each parallel program passed from the used CPU time monitoring means is referred and compared, and for each parallel program, the CPU usage time and the CPU usage time of the allocation process having the largest CPU usage time are calculated. Small sorting area The value representing the difference between the CPU time used and the gang scheduling target determination threshold is compared, and the CPU time used for the distribution process with the largest CPU time used is the CPU time used for the distribution process with the smallest CPU time used. Determined by the gang scheduling target determining means in the gang scheduler having a function of determining that only parallel programs whose target is the gang scheduling target are determined to be only parallel programs whose difference is smaller than the criterion indicated by the gang scheduling target determination threshold. The next execution parallel program determining means in the gang scheduler having a function of determining the next execution parallel program from the group of parallel programs subject to gang scheduling and passing the determination result to the kernel scheduler, It is guaranteed that the number of CPUs indicated by the number of set CPUs corresponding to the next-executed parallel program stored in the set CPU number storage unit are simultaneously assigned to the next-run parallel program determined by the parallel program determining unit. CPU allocation determining means in the kernel scheduler having the function of adjusting the function to be performed, and the function of performing management to prevent each parallel program from giving more CPUs than the number of CPUs set for each parallel program A program for functioning as a CPU allocation number monitoring means in a kernel scheduler having thresholds and a threshold value changing means for changing a gang scheduling target determination threshold value in the gang scheduling target determination threshold value storage unit.
JP2003060469A 2003-03-06 2003-03-06 Gang scheduling method Expired - Fee Related JP3901112B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003060469A JP3901112B2 (en) 2003-03-06 2003-03-06 Gang scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003060469A JP3901112B2 (en) 2003-03-06 2003-03-06 Gang scheduling method

Publications (2)

Publication Number Publication Date
JP2004272466A JP2004272466A (en) 2004-09-30
JP3901112B2 true JP3901112B2 (en) 2007-04-04

Family

ID=33123000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003060469A Expired - Fee Related JP3901112B2 (en) 2003-03-06 2003-03-06 Gang scheduling method

Country Status (1)

Country Link
JP (1) JP3901112B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6437579B2 (en) * 2014-06-26 2018-12-12 インテル コーポレイション Intelligent GPU scheduling in virtualized environment

Also Published As

Publication number Publication date
JP2004272466A (en) 2004-09-30

Similar Documents

Publication Publication Date Title
CA2780231C (en) Goal oriented performance management of workload utilizing accelerators
JP5040773B2 (en) Memory buffer allocation device and program
Rajguru et al. A comparative performance analysis of load balancing algorithms in distributed system using qualitative parameters
US7010596B2 (en) System and method for the allocation of grid computing to network workstations
US10191771B2 (en) System and method for resource management
WO2011148563A1 (en) Information processing system
JP2006048680A (en) System and method for operating load balancers for multiple instance applications
JP2016133964A (en) Computation resource allocation method and system
CN113467933B (en) Distributed file system thread pool optimization method, system, terminal and storage medium
KR101392584B1 (en) Apparatus for dynamic data processing using resource monitoring and method thereof
Hu et al. Job scheduling without prior information in big data processing systems
Xu et al. Prophet: Scheduling executors with time-varying resource demands on data-parallel computation frameworks
Zaouch et al. Load balancing for improved quality of service in the cloud
US11074111B2 (en) Quality of service scheduling with workload profiles
JP4617097B2 (en) Method, computer system and computer program for reallocating processors in a logically partitioned environment
JP4409568B2 (en) Band control program and multiprocessor system
JP3901112B2 (en) Gang scheduling method
CN109086128B (en) Task scheduling method and device
Salah et al. On Linux starvation of CPU-bound processes in the presence of network I/O
JP2006195985A (en) Method for controlling resource utilization rate and computer system
Muthuvelu et al. An adaptive and parameterized job grouping algorithm for scheduling grid jobs
JP2022550064A (en) Shared Resource Allocation in Multithreaded Microprocessors
Wu et al. A framework for proactive resource allocation in IaaS clouds
Yang et al. New YARN Non-Exclusive Resource Management Scheme through Opportunistic Idle Resource Assignment
Ogden et al. CloudCoaster: Transient-aware Bursty Datacenter Workload Scheduling

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

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: 20061212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061225

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: 20110112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120112

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees