JP5614318B2 - スケジューリングプログラム,方法および装置 - Google Patents

スケジューリングプログラム,方法および装置 Download PDF

Info

Publication number
JP5614318B2
JP5614318B2 JP2011029451A JP2011029451A JP5614318B2 JP 5614318 B2 JP5614318 B2 JP 5614318B2 JP 2011029451 A JP2011029451 A JP 2011029451A JP 2011029451 A JP2011029451 A JP 2011029451A JP 5614318 B2 JP5614318 B2 JP 5614318B2
Authority
JP
Japan
Prior art keywords
job
start time
typical
information
execution
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
JP2011029451A
Other languages
English (en)
Other versions
JP2012168756A (ja
Inventor
善史 宇治橋
善史 宇治橋
耕一 久門
耕一 久門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011029451A priority Critical patent/JP5614318B2/ja
Publication of JP2012168756A publication Critical patent/JP2012168756A/ja
Application granted granted Critical
Publication of JP5614318B2 publication Critical patent/JP5614318B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は,ジョブが使用する計算資源(リソース)の量と予測される実行時間とにもとづいてジョブ実行のスケジューリングを行うジョブスケジューリング技術に関する。
大規模な高性能計算機環境(HPC:High Performance Computing)において,リソースをユーザが共有する場合に,多種多様な規模や属性を持つジョブを効率的に実行するために,スケジューリング装置(以下,ジョブスケジューラ)が利用される。
ジョブスケジューラには,リソースの効率的使用を図りつつジョブ実行をスケジューリングするバックフィルスケジューリングという処理手法を採用するものがある。
バックフィルスケジューリングは,FCFS(First Come First Served)スケジューリングを改善したものである。FCFSスケジューリングでは,投入されたジョブの順にリソースを割り当ててジョブ実行の開始時刻を設定する。したがって,ジョブが使用するリソース量が多いジョブが投入された後に,リソース量が少ないジョブが投入されている場合に,先に投入されたジョブの開始時刻になるまでの間に,後に投入されたジョブの実行を終了できる量のリソースが実行時間分空いていても,投入順序で開始時刻が設定されるため,リソースの空きを活用することができなかった。
バックフィルスケジューリングでは,後に投入されたジョブであっても,先に投入されたジョブの開始時刻までに実行が終了すると見積もられているジョブについては,先に投入されたジョブの開始時刻前リソースに空きがある場合には,投入順序を追い越して,先に投入されたジョブの実行開始前に,後に投入されたジョブの実行を許可し,リソースの有効活用を実現する。
また,HPC環境のジョブ実行の管理に関連して,HPC環境を構成する各ノードの統合ファブリックを備え,複数のノードの情報を収集し,収集した情報にもとづいてグラフィカル要素を生成してユーザに提示するシステムにおいて,クラスタ管理エンジンが,ある特定の属性にもとづいてジョブキューに格納されたジョブをソートし,最適な大きさのジョブがバックフィル可能であるかを判定する処理手法が知られている。
また,並列処理システムにおいて複数のジョブキューでジョブを管理する場合に,ジョブのシステム資源要求量,待ち時間に応じて所属キューやキュー内優先度を設定して,ジョブのスケジューリングを行う処理手法が知られている。
特表2007−533034号公報 特開平8−16410号公報
バックフィルスケジューリングでは,投入ジョブで使用されるリソース量を超える空きがあり,先に投入されたジョブの開始時間を妨げない場合には,ジョブの投入順序にかかわらず,後の投入ジョブを先に開始するようスケジューリングする。
図15は,バックフィルスケジューリングによるジョブ実行のスケジューリング例を示す図である。
図15の縦軸は,ジョブで使用されるリソース量を,横軸は,経過時間を表す。ここで,ジョブの規模を,ジョブで使用されるリソース量と,予想される最大の実行時間とを用いて矩形領域として示す。図15に示すように,ジョブj1,j2,j3の順でジョブが投入されて,現時点(現在時刻)でジョブj1,j2の順でリソースが割り当てられ,開始時刻が設定されているとする。この場合に,さらに,ジョブj3のリソース量が,リソースの空き量の範囲内かつ予想実行時間がジョブj2の開始時刻までの時間内であれば,現在時刻に,ジョブj3の開始時刻が設定される。
しかし,バックフィルスケジューリングにおいても,後続する投入ジョブは,その予想実行時間が先行する投入ジョブの開始時刻までの時間以内でなければ,バックフィルの対象にはならず,結局リソースの有効活用ができないという問題があった。
図16は,従来のバックフィルスケジューリングにおける課題を説明するための図である。
例えば,図16(A)に示すように,ジョブj1〜j6の順で,実行するジョブが投入されたとする。この場合に,現時点で,ジョブj1,j2をリソースに割り当てて実行を開始する。そして,現時点でのリソースの空き量がジョブj3のリソース量に不足するため,ジョブj3については,ジョブj1の実行終了後に開始するようにスケジューリングする。
しかし,ジョブj4,j5,j6については,現時点でのリソースの空き量は,3つのジョブのリソース量を満たすが,予想実行時間がジョブj1の実行時間を超えるためにジョブj3の実行開始を妨げるとすると,バックフィルの対象として扱われない。そのため,現時点で,ジョブが割り当てられていないリソースが残り,リソースを効率的に使用することができない。
他方,ジョブを投入するユーザは,現在,他のユーザがどのような規模のジョブを投入しているかを知ることはできず,投入したジョブがバックフィルの対象となって比較的早期に開始されるのか,長い間待機させられるのかを知ることができない。
また,ユーザは,どのような規模のジョブであれば,どの時期に開始されるのかという目安となる情報を得ることができない。
1つの側面では,本発明は,ジョブの実行を要求する情報処理装置に,ジョブの要求を行う際に役立つ情報を提供することを目的とする。
本願において開示されるスケジューリングプログラムは,ジョブに割り当てられるリソース量と予想実行時間とに基づいてジョブの開始時刻を設定したスケジュール情報を用いて,ユーザによって投入されたジョブの実行をバックフィルによりスケジューリングするコンピュータに,ユーザからの開始時刻情報の要求を受け付け,記憶部に記憶された,割り当てられるリソース量および実行時間の組により示される規模が異なる複数の典型ジョブを示す典型ジョブ情報をもとに,前記典型ジョブ情報の典型ジョブ毎に,前記スケジュール情報における該典型ジョブの実行の開始予想時刻を算出し,前記典型ジョブ毎に算出した開始予想時刻をまとめた開始時刻情報を前記ユーザに表示する,処理を実行させるものである。
上記のプログラムによれば,ジョブの実行を要求する情報処理装置に,ジョブの要求を行う際に役立つ情報を提供することができる。
本発明の一態様として開示されるスケジューリング装置の構成例を示す図である。 一実施形態における典型ジョブ記憶部のデータ構成例を示す図である。 一実施形態におけるユーザ管理情報記憶部のデータ構成例を示す図である。 一実施形態におけるジョブキューおよびジョブ構造体の例を示す図である。 一実施形態におけるリソース予約テーブルの例を示す図である。 一実施形態における開始時刻記憶部のデータ構成例を示す図である。 一実施形態における投入ジョブ受付処理の処理フロー例を示す図である。 一実施形態における投入ジョブのスケジューリング処理の処理フロー例を示す図である。 リソース予約テーブルを用いたリソース割り当ての例を示す図である。 一実施形態における開始時刻情報提供処理の処理フロー例を示す図である。 典型ジョブのリソース割り当て処理(ステップS25)の,より詳細な処理フロー例を示す図である。 リソース予約テーブルを用いたリソース解放の例を示す図である。 一実施形態における開始時刻情報提供処理の別の処理フロー例を示す図である。 一実施形態におけるスケジューリング装置のハードウェア構成例を示す。 バックフィルスケジューリングによるジョブ実行のスケジューリング例を示す図である。 従来のバックフィルスケジューリングにおける課題を説明するための図である。
図1は,本発明の一態様として開示されるスケジューリング装置の構成例を示す図である。
スケジューリング装置1は,ジョブの実行のスケジュール情報にもとづいて新たなジョブのスケジューリングを行う装置である。スケジューリング装置1は,CPUおよびメモリ等を有するハードウェアと,ソフトウェアプログラムとを備えるコンピュータ・システム,または専用ハードウェアによって実現される。
スケジューリング装置1は,HPC環境に投入されたジョブの実行をスケジューリングし,さらに,ユーザに対し,特定の規模を示す典型ジョブがスケジューリングされた場合の開始時刻を示す開始時刻情報を提供する。
すなわち,スケジューリング装置1は,ユーザが投入したジョブを,バックフィルスケジューリングによりリソースに割り当てて開始時刻を設定し,各ジョブの実行を制御する。
さらに,スケジューリング装置1は,ジョブの特定の規模を表す典型ジョブを記憶し,ユーザから開始時刻情報の提供要求を受け付けると,投入ジョブのスケジュール上で典型ジョブのリソース割り当てを試行して開始時刻を求め,典型ジョブの開始時刻を示す開始時刻情報をユーザに提供する。
典型ジョブは,リソース量と実行時間との組み合わせによって,特定の規模を持つジョブを示すモデル情報であって,ジョブを投入する利用者に,ジョブ割り当ての指針を与える。
リソース量は,ジョブで使用されるリソースの量であり,例えば,リソースであるノードまたはCPUの並列数で示される。実行時間は,ジョブの実行に必要と見積もられる最大の時間であり,例えば,時間単位,または日数単位で示される。
上述の処理を実現するために,スケジューリング装置1は,ジョブ受付部101,ジョブキュー102,ジョブ割当部103,リソース予約管理部104,リソース予約テーブル105,ジョブ実行部106,典型ジョブ記憶部110,情報提供要求受付部111,開始時刻取得部112,開始時刻記憶部113,開始時刻情報通知部114,ユーザ管理情報記憶部115を備える。
ジョブ受付部101は,ユーザによって投入されたジョブ(投入ジョブ)を受け付け,ジョブキュー102に保持する。
ジョブキュー102は,ジョブ受付部101が受け付けた投入ジョブを受け付けた順に保持する記憶領域である。
ジョブ割当部103は,ジョブキュー102に保持された投入ジョブを1つずつ取り出して,投入ジョブのリソース割り当てを,リソース予約管理部104に要求する。
リソース予約管理部104は,リソース予約テーブル105を用いてリソースに対するジョブの管理を行い,ジョブ割当部103から渡された投入ジョブを,リソースに割り当てて開始時刻を決定する。さらに,リソース予約管理部104は,開始時刻取得部112から渡された典型ジョブを,リソースに割り当てて開始時刻を決定する。
リソース予約テーブル105は,リソースに対するジョブの割り当て状態を単位時刻で示すデータテーブルである。
ジョブ実行部106は,リソース予約テーブル105にもとづいて,投入ジョブの実行(開始と終了)を制御する。
典型ジョブ記憶部110は,1または複数の典型ジョブを記憶する。
情報提供要求受付部111は,ユーザから,開始時刻情報の提供機能(コマンド)の実行要求(提供要求)を受け付ける。より具体的には,情報提供要求受付部111は,典型ジョブの開始時刻情報提供機能のためのユーザインタフェースを備え,ユーザIDと提供要求とを受け付ける。または,情報提供要求受付部111は,ユーザIDと,開始時刻情報の提供を受けたいジョブの規模(リソース量および実行時間)の指定を受け付ける。
開始時刻取得部112は,ユーザの提供要求を受け付けた場合に,典型ジョブ記憶部110から典型ジョブを1つずつ取り出し,取り出した典型ジョブのリソース割り当てが試行された場合の開始時刻を得て,開始時刻記憶部113へ格納する。より具体的には,開始時刻取得部112は,典型ジョブ記憶部110から典型ジョブを1つずつ取り出し,ジョブ割当部103に対し,取り出した典型ジョブへのリソース割り当てを要求する。そして,開始時刻取得部112は,リソース予約管理部104から,要求した典型ジョブのリソース割り当ての結果において設定された開始時刻を取得し,開始時刻記憶部113に格納する。
また,開始時刻取得部112は,ユーザによる指定されたジョブのリソース量および実行時間をジョブ割当部103に渡して,指定されたジョブのリソース割り当てを要求し,その開始時刻を求める。
また,開始時刻取得部112は,ユーザ管理情報記憶部115を参照して,各ユーザに対するジョブ実行の制約をもとに,典型ジョブ記憶部110に記憶された典型ジョブの中から,ユーザに対する制約の範囲内である典型ジョブを取り出し,取り出した典型ジョブのリソース量および実行時間の組をジョブ割当部103に渡して,指定されたジョブのリソース割り当てを要求し,その開始時刻を求める。
開始時刻記憶部113は,リソース割り当てがなされた場合の典型ジョブに設定された開始時刻を記憶する。
開始時刻情報通知部114は,開始時刻記憶部113に記憶されている典型ジョブの開始時刻をまとめた開始時刻情報を,提供要求したユーザに送信する。
ユーザ管理情報記憶部115は,各ユーザに対する,ジョブ実行における制約として,ユーザが使用可能な最大のリソース量および最大の実行時間の指定を含むユーザ管理情報を記憶する。
図2は,典型ジョブ記憶部110のデータ構成例を示す図である。
図2に示すように,典型ジョブ記憶部110には,典型ジョブごとに,典型ジョブを一意に識別する典型ジョブID,使用されるリソース量,実行時間等が記憶されている。リソース量としてノード数を用い,典型的なリソース量(ノード数)として,1,4,16等の値が設定される。また,実行時間の単位として日数を用い,典型的な実行時間(日数)として,1,2,7等の値が設定される。
図2の例で,典型ジョブID=1の典型ジョブは,リソース量(ノード数)=1,実行時間(日数)=1の規模を示している。
図3は,ユーザ管理情報記憶部115のデータ構成例を示す図である。
図3に示すように,ユーザ管理情報記憶部115には,ユーザごとに,ユーザを一意に識別するユーザID,ユーザが使用できる最大のリソース量を示す最大リソース量(ノード数),ユーザが使用できる最大の時間を示す最大実行時間等が記憶されている。
図3の例で,ユーザID=1000のユーザに対し,64個のノード数を1日使用できるという制約を示している。
図4は,ジョブキューおよびジョブ構造体の例を示す図である。
ジョブキュー102には,生成されたジョブ構造体102−i(i=1,2,…)へのポインタが格納される。投入ジョブのジョブ構造体102−iへのポインタは,ジョブキュー102の最後尾に追加される。
ジョブ構造体102−iには,投入されたジョブごとに,ジョブを一意に識別するジョブID,ユーザを一意に識別するユーザID,リソース量(ノード数),実行時間,ジョブ状態等が設定される。
ジョブ状態は,ジョブの実行に関する状態を示し,例えば,ジョブが実行中を示す“running”,キューイング中(待機中)を示す“queued”等の値が設定される。
なお,ジョブ構造体102−iには,スケジューリングには関係がない種々の属性が設定されていてもよい。
図5は,リソース予約テーブル105の例を示す図である。
リソース予約テーブル105は,リソースに対するジョブの割り当ての状態を示す管理データである。本実施例では,あるリソースのリソース量を時系列的に管理するため,時系列に並べられた各時刻におけるリソース差分を要素とする配列として実施される。
図6は,開始時刻記憶部113のデータ構成例を示す図である。
図6に示すように,開始時刻記憶部113には,典型ジョブを示すリソース量(ノード数)と実行時間(日数)の組み合わせごとに,この典型ジョブに設置された開始時刻が記憶される。
図6(A)は,全典型ジョブについてリソース割り当てが試行された場合の,各典型ジョブに設定された開始時刻を示す情報の例,図6(B)は,ユーザによって指定されたリソース量および実行時間のジョブに設定された開始時刻を示す情報の例,図6(C)は,ユーザ管理情報にもとづいて,ユーザに対する制約の範囲内の典型ジョブに設定された開始時刻を示す情報の例である。
図6(A)の例では,例えば,リソース量=1かつ実行時間=1の規模である典型ジョブの開始時刻は,2010年6月10日12:00であり,リソース量=1かつ実行時間=2の規模である典型ジョブの開始時刻は,2010年6月10日12:00であることを示す。また,リソース量=1かつ実行時間=7の規模である典型ジョブの開始時刻は,2010年6月10日13:45であり,リソース量=4かつ実行時間=1の規模である典型ジョブの開始時刻は,2010年6月11日00:43であることを示す。
これにより,ユーザは,現時点(例えば6月10日10:00)で,複数のジョブを投入する予定がある場合に,ノード数が1個で,実行時間(日数)が2日までの規模のジョブを投入すれば,比較的早期に実行が開始されることを知ることができる。
また,ユーザは,ノード数が4個で,実行時間が1日の規模のジョブを投入しても,そのジョブの実行の開始が,2010年6月11日00:43まで待機されることを知ることができる。
次に,本実施形態における,スケジューリング装置1の処理の流れを説明する。
スケジューリング装置1では,投入ジョブ受付処理が実行される。投入ジョブ受付処理は,ユーザから送信されたジョブに関する情報の受信を契機に実行される。
図7は,投入ジョブ受付処理の処理フロー例を示す図である。
スケジューリング装置1にユーザがジョブを投入すると,ジョブ受付部101は,ユーザIDと投入ジョブのジョブ属性(リソース量,実行時間等)とを取得する(ステップS1)。ジョブ受付部101は,ユーザ管理情報記憶部115から,ユーザIDに対応する制約(最大リソース量,最大実行時間)を取得する(ステップS2)。
次に,ジョブ受付部101は,受け付けた投入ジョブのリソース量と実行時間が,ユーザに対する制約の範囲内であるか判定する(ステップS3)。投入ジョブのリソース量と実行時間とが制約の範囲内であれば(ステップS3のY),受け付けたジョブ属性にもとづいて,ジョブ状態に“queued”を設定したジョブ構造体102iを生成し,投入ジョブをジョブキュー102にキューイングする。
一方,投入ジョブのリソース量と実行時間とが制約の範囲内でなければ(ステップS3のN),ジョブ受付部101は,ジョブのキューイングを行わず,ジョブ投入を拒否する(ステップS5)。
次に,スケジューリング装置1では,投入ジョブのスケジューリング処理が実行される。投入ジョブのスケジューリング処理は,ジョブ投入またはジョブの実行終了を契機に実行される。
図8は,投入ジョブのスケジューリング処理の処理フロー例を示す図である。
ジョブ割当部103の要求により,リソース予約管理部104は,リソース予約テーブル105を初期化する(ステップS10)。次に,ジョブ割当部103は,ジョブキュー102から,先頭の投入ジョブを取り出し(ステップS11),取り出した投入ジョブのジョブ構造体から,リソース量と実行時間を得て,リソース予約管理部104に対してリソース割り当てを要求する(ステップS12)。
リソース予約管理部104は,ジョブ割当部103から投入ジョブのリソース量と実行時間を受け付けて,リソース予約表を用いて,未割り当ての期間の先頭からリソース量を実行時間分割り当てて投入ジョブの開始時刻を決定し,決定した開始時刻をジョブ割当部103に返却する(ステップS13)。
図9は,リソース予約テーブルを用いたリソース割り当ての例を示す図である。
リソース予約管理部104は,リソース予約テーブル105において,要求されたリソース量を確保できる時刻を配列の先頭から探索し,探索した先頭の時刻を開始時刻として設定する(ステップS131)。続いて,リソース予約管理部104は,設定した開始時刻から,要求された実行時間の期間でのリソース差分を積算して,要求されたリソース量を確保できるかをチェックする。リソース量が確保できた場合には,リソース予約管理部104は,確保した期間の終わりの時刻を終了時刻とする(ステップS132)。確保できなかった場合には,ステップS131の処理が繰り返される。
リソース予約管理部104は,リソース量が確保できた場合に,開始時刻または終了時刻に該当する時刻の要素が存在していれば,該当する期間をリソース差分に更新して,リソースを割り当てる。開始時刻または終了時刻に該当する時刻がなければ,リソース予約管理部104は,開始時刻または終了時刻に相当する時刻での要求されたリソース量の増分または減分の要素を配列の該当箇所に挿入する(ステップS133)。
その後,ジョブ割当部103は,リソース予約管理部104から投入ジョブの開始時刻を受け取ると,投入ジョブのジョブ状態が“queued”であれば,開始時刻が現在であるかを調べる(ステップS14)。開始時刻が現在であれば(ステップS14のY),ジョブ割当部103は,ジョブ実行部106に,ジョブ実行を要求し,その投入ジョブのジョブ構造体102−iのジョブ状態を“running”に変更し(ステップS15),ステップS17の処理へ進む。一方,開始時刻が現在でなければ(ステップS14のN),ジョブ割当部103は,次の投入ジョブをジョブキュー102−iから取得し(ステップS16),ステップS17の処理へ進む。
ジョブ割当部103は,ジョブキュー102に次のジョブがあるか判定し(ステップS17),次のジョブがあれば(ステップS17のY),ステップS12の処理へ戻り,次のジョブがなければ(ステップS17のN),処理を終了する。
スケジューリング装置1では,開始時刻情報提供処理が実行される。開始時刻情報提供処理は,ユーザからの提供要求の受付を契機に実行される。
図10は,開始時刻情報提供処理の処理フロー例を示す図である。
スケジューリング装置1が備えるインターフェースで,ユーザが,開始時刻情報提供処理のコマンドを実行すると,情報提供要求受付部111は,ユーザIDを取得する(ステップS20)。
開始時刻取得部112は,ジョブ割当部103に対し,ジョブキュー102に保持されている投入ジョブのリソース割り当て処理が実行される(ステップS21)。具体的には,開始時刻取得部112が,ジョブ割当部103に対し投入ジョブのリソース割り当て処理を要求すると,ジョブ割当部103が,ジョブキュー102の先頭から投入ジョブを1つずつ取り出して,ステップS11〜S13(図8参照)の処理を行う。これにより,リソース予約テーブル105が更新されることになる。
次に,開始時刻取得部112は,ユーザ管理情報記憶部115から,ユーザIDに対応する制約(最大リソース量,最大実行時間)を取得する(ステップS22)。そして,開始時刻取得部112は,典型ジョブ記憶部110の先頭から,典型ジョブ(リソース量と実行時間との組)を1つ取り出し(ステップS23),取り出した典型ジョブのリソース量と実行時間が,ユーザIDに対応する制約の範囲内であるかを判定する(ステップS24)。
典型ジョブのリソース量と実行時間がユーザの制約の範囲内であれば(ステップS24のY),典型ジョブのリソース割り当て処理が実行される(ステップS25)。典型ジョブのリソース割り当て処理については後述する。典型ジョブのリソース量と実行時間がユーザの制約の範囲内でなければ(ステップS24のN),開始時刻取得部112は,典型ジョブ記憶部110の次の典型ジョブ(リソース量と実行時間の組)を1つ取り出す(ステップS26)。次の典型ジョブが取り出せれば(ステップS27のY),ステップS24の処理へ戻る。次の典型ジョブが取り出せなければ(ステップS27のN),開始時刻情報通知部114は,典型ジョブのリソース割り当て処理により開始時刻記憶部113に記憶されている結果である,典型ジョブの開始時刻をまとめた開始時刻情報をユーザに表示して(ステップS28),処理を終了する。
図11は,典型ジョブのリソース割り当て処理(ステップS25)の,より詳細な処理フロー例を示す図である。
開始時刻取得部112は,取り出した典型ジョブのリソース量と実行時間との組をリソース予約管理部104に渡し,典型ジョブのリソース割り当てを要求する(ステップS251)。リソース予約管理部104は,リソース予約テーブル105を用いて,リソースに対して典型ジョブを割り当てて開始時刻を決定し,決定した開始時刻を開始時刻取得部112へ返却する(ステップS252)。開始時刻取得部112は,受け付けた典型ジョブの開始時刻を開始時刻記憶部113に格納する(ステップS253)。
その後,開始時刻取得部112が,リソース予約管理部104に対し,典型ジョブに割り当てられたリソースの解放を要求し,リソース予約管理部104は,該当するリソースの割り当てを解放する(ステップS254)。
図12は,リソース予約テーブル105を用いたリソース解放の例を示す図である。
リソース予約管理部104は,リソース予約テーブル105の先頭から,リソースへ割り当てた典型ジョブの開始時刻を探索し(ステップS501),探索した開始時刻から終了時刻を探索し(ステップS502),探索した開始時刻の要素のリソース差分から,典型ジョブに割り当てたリソース量分の要素を解放する。そして,リソース予約管理部104は,リソース割り当て時に,開始時刻に対応する時刻の要素においてリソース量の追加による調整をしていれば,その要素のリソース差分から調整分を減算し,その結果リソース差分が0になれば,その要素を削除する(ステップS503)。同様に,リソース予約管理部104は,リソース割り当て時に,終了時刻に対応する時刻の要素においてリソース量の減算による調整をしていれば,その要素のリソース差分に調整分を加算し,その結果リソース差分が0になれば,その要素を削除する(ステップS504)。
図13は,開始時刻情報提供処理の別の処理フロー例を示す図である。
図13に示す開始時刻情報提供処理は,ユーザによって,開始時刻情報の提供を受けたいジョブの規模が指定された提供要求の受信を契機として実行される。
スケジューリング装置1で,ユーザが開始時刻情報提供処理のコマンドを実行すると,情報提供要求受付部111は,ユーザID,指定されたリソース量および実行時間を取得する(ステップS30)。
次に,開始時刻取得部112は,ステップS21の処理と同様に,ジョブ割当部103に対して要求することにより,投入ジョブのリソース割り当て処理が実行される(ステップS31)。さらに,開始時刻取得部112は,ユーザ管理情報記憶部115から,ユーザIDに対応する制約(最大リソース量,最大実行時間)を取得する(ステップS32)。開始時刻取得部112は,指定されたリソース量と実行時間とが,ユーザIDに対応する制約の範囲内であるかを判定する(ステップS33)。
指定されたリソース量と実行時間が,ユーザの制約の範囲内であれば(ステップS33のY),ステップS25と同様に,指定されたジョブを典型ジョブとする典型ジョブのリソース割り当て処理が実行される(ステップS34)。そして,開始時刻情報通知部114は,開始時刻記憶部113に記憶されている,指定されたジョブのリソース割り当て処理の結果(開始時刻情報)をユーザに表示して(ステップS35),処理を終了する。
一方,指定されたリソース量と実行時間が,ユーザの制約の範囲内でなければ(ステップS33のN),開始時刻取得部112は,ユーザに,制約範囲を超えた値が指定されている旨を通知して(ステップS36),処理を終了する。
図14に,スケジューリング装置1のハードウェア構成例を示す。
スケジューリング装置1は,演算装置(CPU)601,一時記憶装置(DRAM,フラッシュメモリ等)602,永続性記憶装置(HDD,フラッシュメモリ等)603,およびジョブが投入されるリソースを含むHPCシステムとネットワークNを介したインターフェース604とを有するコンピュータ600と,入力装置(キーボード,マウス等)620と出力装置(ディスプレイ,プリンタ等)630とによって実施することができる。
また,スケジューリング装置1は,コンピュータ600が実行可能なプログラムによって実施することができる。この場合に,スケジューリング装置1が有すべき機能の処理内容を記述したプログラムが提供される。提供されたプログラムをコンピュータ600が実行することによって,上記説明したスケジューリング装置1の処理機能がコンピュータ600上で実現される。
すなわち,スケジューリング装置1の各処理部は,プログラムで構成することができ,これらのプログラムが一時記憶装置602にロードされて実行されることにより,各処理部の機能が実現される。スケジューリング装置1の各記憶部は,永続性記憶装置603に格納される。
なお,コンピュータ600は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ600は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。
さらに,このプログラムは,コンピュータ600で読み取り可能な記録媒体に記録しておくことができる。
以上説明したように,スケジューリング装置1は,図10および図13に示す,開始時刻情報提供処理によって,予め用意した種々の規模の典型ジョブやユーザが指定した規模のジョブについてリソース割り当てを試行し,試行において設定した開始時刻をまとめた開始時刻情報をユーザに提供することが可能となる。
また,スケジューリング装置1は,ユーザに対し,特定の規模のジョブが割り当てられた場合の開始時刻を示す情報を提供することができる。
これにより,ユーザは,ジョブの実行開始の目安を得ることができ,ジョブの投入を計画する場合に参考にすることができる。
また,ユーザは,開始時刻が比較的早い時点に設定されるジョブの規模がどのようなものであるかを知ることができ,該当するジョブの投入を優先することができる。
よって,ユーザを,バックフィルの対象となりやすいジョブの投入操作に誘導することができ,リソースの効率的に使用できるスケジューリングを実現することができる。
ユーザは,投入を予定しているジョブの規模を指定して開始時刻情報の提供を受けることにより,投入前に実行開始の時期を知ることができ,開始時刻によっては,ジョブの投入の順序を変更したり,ジョブの予想実行時間をジョブ実行のために必要十分な値まで短くしたりするなどして対応することができる。
したがって,スケジューリング装置1は,早期に実行が開始される可能性が高いジョブ,すなわち,バックフィルの対象となる可能性が高いサイズのジョブの投入操作へユーザを誘導し,リソースに対するジョブの効率的な割り当てを実行し,リソースの効率的使用を実現することができる。
また,スケジューリング装置1は,ユーザに対するジョブ実行の制約を記憶しておき,制約の範囲内の典型ジョブについてのみリソース割り当てを試行し,開始時刻を決定する。これにより,開始時刻情報提供処理で,ユーザに対して無用となる情報の処理を回避して,処理負担を軽減することができる。
1 スケジューリング装置
101 ジョブ受付部
102 ジョブキュー
103 ジョブ割当部
104 リソース予約管理部
105 リソース予約テーブル
106 ジョブ実行部
110 典型ジョブ記憶部
111 情報提供要求受付部
112 開始時刻取得部
113 開始時刻記憶部
114 開始時刻情報通知部
115 ユーザ管理情報記憶部

Claims (5)

  1. ジョブに割り当てられるリソース量と予想実行時間とに基づいてジョブの開始時刻を設定したスケジュール情報を用いて,ユーザによって投入されたジョブの実行をバックフィルによりスケジューリングするコンピュータに,
    ユーザからの開始時刻情報の要求を受け付け,
    記憶部に記憶された,割り当てられるリソース量および実行時間の組により示される規模が異なる複数の典型ジョブを示す典型ジョブ情報をもとに,前記典型ジョブ情報の典型ジョブ毎に,前記スケジュール情報における該典型ジョブの実行の開始予想時刻を算出し,
    前記典型ジョブ毎に算出した開始予想時刻をまとめた開始時刻情報を前記ユーザに表示する,
    処理を実行させる
    ことを特徴とするスケジューリングプログラム。
  2. 前記コンピュータに,
    記要求とともに,ジョブのリソース量および実行時間の指定を受け付け,
    前記記憶部に記憶された典型ジョブ情報から,前記指定されたリソース量および実行時間に一致する規模の典型ジョブを抽出し,前記スケジュール情報における前記抽出した典型ジョブの実行の開始予想時刻を算出し
    前記典型ジョブ情報の典型ジョブ毎に算出した開始予想時刻の代わりに,前記抽出した典型ジョブの実行の開始予想時刻を示す前記開始時刻情報を前記ユーザに表示する
    処理を実行させる
    ことを特徴とする請求項1に記載のスケジューリングプログラム。
  3. 前記コンピュータに,
    前記記憶部に記憶された,ユーザ使用可能な最大リソース量および最大実行時間を含むユーザ管理情報をもとに,前記ユーザの最大リソース量および最大実行時間以内の規模の典型ジョブを前記典型ジョブ情報から取り出し,前記スケジュール情報における該取り出した典型ジョブの実行の開始予想時刻を算出し,
    前記典型ジョブ情報の典型ジョブ毎に算出した開始予想時刻の代わりに,前記取り出した典型ジョブについて算出した開始予想時刻を示す前記開始時刻情報を前記ユーザに表示する,
    処理を実行させる
    ことを特徴とする請求項1に記載のスケジューリングプログラム。
  4. コンピュータが,ジョブに割り当てられるリソース量と予想実行時間とに基づいてジョブの開始時刻を設定したスケジュール情報を用いて,ユーザによって投入されたジョブの実行をバックフィルによりスケジューリングするスケジューリング方法において,
    前記コンピュータの情報提供要求受付部が,ユーザからの開始時刻情報の要求を受け付ける処理過程と,
    前記コンピュータの開始時刻取得部が,記憶部に記憶された,割り当てられるリソース量および実行時間の組により示される規模が異なる複数の典型ジョブを示す典型ジョブ情報をもとに,前記典型ジョブ情報の典型ジョブ毎に,前記スケジュール情報における該典型ジョブの実行の開始予想時刻を算出する処理過程と,
    前記コンピュータの開始時刻情報通知部が,前記典型ジョブ毎に算出した開始予想時刻をまとめた開始時刻情報を前記ユーザに表示する処理過程とを実行する
    ことを特徴とするスケジューリング方法。
  5. スケジュール情報を用いて,ユーザによって投入されたジョブの実行をバックフィルによりスケジューリングを行うスケジューリング装置において,
    ジョブに割り当てられるリソース量と予想実行時間とに基づいてジョブの開始時刻を設定したスケジュール情報を記憶する記憶部と,
    割り当てられるリソース量および実行時間の組により示される規模が異なる複数の典型ジョブを示す典型ジョブ情報を記憶する典型ジョブ情報記憶部と,
    ユーザからの開始時刻情報の要求を受け付ける情報提供要求受付部と,
    前記記憶部に記憶された典型ジョブ情報をもとに,前記典型ジョブ情報記憶部に記憶された典型ジョブ情報の典型ジョブ毎に,前記スケジュール情報における該典型ジョブの実行の開始予想時刻を算出する開始時刻算出部と,
    前記典型ジョブ毎に算出した開始予想時刻をまとめた開始時刻情報を前記ユーザに表示する開始時刻情報通知部とを備える
    ことを特徴とするスケジューリング装置。
JP2011029451A 2011-02-15 2011-02-15 スケジューリングプログラム,方法および装置 Expired - Fee Related JP5614318B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011029451A JP5614318B2 (ja) 2011-02-15 2011-02-15 スケジューリングプログラム,方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011029451A JP5614318B2 (ja) 2011-02-15 2011-02-15 スケジューリングプログラム,方法および装置

Publications (2)

Publication Number Publication Date
JP2012168756A JP2012168756A (ja) 2012-09-06
JP5614318B2 true JP5614318B2 (ja) 2014-10-29

Family

ID=46972849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011029451A Expired - Fee Related JP5614318B2 (ja) 2011-02-15 2011-02-15 スケジューリングプログラム,方法および装置

Country Status (1)

Country Link
JP (1) JP5614318B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5684629B2 (ja) * 2011-03-31 2015-03-18 日本電気株式会社 ジョブ管理システム及びジョブ管理方法
JP6114829B2 (ja) * 2012-09-28 2017-04-12 サイクルコンピューティング エルエルシー 仮想環境における演算インフラストラクチャのリアルタイム最適化
JP6264803B2 (ja) * 2013-09-24 2018-01-24 富士通株式会社 ジョブ抽出プログラム、ジョブ抽出装置、及びジョブ抽出方法
JP6364880B2 (ja) * 2014-03-31 2018-08-01 富士通株式会社 並列計算機システム,ジョブ管理装置の制御プログラム,及び並列計算機システムの制御方法
JP6540107B2 (ja) * 2015-03-09 2019-07-10 富士通株式会社 並列演算装置、並列演算システム、およびジョブ制御プログラム
JP6666555B2 (ja) * 2016-05-25 2020-03-18 富士通株式会社 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
US8261283B2 (en) * 2005-02-16 2012-09-04 Yissum Research Development Company Of Hebrew University Of Jerusalem System and method for backfilling with system-generated predictions rather than user runtime estimates
JP4977729B2 (ja) * 2009-03-30 2012-07-18 みずほ情報総研株式会社 ジョブスケジュール変更支援システム、方法及びプログラム

Also Published As

Publication number Publication date
JP2012168756A (ja) 2012-09-06

Similar Documents

Publication Publication Date Title
WO2021208546A1 (zh) Kubernetes集群架构系统下多维资源调度方法
JP5614318B2 (ja) スケジューリングプログラム,方法および装置
JP4935595B2 (ja) ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US9277003B2 (en) Automated cloud workload management in a map-reduce environment
US20200174844A1 (en) System and method for resource partitioning in distributed computing
US9715406B2 (en) Assigning and scheduling threads for multiple prioritized queues
KR101721892B1 (ko) 쿼리 관리
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
US9477710B2 (en) Isolating resources and performance in a database management system
Cheng et al. Cross-platform resource scheduling for spark and MapReduce on YARN
EP2341432A1 (en) System and method of co-allocating a reservation spanning different compute resources types
JP2016042245A (ja) プロジェクトを管理するシステム、方法およびプログラム
US9483247B2 (en) Automated software maintenance based on forecast usage
CN109857535B (zh) 面向Spark JDBC的任务优先级控制的实现方法及装置
JP2017514247A (ja) 時間、資源および予算の制約下での構造化経営組織内のプロジェクトの選択および資源の割り当てを最適化する枠組み
US20200117504A1 (en) Evolutionary modelling based non-disruptive scheduling and management of computation jobs
JP2017016541A (ja) 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
US20100275207A1 (en) Gathering statistics in a process without synchronization
Klusáček et al. Efficient grid scheduling through the incremental schedule‐based approach
US11036549B2 (en) Parallel processing apparatus, and method of maintaining parallel processing apparatus
US6782535B1 (en) Dynamic queue width system and method
EP2840513B1 (en) Dynamic task prioritization for in-memory databases
JP2003208323A (ja) バッチジョブの実行方法、システムおよびプログラム
US20230062402A1 (en) Information processing apparatus and job scheduling method
US20170147408A1 (en) Common resource updating apparatus and common resource updating method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140728

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140825

R150 Certificate of patent or registration of utility model

Ref document number: 5614318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees