JP3885748B2 - グループ単位ギャングスケジューリング方式 - Google Patents
グループ単位ギャングスケジューリング方式 Download PDFInfo
- Publication number
- JP3885748B2 JP3885748B2 JP2003068757A JP2003068757A JP3885748B2 JP 3885748 B2 JP3885748 B2 JP 3885748B2 JP 2003068757 A JP2003068757 A JP 2003068757A JP 2003068757 A JP2003068757 A JP 2003068757A JP 3885748 B2 JP3885748 B2 JP 3885748B2
- Authority
- JP
- Japan
- Prior art keywords
- gang
- scheduling
- group
- unit
- scheduling information
- 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
Links
Images
Description
【発明の属する技術分野】
本発明は、分散並列プログラム(以下、並列プログラムと称す)に関するギャングスケジューリング機能を有するコンピュータシステムにおいて、ギャングスケジューリングを並列プログラム全体を単位とするのではなくグループ(後述のようなギャンググループ)を単位として行うことを特徴とするグループ単位ギャングスケジューリング方式に関する。
【0002】
【従来の技術】
ギャングスケジューリング機能は、並列プログラムのスケジューリングを行う際に、必要とする数のCPU(Central Processing Unit)を同時に割り当てる機能である。
【0003】
従来、この種のギャングスケジューリング機能を実現するためのギャングスケジューリング方式では、1つの並列プログラム全体をスケジューリングの単位として、スケジューリングが行われていた(例えば、特許文献1参照)。
【0004】
そのため、例えば、気象に関する演算を行う並列プログラムにおいては、1つの並列プログラムが南半球に関する演算カテゴリと北半球に関する演算カテゴリとに別れているような場合でも、各演算カテゴリ毎に分けてギャングスケジューリング対象にするということはできなかった。
【0005】
なお、ギャングスケジューリング機能に関するものに限らず、プログラムを構成する各プロセス(並列的な動作を行うプロセス)にプロセッサ(CPU)を割り付ける技術は、従来から、周知の技術として存在している(例えば、特許文献2参照)。本発明は、このような「プロセスにプロセッサを割り付ける(割り当てる)技術」が存在することを前提としている。
【0006】
【特許文献1】
特開2000−250876号公報(第2頁、図1)
【特許文献2】
特開平10−143380号公報(第2−3頁、図1、図8)
【0007】
【発明が解決しようとする課題】
上述した従来のギャングスケジューリング方式では、上記のように、1つの並列プログラム全体をスケジューリングの単位としてギャングスケジューリングが行われているので、1つの並列プログラム中に異なるカテゴリの複数の演算(例えば、先述の気象に関する演算を行う並列プログラムにおける南半球に関する演算カテゴリおよび北半球に関する演算カテゴリ)が存在する場合でも、並列プログラム全体を単位としてスケジューリングを行うしかなく、より柔軟かつ効率的なギャングスケジューリングを実現することができないという問題点があった。
【0008】
本発明の目的は、上述の点に鑑み、これらの問題を解決し、並列プログラム単位ではなく並列プログラム中のギャンググループ単位にスケジューリングを行うことを可能にするギャングスケジューリング方式(グループ単位ギャングスケジューリング方式)を提供することにある。
【0009】
【課題を解決するための手段】
本発明のグループ単位ギャングスケジューリング方式は、ギャングスケジューリング機能を有するコンピュータシステムにおいて、並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号(通常、0,1,…という数字による番号の形式が考えられるが、より一般的には、ギャンググループを識別するための情報であればどのような形式の識別情報であってもよい)を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段と、前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段と、スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出すスケジューリング情報採取手段と、当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択するスケジューリング実行手段と、前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段とを有する。
【0010】
ここで、上記のグループ単位ギャングスケジューリング方式は、下記のaまたはbに示すような具体化が可能である。
【0011】
a.スケジューリング情報テーブル内の各ギャンググループに対するスケジューリング情報に同時実行CPU数が含まれるようにし、各プロセスに設定されるグループ単位ギャングスケジューリング関連プロセス設定情報にギャングスケジューリング対象識別フラグ,実行フラグ,およびギャンググループ番号が含まれるようにする。
【0012】
b.スケジューリング情報テーブル内の各ギャンググループに対するスケジューリング情報に同時実行CPU数およびプライオリティ(ギャングスケジューリングにおけるCPU割り当ての優先度を示す情報)が含まれるようにし、各プロセスに設定されるグループ単位ギャングスケジューリング関連プロセス設定情報にギャングスケジューリング対象識別フラグ,実行フラグ,ギャンググループ番号,およびプライオリティが含まれるようにする。その上で、スケジューリング情報採取手段が、ギャングスケジューリングに必要な情報の1つとして各プロセスに対して設定されているプライオリティを採取し、その採取に基づき前記スケジューリング情報テーブルに各ギャンググループに対するプライオリティ(例えば、当該各ギャンググループに属する全プロセスの各々に対して設定されているプライオリティの平均を示す情報)を設定する。また、スケジューリング実行手段が、前記スケジューリング情報テーブル中の各ギャンググループに対するプライオリティをも考慮してギャングスケジューリングを行う。
【0013】
なお、本発明のグループ単位ギャングスケジューリング方式は、より一般的には、ギャングスケジューリング機能を有するコンピュータシステムにおいて、1つの並列プログラムの中に1以上のギャンググループを作成し、並列プログラム単位ではなくギャンググループ単位にギャングスケジューリングを行うためのギャンググループに関する管理(各ギャンググループへの同時実行CPU数の設定等)を行うギャンググループ管理機能実現部と、前記ギャンググループ管理機能実現部により作成されたギャンググループを単位としてギャングスケジューリングを行うスケジューリング機能実現部とを有すると表現することができる。
【0014】
また、本発明は、ギャングスケジューリング機能を有するコンピュータシステムを、1つの並列プログラムの中に1以上のギャンググループを作成し、並列プログラム単位ではなくギャンググループ単位にギャングスケジューリングを行うためのギャンググループに関する管理を行うギャンググループ管理機能実現部,および前記ギャンググループ管理機能実現部により作成されたギャンググループを単位としてギャングスケジューリングを行うスケジューリング機能実現部として機能させるためのプログラムの態様で実現することも可能である。
【0015】
さらに、本発明は、ギャングスケジューリング機能を有するコンピュータシステムを、並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段,前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段,スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出すスケジューリング情報採取手段,当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択するスケジューリング実行手段,ならびに前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段として機能させるためのプログラムの態様で実現することも可能である。
【0016】
加えて、本発明は、ギャングスケジューリング機能を有するコンピュータシステムを、並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段,前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段,スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出し、その際に、ギャングスケジューリングに必要な情報の1つとして各プロセスに対して設定されているプライオリティを採取し、その採取に基づき前記スケジューリング情報テーブルに各ギャンググループに対するプライオリティを設定するスケジューリング情報採取手段,当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択し、その際に、前記スケジューリング情報テーブル中の各ギャンググループに対するプライオリティをも考慮してギャングスケジューリングを行うスケジューリング実行手段,ならびに前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段として機能させるためのプログラムの態様で実現することも可能である。
【0017】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【0018】
(1) 第1の実施の形態
【0019】
図1は、本発明の第1の実施の形態に係るグループ単位ギャングスケジューリング方式の構成を示すブロック図である。
【0020】
図1を参照すると、本実施の形態に係るグループ単位ギャングスケジューリング方式は、ギャンググループ管理機能実現部10と、スケジューリング機能実現部20と、使用可能CPU数格納部30と、スケジューリング情報テーブル40と、並列プログラム群100とを含んで構成されている。
【0021】
ギャンググループ管理機能実現部10は、ギャンググループ作成手段11と、実行CPU数設定手段12とを含んで構成されている。
【0022】
スケジューリング機能実現部20は、スケジューリング情報採取手段21と、スケジューリング実行手段22と、ディスパッチング手段23とを含んで構成されている。なお、このスケジューリング機能実現部20によって実現されるスケジューリング機能は、ギャンググループ単位でギャングスケジューリングを行うこと以外は、従来技術のギャングスケジューリング方式におけるスケジューリング機能と同様のものである。
【0023】
上記の各手段は、概略、次のような動作を行う。
【0024】
ギャンググループ作成手段11は、並列プログラム群100に属する並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号(ここでは、0,1,…という数字による番号の形式で与えられるが、より一般的には、ギャンググループを識別するための情報であればどのような形式の識別情報であってもよい)を受け取り、当該ギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成する。
【0025】
実行CPU数設定手段12は、ギャンググループ作成手段11によるギャンググループの作成時に、当該ギャンググループに対する同時実行CPU数を設定する。この設定処理は、使用可能CPU数格納部30内の使用可能CPU数以下の範囲で、当該コンピュータシステム(本実施の形態に係るグループ単位ギャングスケジューリング方式が適用されるコンピュータシステム)で保持されている既定値(同時実行CPU数の既定値)や、ジョブ実行時にジョブスケジューラによって設定された値(同時実行CPU数のジョブスケジューラ設定値)を、当該ギャンググループの同時実行CPU数として設定することによって実現される。
【0026】
スケジューリング情報採取手段21は、スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取内容(各ギャンググループに対するスケジューリング情報)をスケジューリング情報テーブル40に書き出す。
【0027】
スケジューリング実行手段22は、上記のスケジューリング情報採取手段21によるスケジューリング情報テーブル40への情報設定の後に、使用可能CPU数格納部30内の使用可能CPU数およびスケジューリング情報テーブル40内のスケジューリング情報等に基づき、ギャンググループ単位でのギャングスケジューリングを行う(今回のスケジューリングタイミングにおけるギャングスケジューリング対象のギャンググループを選択する)。
【0028】
ディスパッチング手段23は、スケジューリング実行手段22によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てる。
【0029】
使用可能CPU数格納部30は、当該コンピュータシステムにおいて使用可能なCPUの数を示す情報(使用可能CPU数)を保持している。
【0030】
スケジューリング情報テーブル40は、各並列プログラムの各ギャンググループに対応するスケジューリング情報(本実施の形態では、図4に示すように、同時実行CPU数およびプライオリティ)を保持している。
【0031】
並列プログラム群100には、当該コンピュータシステム上で実行状態にある各並列プログラム(ロードモジュールの態様の各並列プログラムが当該コンピュータシステム上で起動され実行状態とされた各並列プログラム)が存在する。
【0032】
なお、ロードモジュールの態様の並列プログラムには、ギャンググループによるグループ化が考慮されて複数のプロセスに対応する処理内容が記述されている。これらの処理内容を実現する複数のプロセスは、当該並列プログラムの当該コンピュータシステム上での起動後に、順次、そのプロセスに対応する記述内容(ロードモジュールの態様の並列プログラム中の記述内容)に基づいて生成され実行される。
【0033】
各プロセスの生成時には、当該プロセスに対応する記述内容中に含まれているグループ単位ギャングスケジューリングに関する情報(本実施の形態では、当該プロセスに対するギャンググループ番号およびプライオリティ)が、ギャンググループ管理機能実現部10内のギャンググループ作成手段11に与えられる(後述の図2中のステップA2参照)。
【0034】
図2は、本実施の形態に係るグループ単位ギャングスケジューリング方式におけるギャンググループ管理機能実現部10の処理を示す流れ図である。この処理は、プロセス生成有無判定ステップA1と、グループ単位ギャングスケジューリング関連情報取得ステップA2と、ギャンググループ存在判定ステップA3と、新ギャンググループ作成ステップA4と、新ギャンググループプロセス配属ステップA5と、同時実行CPU数設定ステップA6と、既存ギャンググループプロセス配属ステップA7とからなる。
【0035】
図3は、本実施の形態に係るグループ単位ギャングスケジューリング方式におけるスケジューリング機能実現部20の処理を示す流れ図である。この処理は、スケジューリング情報書き出しステップB1と、CPU割り当て対象ギャンググループ決定ステップB2と、実行フラグRUN削除ステップB3と、実行フラグRUN設定ステップB4と、CPU割り当てステップB5とからなる。
【0036】
図4は、本実施の形態に係るグループ単位ギャングスケジューリング方式の具体的な動作を説明するためのブロック図である。
【0037】
図4に示す並列プログラム群100には、ギャンググループ0(ギャンググループ番号が0のギャンググループ)を有する並列プログラムAと、ギャンググループ0およびギャンググループ1を有する並列プログラムBと、ギャンググループ0を有する並列プログラムCとが存在する(グループ化の数の上限が図4に示すような2に限定されないことはいうまでもない)。各並列プログラムの各ギャンググループ上には、並列化の対象となる複数のプロセスA−01〜A−04,プロセスB−01〜B−04,プロセスB−11〜B−12,およびプロセスC−01〜C−02が生成されている。本実施の形態、ひいては本発明では、これらの複数のプロセスに対してギャンググループ単位で同時に複数のCPU(同時実行CPU数で示される数のCPU)を割り当てるギャングスケジューリングが行われる。
【0038】
図5は、本実施の形態に係るグループ単位ギャングスケジューリング方式の具体的な動作および効果を説明するための図である。
【0039】
次に、図1〜図5を参照して、上記のように構成された本実施の形態に係るグループ単位ギャングスケジューリング方式の全体の動作について詳細に説明する。
【0040】
第1に、ギャンググループ管理機能実現部10によるギャンググループの作成および管理に関する動作について説明する(図2参照)。
【0041】
ギャンググループ管理機能実現部10内のギャンググループ作成手段11は、「並列プログラム中のプロセスの生成」という事象が生じたか否かを常に監視している。すなわち、一定の短い時間間隔毎に、プロセスの生成の有無を判定する(ステップA1)。
【0042】
ギャンググループ作成手段11は、ステップA1で「ある並列プログラムにおけるあるプロセスの生成が生じた」と判定した場合に、生成されたプロセスに対するグループ単位ギャングスケジューリングに関する情報(本実施の形態では、ギャンググループ番号およびプライオリティ)を取得する(ステップA2)。
【0043】
その上で、ギャンググループ作成手段11は、当該取得情報中のギャンググループ番号のギャンググループが当該並列プログラムにすでに存在するか否かを判定する(ステップA3)。
【0044】
ギャンググループ作成手段11は、ステップA3で「当該ギャンググループ番号のギャンググループが当該並列プログラムに存在しない」と判定した場合には、当該プロセスが新たなギャンググループの作成を要求するプロセスであると判断(認識)し、当該並列プログラム内に当該ギャンググループ番号を持つ新たなギャンググループ(当該プロセスが属することとなるギャンググループ)を作成する(ステップA4)。
【0045】
なお、ある並列プログラムの起動時において最初のプロセスが生成される場合には、当然に、ステップA3で「当該ギャンググループ番号のギャンググループが当該並列プログラムに存在しない」と判定されることとなる。この場合に、各並列プログラムの最初のプロセスに対しては、ギャンググループ番号0(第1のギャンググループを示す情報)が与えられている。すなわち、最初に生成されるプロセスが属するギャンググループがギャンググループ番号0のギャンググループとなるように設定されている。
【0046】
さらに、ギャンググループ作成手段11は、ステップA4で作成したギャンググループに当該プロセスを属させるように設定する(ステップA5)。ここで、当該ギャンググループに属することとなった当該プロセスには、ギャングスケジューリング対象であることを意味するGANGという情報が設定されたフラグ(ギャングスケジューリング対象識別フラグ)と、当該プロセスの実行時にRUNという情報(CPU割り当て中を示す情報)が設定されるフラグ(実行フラグ)と、ギャンググループ番号と、ギャングスケジューリングにおけるCPU割り当ての優先度(例えば、100を最大値とした数値で示される優先度)を示すプライオリティとが、設定されることとなる(図4中のプロセスB−01およびプロセスB−11参照)。なお、このようなプロセスへの設定情報をグループ単位ギャングスケジューリング関連プロセス設定情報と呼ぶこととする。
【0047】
ギャンググループ管理機能実現部10内の実行CPU数設定手段12は、ギャンググループ作成手段11によるステップA4およびステップA5における処理の後に、ステップA4で作成されたギャンググループに対する同時実行CPU数として、使用可能CPU数格納部30内の使用可能CPU数以下の範囲で、当該コンピュータシステムで保持されている既定値(同時実行CPU数の既定値)や、ジョブ実行時にジョブスケジューラによって設定された値(同時実行CPU数のジョブスケジューラ設定値)を設定する(ステップA6)。
【0048】
一方、ギャンググループ作成手段11は、ステップA3で「当該ギャンググループ番号のギャンググループが当該並列プログラムにすでに存在する」と判定した場合には、当該プロセスがすでに作成されたギャンググループへの加入を要求するプロセスであると判断(認識)し、当該ギャンググループ番号のギャンググループ(既存のギャンググループ)に当該プロセスを属させるように設定する(ステップA7)。ここで、当該ギャンググループに属することとなった当該プロセスには、ギャングスケジューリング対象であることを意味するGANGという情報が設定されたギャングスケジューリング対象識別フラグと、当該プロセスの実行時にRUNという情報が設定される実行フラグと、ギャンググループ番号と、ギャングスケジューリングにおけるCPU割り当ての優先度を示すプライオリティとが、グループ単位ギャングスケジューリング関連プロセス設定情報として設定されることとなる。
【0049】
なお、ステップA6またはステップA7の処理が終了すると、ステップA1の判定に制御が戻る。
【0050】
以上のような動作が繰り返されることによって、例えば、図4に示すような並列プログラムA〜C中の各プロセスがギャンググループに属する態様で生成されることとなる。図4における各ギャンググループには、使用可能CPU数格納部30内の使用可能CPU数である4以下となる範囲で、同時実行CPU数が設定されている。ここで、例えば、並列プログラムBには、ギャンググループ0の他に、ギャンググループ1が作成されており、両方のギャンググループを別個に(例えば、演算カテゴリ毎に)ギャングスケジューリングの対象とすることが可能になる。
【0051】
第2に、スケジューリング機能実現部20によるギャングスケジューリングに関する動作について説明する(図3参照)。
【0052】
スケジューリング機能実現部20内のスケジューリング情報採取手段21は、一定時間(スケジュールインターバル)毎に動き、当該コンピュータシステム内の各ギャンググループとギャングスケジューリング対象である各プロセス(ギャングスケジューリング対象であることを示すGANGという情報がギャングスケジューリング対象識別フラグに設定されたプロセス)とをサーチし、ギャンググループ毎にギャングスケジューリングに必要な情報(本実施の形態では、各ギャンググループの同時実行CPU数および各プロセスのプライオリティ)を調べ、それらの情報に基づいて、各ギャンググループに対応するスケジューリング情報をスケジューリング情報テーブル40に書き出す(ステップB1)。
【0053】
図4に示す並列プログラム群100を有するコンピュータシステムにおいては、並列プログラム群100内の各ギャンググループおよび各プロセスのサーチに基づき、図4中のスケジューリング情報テーブル40に示すような情報が書き出される。ここで、例えば、並列プログラムBのギャンググループ0に対するスケジューリング情報としては、同時実行CPU数の4とプライオリティの80とが書き出される。なお、スケジューリング情報テーブル40中の各ギャンググループに対するプライオリティとは、当該ギャンググループに属する全てのプロセスのプライオリティの平均値を意味する。
【0054】
スケジューリング機能実現部20内のスケジューリング実行手段22は、スケジューリング情報採取手段21によるスケジューリング情報テーブル40への情報設定の後に動き、使用可能CPU数格納部30内の使用可能CPU数とステップB1で書き出されたスケジューリング情報テーブル40内のスケジューリング情報とを基に、過去のスケジューリング結果等をも考慮して、ギャングスケジューリングによるCPU割り当て時に割り当て対象とすべきギャンググループ(当該ギャンググループに属するプロセス群)を決定(選択)する(ステップB2)。ここで、複数あるギャンググループからCPUを割り当てる対象のギャンググループを決定する方法としては、当該コンピュータシステムであらかじめ決められた方法(従来技術においてCPUを割り当てる対象の並列プログラムを決定する方法と同様の方法)が採用される。また、2つ以上のギャンググループの同時実行CPU数の合計が使用可能CPU数の範囲内であれば、当該2つ以上のギャンググループに対して同時にCPUを割り当てることも可能である(図5中のプロセスB−11〜B−12およびプロセスC−01〜C−02へのCPU割り当てタイミングを参照のこと)。
【0055】
スケジューリング機能実現部20内のディスパッチング手段23は、今回のスケジューリングにおけるCPU割り当てタイミングで、今までCPUを割り当てていたギャンググループに属するプロセス群の実行フラグからRUN(CPU割り当て中を示す情報)を削除する(ステップB3)。そして、上記のステップB2でスケジューリング実行手段22により新たに選択されたギャンググループに属するプロセス群の実行フラグにRUNを設定し(ステップB4)、ステップB4で実行フラグにRUNを設定したプロセス群にCPUを割り当てる(ステップB5)。
【0056】
図5は、CPU(ここでは、CPU#0〜CPU#3)から見た場合における、図4中の並列プログラム群100内の各ギャンググループに属するプロセス群へのCPUの割り当て状況の具体例を示した図である。
【0057】
図5を参照すると、図4中のプロセスB−01〜B−04を有するギャンググループ0とプロセスB−11〜B−12を有するギャンググループ1とは、同じ並列プログラムBに属するギャンググループであるが、別々のタイミングでCPUが割り当てられていることが分かる(このような柔軟かつ効率的なスケジューリングが可能になるということが、本実施の形態、ひいては本発明のグループ単位ギャングスケジューリング方式による効果に該当する)。
【0058】
(2) 第1の実施の形態の変形形態
【0059】
次に、上述の第1の実施の形態に係るグループ単位ギャングスケジューリング方式に対する変形形態について説明する。
【0060】
上述の第1の実施の形態においては、スケジューリング情報テーブル40に書き出されるスケジューリング情報や、各プロセスに設定されるグループ単位ギャングスケジューリング関連プロセス設定情報の中に、プライオリティという情報が含まれていた。
【0061】
しかしながら、本発明が適用されるコンピュータシステムにおいて、ギャングスケジューリングの対象となる各プロセスの間でCPUの割り当てに関する優先度に差がない場合等において、そのような優先度を考慮する必要がないときには、上記のスケジューリング情報やグループ単位ギャングスケジューリング関連プロセス設定情報にプライオリティという情報が含まれていなくても、本発明のグループ単位ギャングスケジューリング方式を実現することが可能となる。
【0062】
このような「プライオリティという情報を取り扱わない実施の形態」を、第1の実施の形態に対する変形形態として考えることができる。
【0063】
ここで、このような変形形態においては、図1中のギャンググループ管理機能実現部10やスケジューリング機能実現部20におけるプライオリティの取り扱いに関連する処理(プライオリティという情報の設定・参照やCPU割り当て時のプライオリティの考慮等)は不要となる。
【0064】
なお、スケジューリング情報テーブル40に書き出される各ギャンググループに対するスケジューリング情報(ギャングスケジューリングを実行する際に参照・考慮される情報)の内容として、上述の第1の実施の形態で示した同時実行CPU数およびプライオリティ(上記のように、プライオリティがない場合も考えられる)以外の情報を加えて、そのような付加情報をも考慮してギャングスケジューリングを実行することも可能である。
【0065】
(3) 第2の実施の形態
【0066】
図6は、本発明の第2の実施の形態の構成を示すブロック図である。
【0067】
図6を参照すると、本発明の第2の実施の形態は、図1に示した第1の実施の形態に対して、グループ単位ギャングスケジューリング制御プログラム600を備える点が異なっている。
【0068】
グループ単位ギャングスケジューリング制御プログラム600は、ギャンググループ管理機能実現部10,スケジューリング機能実現部20,使用可能CPU数格納部30,スケジューリング情報テーブル40,および並列プログラム群100を含むコンピュータシステムに読み込まれ、当該コンピュータシステムの動作を、使用可能CPU数格納部30,スケジューリング情報テーブル40,および並列プログラム群100が存在することを前提とした上で、ギャンググループ管理機能実現部10(ギャンググループ作成手段11および実行CPU数設定手段12)およびスケジューリング機能実現部20(スケジューリング情報採取手段21,スケジューリング実行手段22,およびディスパッチング手段23)として制御する。グループ単位ギャングスケジューリング制御プログラム600の制御によるギャンググループ作成手段11,実行CPU数設定手段12,スケジューリング情報採取手段21,スケジューリング実行手段22,およびディスパッチング手段23の動作は、第1の実施の形態におけるギャンググループ作成手段11,実行CPU数設定手段12,スケジューリング情報採取手段21,スケジューリング実行手段22,およびディスパッチング手段23の動作と全く同様になるので、その詳しい説明を割愛する。
【0069】
【発明の効果】
以上説明したように、本発明によると、以下に示すような効果が生じる。
【0070】
第1に、並列プログラム中にギャンググループを作成すること(並列プログラムをギャンググループにグループ分けすること)により、並列プログラム単位ではなく、ギャンググループ単位でのギャングスケジューリングが可能となり、柔軟かつ効率的なギャングスケジューリングを実現することができるという効果が生じる。
【0071】
すなわち、このようなギャンググループの作成により、並列プログラムの並列数(並列化されたプロセスの数)がギャングスケジューリングの適用対象のコンピュータシステムにおける使用可能CPU数を超えた場合でも、複数のギャンググループ(例えば、演算カテゴリ毎に分けられたギャンググループ)に並列プログラムを分けることによって、各ギャンググループにおいては並列数を当該使用可能CPU数以下に抑えることが可能になり、効率よくギャングスケジューリングを実行することができるようになる。また、同一並列プログラム内の演算に関して、演算カテゴリ毎に別個にスケジューリングを行うことができ、柔軟なギャングスケジューリングを実現することが可能になる。
【0072】
第2に、同一並列プログラム内の各ギャンググループに異なる同時実行CPU数を割り当てる(設定する)ことが可能になるので(例えば、図4中の並列プログラムBにおける2つのギャンググループを参照のこと)、使用可能なCPUを無駄にしない効率的なギャングスケジューリングが可能になるという効果が生じる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るグループ単位ギャングスケジューリング方式の構成を示すブロック図である。
【図2】図1に示すグループ単位ギャングスケジューリング方式におけるギャンググループ管理機能実現部の処理を示す流れ図である。
【図3】図1に示すグループ単位ギャングスケジューリング方式におけるスケジューリング機能実現部の処理を示す流れ図である。
【図4】図1に示すグループ単位ギャングスケジューリング方式の具体的な動作を説明するためのブロック図である。
【図5】図1に示すグループ単位ギャングスケジューリング方式の具体的な動作および効果を説明するための図である。
【図6】本発明の第2の実施の形態の構成を示すブロック図である。
【符号の説明】
10 ギャンググループ管理機能実現部
11 ギャンググループ作成手段
12 実行CPU数設定手段
20 スケジューリング機能実現部
21 スケジューリング情報採取手段
22 スケジューリング実行手段
23 ディスパッチング手段
30 使用可能CPU数格納部
40 スケジューリング情報テーブル
100 並列プログラム群
600 グループ単位ギャングスケジューリング制御プログラム
Claims (7)
- ギャングスケジューリング機能を有するコンピュータシステムにおいて、
プロセスに対応する記述内容中に含まれているグループ単位ギャングスケジューリングに関する情報に基づいて並列プログラムから生成したプロセスをグループ化して1つの並列プログラムの中に1以上のギャンググループを作成し、並列プログラム単位ではなくギャンググループ単位にギャングスケジューリングを行うためのギャンググループに関する管理を行うギャンググループ管理機能実現部と、
前記ギャンググループ管理機能実現部により作成されたギャンググループを単位としてギャングスケジューリングを行うスケジューリング機能実現部とを有することを特徴とするグループ単位ギャングスケジューリング方式。 - ギャングスケジューリング機能を有するコンピュータシステムにおいて、
並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段と、
前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段と、
スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出すスケジューリング情報採取手段と、
当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択するスケジューリング実行手段と、
前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段とを有することを特徴とするグループ単位ギャングスケジューリング方式。 - スケジューリング情報テーブル内の各ギャンググループに対するスケジューリング情報に同時実行CPU数が含まれ、各プロセスに設定されるグループ単位ギャングスケジューリング関連プロセス設定情報にギャングスケジューリング対象識別フラグ,実行フラグ,およびギャンググループ番号が含まれることを特徴とする請求項2記載のグループ単位ギャングスケジューリング方式。
- スケジューリング情報テーブル内の各ギャンググループに対するスケジューリング情報に同時実行CPU数およびプライオリティが含まれ、各プロセスに設定されるグループ単位ギャングスケジューリング関連プロセス設定情報にギャングスケジューリング対象識別フラグ,実行フラグ,ギャンググループ番号,およびプライオリティが含まれ、
スケジューリング情報採取手段が、ギャングスケジューリングに必要な情報の1つとして各プロセスに対して設定されているプライオリティを採取し、その採取に基づき前記スケジューリング情報テーブルに各ギャンググループに対するプライオリティを設定し、
スケジューリング実行手段が、前記スケジューリング情報テーブル中の各ギャンググループに対するプライオリティをも考慮してギャングスケジューリングを行うことを特徴とする請求項2記載のグループ単位ギャングスケジューリング方式。 - ギャングスケジューリング機能を有するコンピュータシステムを、プロセスに対応する記述内容中に含まれているグループ単位ギャングスケジューリングに関する情報に基づいて並列プログラムから生成したプロセスをグループ化して1つの並列プログラムの中に1以上のギャンググループを作成し、並列プログラム単位ではなくギャンググループ単位にギャングスケジューリングを行うためのギャンググループに関する管理を行うギャンググループ管理機能実現部,および前記ギャンググループ管理機能実現部により作成されたギャンググループを単位としてギャングスケジューリングを行うスケジューリング機能実現部として機能させるためのプログラム。
- ギャングスケジューリング機能を有するコンピュータシステムを、並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段,前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段,スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出すスケジューリング情報採取手段,当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択するスケジューリング実行手段,ならびに前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段として機能させるためのプログラム。
- ギャングスケジューリング機能を有するコンピュータシステムを、並列プログラム中のプロセスの生成時に当該プロセスに対して設定されたギャンググループ番号を持つギャンググループが当該並列プログラムにすでに存在するか否かを判定し、存在しない場合には当該ギャンググループ番号の新たなギャンググループを当該並列プログラム中に作成するギャンググループ作成手段,前記ギャンググループ作成手段によるギャンググループの作成時に、当該コンピュータシステムにおける使用可能CPU数以下の範囲で、当該ギャンググループに対する同時実行CPU数を設定する実行CPU数設定手段,スケジュールインターバル毎に動き、ギャンググループ単位にギャングスケジューリングに必要な情報を採取し、その採取に基づいて各ギャンググループに対するスケジューリング情報をスケジューリング情報テーブルに書き出し、その際に、ギャングスケジューリングに必要な情報の1つとして各プロセスに対して設定されているプライオリティを採取し、その採取に基づき前記スケジューリング情報テーブルに各ギャンググループに対するプライオリティを設定するスケジューリング情報採取手段,当該コンピュータシステムにおける使用可能CPU数および前記スケジューリング情報採取手段により前記スケジューリング情報テーブルに書き出されたスケジューリング情報を考慮して、ギャンググループ単位でのギャングスケジューリングを行い、スケジューリング対象のギャンググループを選択し、その際に、前記スケジューリング情報テーブル中の各ギャンググループに対するプライオリティをも考慮してギャングスケジューリングを行うスケジューリング実行手段,ならびに前記スケジューリング実行手段によるギャングスケジューリングによって選択されたギャンググループに属するプロセス群にCPUを割り当てるディスパッチング手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003068757A JP3885748B2 (ja) | 2003-03-13 | 2003-03-13 | グループ単位ギャングスケジューリング方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003068757A JP3885748B2 (ja) | 2003-03-13 | 2003-03-13 | グループ単位ギャングスケジューリング方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280293A JP2004280293A (ja) | 2004-10-07 |
JP3885748B2 true JP3885748B2 (ja) | 2007-02-28 |
Family
ID=33286000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003068757A Expired - Fee Related JP3885748B2 (ja) | 2003-03-13 | 2003-03-13 | グループ単位ギャングスケジューリング方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3885748B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11239123B2 (en) | 2013-08-29 | 2022-02-01 | Mitsubishi Electric Corporation | Semiconductor module, semiconductor device, and vehicle |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4028444B2 (ja) | 2003-06-27 | 2007-12-26 | 株式会社東芝 | スケジューリング方法およびリアルタイム処理システム |
JP2006140601A (ja) | 2004-11-10 | 2006-06-01 | Canon Inc | 画像処理装置及び画像処理装置の制御方法 |
JP4935595B2 (ja) * | 2007-09-21 | 2012-05-23 | 富士通株式会社 | ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0277870A (ja) * | 1988-06-30 | 1990-03-16 | Mitsubishi Electric Corp | 並列計算機システム |
JP2000250876A (ja) * | 1999-02-26 | 2000-09-14 | Nec Corp | ギャングスケジューリング方法及び装置 |
WO2002069174A1 (fr) * | 2001-02-28 | 2002-09-06 | Fujitsu Limited | Procede d'execution en parallele de processus et ordinateur a processeurs multiples |
-
2003
- 2003-03-13 JP JP2003068757A patent/JP3885748B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11239123B2 (en) | 2013-08-29 | 2022-02-01 | Mitsubishi Electric Corporation | Semiconductor module, semiconductor device, and vehicle |
Also Published As
Publication number | Publication date |
---|---|
JP2004280293A (ja) | 2004-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
JP4185103B2 (ja) | 実行可能プログラムをスケジューリングするためのシステム及び方法 | |
JP3678414B2 (ja) | 多重プロセッサ・システム | |
JP5744909B2 (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
US8185908B2 (en) | Dynamic scheduling in a distributed environment | |
US5884077A (en) | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process | |
WO2018120991A1 (zh) | 一种资源调度方法及装置 | |
KR101356033B1 (ko) | 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법 | |
CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
CN109086135B (zh) | 资源伸缩方法、装置、计算机设备及存储介质 | |
TW201519091A (zh) | 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
JP3541212B2 (ja) | プロセッサ割当て装置 | |
Xu et al. | Prophet: Scheduling executors with time-varying resource demands on data-parallel computation frameworks | |
JP3885748B2 (ja) | グループ単位ギャングスケジューリング方式 | |
CN110175078B (zh) | 业务处理方法及装置 | |
JP4121525B2 (ja) | リソース利用率を制御する方法およびコンピュータシステム | |
Sodan | Loosely coordinated coscheduling in the context of other approaches for dynamic job scheduling: a survey | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN116244073A (zh) | 混合关键分区实时操作系统的资源感知型任务分配方法 | |
Cheng et al. | Improving fair scheduling performance on hadoop | |
CN112783651B (zh) | 一种云平台vGPU负载均衡调度方法、介质及装置 | |
CN115509926A (zh) | 一种基于改进粒子群算法的多任务调度云端测试方法 |
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: 20060619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060823 |
|
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: 20061031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061113 |
|
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: 20091201 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101201 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111201 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131201 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |