(57)【要約】【課題】最大使用電力の制限範囲におけるジョブの実行を効率的に管理する情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法を提供することにある。【解決手段】ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムにおいて、前記ジョブ管理ノードは、スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有する。【選択図】図１０
2015049562.tif 000002
【特許請求の範囲】
【請求項１】
ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムにおいて、
前記ジョブ管理ノードは、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有する情報処理システム。
【請求項２】
請求項１において、
前記ジョブ管理ノードはさらに、
各計算ノードが実行しているジョブである実行中ジョブの実測使用電力値を取得して、前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記実行中ジョブの実行を制御する実行制御部と、を有する情報処理システム。
【請求項３】
請求項１または２において、
前記スケジュール対象ジョブはさらに、
前記スケジュール対象ジョブのプロセス数、予測データ入出力量のいずれかまたは両方を含み、
前記取得部は、
前記スケジュール対象ジョブの使用計算ノード数に加えて、前記プロセス数、前記予測データ入出力量のいずれかまたは両方が一致、または、前記プロセス数、前記予測データ入出力量のいずれかまたは両方の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する情報処理システム。
【請求項４】
請求項１または２において、
前記スケジュール対象ジョブはさらに、
前記スケジュール対象ジョブのジョブ種別を含み、
前記取得部は、
前記ジョブ識別情報と前記ジョブ種別とが一致する実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する情報処理システム。
【請求項５】
請求項２において、
前記実行制御部は、
前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記実行中ジョブのうち実測使用電力値が前記予測最大使用電力値を超える電力値超過ジョブを所定の時間停止させる情報処理システム。
【請求項６】
請求項５において、
前記実行制御部は、
前記電力値超過ジョブの前記所定の時間の停止を基準回数行っても、前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記電力値超過ジョブを終了させる情報処理システム。
【請求項７】
複数の計算ノードが実行するジョブの管理を行うジョブ管理装置において、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有するジョブ管理装置。
【請求項８】
複数の計算ノードが実行するジョブの管理を行うジョブ管理装置の制御プログラムにおいて、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記ジョブ管理装置が有する取得部に、前記スケジュール対象ジョブの予測最大使用電力値として取得させ、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記ジョブ管理装置が有するスケジュール部に、前記スケジュール対象ジョブをスケジュールさせるジョブ管理装置の制御プログラム。
【請求項９】
ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムの制御方法において、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記ジョブ管理ノードが有する取得部が、前記スケジュール対象ジョブの予測最大使用電力値として取得し、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記ジョブ管理ノードが有するスケジュール部が、前記スケジュール対象ジョブをスケジュールする情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法に関する。
【背景技術】
【０００２】
近年のスーパーコンピュータのような大規模なコンピュータシステムでは、従来よりも多量のジョブが管理され、実行される。このようなコンピュータシステムは、例えば、管理ノードと複数の計算ノードとを有する。管理ノードは、例えば、ジョブのスケジュールを作成し、各計算ノードにジョブの実行を指示する。また、各計算ノードはジョブを実行する（例えば、特許文献１）。
【０００３】
また、２０１１年３月の東日本大震災の影響によって電力の供給力が減少したことに伴い、大口需要者に対して、電気事業法第27条に基づいた電力使用制限が実施されるようになった。これにより、例えば、電力需要が増加する夏期の時間帯において、使用電力の１５％の削減が実施される。また、大口需要者は、法律による電力使用制限とは別に、時間を区切ってシステムを停止するなどの対応によって、管内における電力使用量を抑えている。
【０００４】
電力使用量を考慮する場合、環境保護の観点で合計使用量を抑える取組みと、供給量が減少したことに対応して、瞬間の最大使用電力を使用制限の範囲に抑える取組みとがある。前者の取組みとして、低消費電力を実現するための計算機システムや制御方式が検討される。また、後者の取組みとして、例えば、大規模なコンピュータシステムにおいて、最大使用電力を意識した運用が求められる。例えば、システム内の一部のハードウェア（計算ノード、周辺装置）の電源の手作業による遮断制御によって、大規模なコンピュータシステムにおける最大使用電力の制限が行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２-７３６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一部のハードウェアの電源遮断制御によると、大まかな見積りに基づくことにより、最大使用電力の制限値と、コンピュータシステムの使用電力値との差異が大きくなり易い。また、一部のハードウェアが使用できなくなることに伴い計算資源が不足することによって、実行できないジョブが生じる。このように、最大使用電力を制限値に抑えながら、効率的にジョブを実行することができていなかった。また、ハードウェアの電源の遮断制御処理には、人的コストが生じる。
【０００７】
１つの側面では、本発明は、最大使用電力の制限範囲におけるジョブの実行を効率的に管理する情報処理システム、ジョブ管理装置、ジョブ管理装置の制御プログラム、及び、情報処理システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の側面は、ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムにおいて、前記ジョブ管理ノードは、スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有する。
【発明の効果】
【０００９】
第１の側面によれば、最大使用電力の制限範囲におけるジョブの実行が効率的に管理される。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態例における情報処理システムの構成を説明する図である。
【図２】図１の情報システムにおけるジョブ管理ノードの構成の一例を説明する図である。
【図３】本実施の形態例におけるジョブ管理ノードのブロック図の一例を示す図である。
【図４】ジョブの登録情報の一例について説明する図である。
【図５】スケジュール対象となるジョブの一例について説明する図である。
【図６】ジョブの基本的なスケジュール処理について説明する図である。
【図７】１日における使用制限電力値について説明する図である。
【図８】本実施の形態例におけるスケジュール処理の概要について説明する図である。
【図９】ジョブ管理ノードの全体の処理の概要について時系列に説明する図である。
【図１０】ジョブのスケジュール処理を説明するフローチャート図である。
【図１１】ジョブの実行制御処理について説明するフローチャート図である。
【図１２】実行中ジョブの電力値監視処理について説明するフローチャート図である。
【図１３】実行調整処理（図１２のＳ４８）について説明するフローチャート図である。
【図１４】具体的における使用制限電力値の変移について説明する図である。
【図１５】具体例におけるジョブＡ〜Ｅについて説明する図である。
【図１６】スケジュール処理を説明する第１の図である。
【図１７】スケジュール処理を説明する第２の図である。
【図１８】スケジュール処理を説明する第３の図である。
【図１９】使用制限電力値とジョブ管理処理が行われた場合の使用電力値とを例示する図である。
【発明を実施するための形態】
【００１１】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
［情報処理システム］
図１は、本実施の形態例における情報処理システムの構成を説明する図である。本実施の形態例における情報処理システムは、例えば、ジョブ管理ノード１０、複数の計算ノード２０、ログインノード３０、ストレージＳＴを有する。  ジョブ管理ノード１０は、複数の計算ノード２０に接続されると共に、ログインノード３０に接続される。ログインノード３０は、例えば、インターネットを介して接続されるユーザの端末装置４０から、実行対象のジョブの登録を受け付ける。ジョブ管理ノード１０は、ログインノード３０から、登録されたジョブの情報を取得し、ジョブのスケジュールを生成する。また、ジョブ管理ノード１０は、生成したスケジュールに基づいて、ジョブのプログラムや入力情報等をストレージＳＴから読み出し、計算ノード２０にジョブの実行を指示する。各計算ノード２０は、ジョブ管理ノード１０からの指示に基づいて、ジョブを実行する。
【００１３】
［ジョブ管理ノード１０の構成］
図２は、図１の情報システムにおけるジョブ管理ノード１０の構成の一例を説明する図である。図２のジョブ管理ノード１０は、例えば、入力装置１１、表示装置１２、通信インタフェース１３、プロセッサ１４、記憶媒体１５、メモリ１６を有する。各部は、バス１７を介して互いに接続される。入力装置１１は、例えば、キーボードやマウス等を示し、表示装置１２は、例えば、ディスプレイ等の表示画面を示す。また、ジョブ管理ノード１０は、通信インタフェース１３を介して、複数の計算ノード２０やログインノード３０との通信を行う。メモリ１６には、本実施の形態例におけるジョブ管理プログラムＰＲが記憶される。ジョブ管理プログラムＰＲは、プロセッサ１４と協働して、本実施の形態例におけるジョブの管理処理を実現する。
【００１４】
［ジョブ管理ノード１０のブロック図］
図３は、本実施の形態例におけるジョブ管理ノード１０のブロック図の一例を示す図である。本実施の形態例におけるジョブ管理ノード１０は、例えば、ジョブマネージャ１２とジョブスケジューラ１１と資源管理部１８とを有する。例えば、ジョブスケジューラ１１は、ジョブの管理を行うと共に、ジョブのスケジュールを生成する。ジョブスケジューラ１１は、例えば、ジョブ選択部１３、ジョブ割り当て部１４、ジョブ実行制御部１５を有する。
【００１５】
ジョブスケジューラ１１のジョブ選択部１３は、スケジュール対象の複数のジョブから、優先度の高い順にジョブを選択し、ジョブの情報をジョブ割り当て部１４に渡す。ジョブの情報については、後述する。また、ジョブ選択部１３は、選択したジョブの情報をジョブマネージャ１２に出力し、ジョブの最大使用電力の予測値（以下、予測最大使用電力値と称する）を取得する。ジョブの最大使用電力とは、当該ジョブの実行に使用される電力値の最大値を示す。なお、取得された予測最大使用電力値についても、ジョブ割り当て部１４に出力される。
【００１６】
ジョブ割り当て部１４は、ジョブ選択部１３から出力された情報に基づいて、ジョブのスケジュールを生成する。具体的に、ジョブ割り当て部１４は、ジョブが使用する数（以下、使用計算ノード数）の計算ノード２０を確保可能な時間帯であって、ジョブの予測される実行時間（以下、予測実行時間）に対応する時間帯に対してジョブを割り当てることによりスケジュールを行う。また、本実施の形態例において、ジョブ割り当て部１４は、ジョブの予測最大使用電力値の合計が、使用制限電力値を超えないようにスケジュールを行う。使用制限電力値は、時刻に対応して設定される。
【００１７】
ジョブ実行制御部１５は、ジョブの割り当て部によって生成されたスケジュールに基づいて、実行開始時刻に達するジョブを、資源管理部１８を介して、ジョブの使用計算ノード数に対応する数のジョブ実行部（計算ノード）２０に転送する。また、各ジョブ実行部２０は、使用電力計測部２１と接続され、使用電力計測部２１によって計測された、ジョブの現在の使用電力値を取得する。また、ジョブ実行部２０は、ジョブの終了時に、当該ジョブの使用電力値の最大値をジョブ実行制御部１５に出力する。ジョブの使用電力値の最大値は、ジョブ実行制御部１５によって、ジョブマネージャ１２の使用電力記憶部１７に記憶される。
【００１８】
また、図３のジョブマネージャ１２は、例えば、ジョブスケジューラ１１の管理、及び、ジョブの使用電力値の管理を行う。ジョブマネージャ１２は、例えば、ジョブ実行制御部１５、使用電力予測部１６、使用電力記憶部１７を有する。
【００１９】
使用電力記憶部１７には、各実行済みジョブの情報が記憶される。具体的に、使用電力記憶部１７には、例えば、実行済みジョブが使用した計算ノード数の実績、実行時間の実績、ジョブを実行した計算ノード２０が使用した最大使用電力値の実績が記憶される。使用電力予測部１６は、使用電力記憶部１７を参照し、ジョブ選択部１３から出力されたジョブの情報に基づいて、当該ジョブの予測最大使用電力値を取得する。また、ジョブマネージャ１２のジョブ実行制御部１５は、資源管理部１８を介して、実行中ジョブの使用電力値を監視すると共に、実行済みのジョブの情報を使用電力記憶部１７に記憶する。
【００２０】
次に、ジョブの情報について説明する。ジョブの情報は、例えば、ジョブの投入時にユーザによって登録される（以下、登録情報と称する）。
【００２１】
［ジョブの登録情報］
図４は、ジョブの登録情報の一例について説明する図である。図４の表Ｈ１では、ジョブの登録情報の一部として、ジョブ識別情報、ジョブ種別、使用計算ノード数、プロセス数、予測Ｉ／Ｏ量、予測実行時間が例示される。ただし、ジョブの登録情報は、この例に限定されるものではない。
【００２２】
ジョブ識別情報とは、例えば、ジョブの名前を示す。ジョブ種別とは、例えば、逐次ジョブ、または、並列ジョブを示す。逐次ジョブとは、例えば、計算ノード２０間において独立して実行されるジョブを示す。また、並列ジョブとは、例えば、複数の計算ノード２０間で連携して実行されるジョブを示す。使用計算ノード数は、ジョブの実行に使用される計算ノード２０の数を示す。プロセス数は、ジョブの実行によって生成されるプロセスの予測数を示す。また、予測Ｉ／Ｏ量は、ジョブ内で行われるファイルシステムへのＩ／Ｏの予測量を示す。予測実行時間は、ジョブの実行開始から終了までにかかる予測時間を示す。
【００２３】
また、図４の表Ｈ２は、ジョブの登録情報の具体例を示す。表Ｈ２によると、ジョブＡのジョブ種別は逐次ジョブであって、使用計算ノード数は８台である。また、ジョブＡのプロセス数は１６であり、予測Ｉ／Ｏ量は３０である。また、ジョブＡの予測実行時間は５ｈである。即ち、ジョブＡは、実行開始から５時間後に終了することが予測される。同様にして、他のジョブについても、ジョブの投入時に、図４の表Ｈ２に示すような登録情報がユーザによって入力される。
【００２４】
続いて、ジョブの基本のスケジュール処理について説明する。ここで、スケジュール対象となるジョブの一例について説明する。
【００２５】
図５は、本実施の形態例において、スケジュール対象となるジョブの一例について説明する図である。この例では、５つのジョブＡ〜Ｅが投入される。また、図５において、各ジョブＡ〜Ｅの登録情報の一部が例示される。また、この例において、ジョブＡ〜Ｅの順にジョブが投入され、ジョブの投入順に優先度が設定される。このため、ジョブＡの優先度が最も高く、次にジョブＢの優先度が高い。
【００２６】
図５の例において、具体的に、各ジョブの使用計算ノード数は、ジョブＡ：８台、ジョブＢ：３台、ジョブＣ：２０台、ジョブＤ：１２台、ジョブＥ：３２台である。また、ジョブＡ〜Ｅの予定実行時間は、ジョブＡ：５ｈ、ジョブＢ：４ｈ、ジョブＣ：１０ｈ、ジョブＤ：１ｈ、ジョブＥ：６ｈである。予測最大使用電力値については、後述する。なお、図５の例では、ジョブの投入順に優先度が設定されるが、この例に限定されるものではない。各ジョブの優先度は、ユーザによって任意に入力されてもよい。
【００２７】
［スケジュール処理］
図６は、ジョブの基本的なスケジュール処理について説明する図である。図６において、縦軸は計算ノード数、横軸は時間を示す。この例において、情報処理システムが有する計算ノード２０の数は、例えば、３２台である。このため、各時間帯で割り当てられる使用計算ノード数の合計が３２台を超えないようにスケジュールが生成される。
【００２８】
具体的に、スケジュール処理では、例えば、優先度の高いジョブから順に、ジョブの使用計算ノード数に対応する数の計算ノード２０が現在時刻から近い時間帯に割り当てられることによってスケジュールが行われる。まず、最も優先度の高いジョブＡｊａがスケジュール対象とされる。そこで、使用計算ノード数が８台であって、予測実行時間が５時間であるジョブＡｊａが、現在時刻から５時間の時間帯にスケジュールされる。これにより、現在時刻から５時間の時間帯において、８台の計算ノード２０がジョブＡｊａのために使用される。
【００２９】
続いて、次に優先度の高いジョブＢｊｂがスケジュール対象とされる。そして、使用計算ノード数が３台であって、予測実行時間が４時間であるジョブＢｊｂが、現在時刻から４時間の時間帯にスケジュールされる。これにより、現在時刻から４時間の時間帯において、１１（＝８＋３）台の計算ノード２０がジョブＡｊａ、ジョブＢｊｂのために確保される。また、４時間後と５時間後との間の時間帯において、８台の計算ノード２０がジョブＡｊａのために確保される。
【００３０】
続いて、使用計算ノード数が２０台であって、予測実行時間が１０時間であるジョブＣｊｃが、現在時刻から１０時間の時間帯にスケジュールされる。これにより、現在時刻から４時間の時間帯において、３１（＝８＋３＋２０）台の計算ノード２０がジョブＡｊａ〜Ｃｊｃのために確保される。同様にして、４時間後と５時間後との間の時間帯において、２８（＝８＋２０）台の計算ノード２０がジョブＡｊａ、Ｃｊｃのために、５時間後と１０時間後との間の時間帯において、２０台の計算ノード２０がジョブＣｊｃのために確保される。これらの時間帯において、割り当てられた計算ノード２０の数の合計は、本実施の形態例における情報処理システムが有する計算ノード２０の数（３２台）に収まっている。
【００３１】
次に、使用計算ノード数が１２台であって、予測実行時間が１時間であるジョブＤｊｄがスケジュール対象とされる。ただし、ジョブＤｊｄが現在時刻から１時間の時間帯にスケジュールされると、現在時刻から１時間の時間帯において割り当てられた計算ノード２０の数の合計は、４３（＝８＋３＋２０＋１２）台となる。これは、本実施の形態例における情報処理システムが有する計算ノード２０の数（３２台）を超える。そこで、ジョブＤｊｄは、割り当てられる計算ノード２０の合計が３２台を超えないように未来の時間帯にシフトされ、ジョブＡｊａの終了後の時刻から１時間の時間帯にスケジュールされる。このとき、ジョブＡｊａの終了後の時刻から１時間の時間帯には、ジョブＣｊｃ、Ｄｊｄがスケジュールされ、当該時間帯において割り当てられた計算ノード数の合計（３２台＝２０＋１２）は３２台に収まる。
【００３２】
また、使用計算ノード数が３２台であって、予測実行時間が６時間であるジョブＥｊｅについても、割り当てられる計算ノード２０の合計が３２台を超えないように、ジョブＣｊｃの終了後の時刻から６時間の時間帯にスケジュールされる。このように、優先度の高いジョブによって計算ノード２０が確保されたことにより、現在時刻において計算ノード数が確保できないジョブ（この例では、ジョブＤｊｄ、ジョブＥｊｅ）については、未来の時間帯にスケジュールされる。
【００３３】
続いて、使用制限電力値について説明する。使用制限電力値は、使用可能な電力値の上限値を示す。また、使用制限電力値は、例えば、時刻に対応して設定される。
【００３４】
［使用制限電力値］
図７は、１日における使用制限電力値について説明する図である。図７において、縦軸は電力値を示し、横軸は時間を示す。また、線ｘ１１は使用電力値の実績を示し、点線ｘ１２は使用制限電力値を示す。
【００３５】
図７の使用制限電力値の例によると、１０時〜１７時のような日中の時間帯において、使用制限電力値ｘ１２が抑えられる。そこで、例えば、１０時〜１７時における電力使用値を抑えるために、１０時前に、システムの一部のハードウェア（計算ノード２０、周辺装置）の電源が遮断制御される。そして、１７時を過ぎると、電源遮断制御されたハードウェアの電源投入制御が行われる。このような電源制御の結果、１０時前を示す時間ｔ１において使用電力値の実績ｘ１１が減少すると共に、１７時過ぎを示す時間ｔ２において使用電力値の実績ｘ１１が上昇している。
【００３６】
しかしながら、システムの一部のハードウェアの電源制御によって使用電力値を抑制する場合、大まかな見積りに基づくと共に、使用制限電力値ｘ１２の範囲内に確実に使用電力値ｘ１１を収めるために、より多くのハードウェアに対して電源制御が行われる。これにより、使用電力値の実績ｘ１１と、使用制限電力値ｘ１２との差異ｙ１が大きくなり易い。また、一部の計算ノード２０の電源が遮断制御されることにより計算ノード２０が不足し、実行できないジョブが生じてしまう。
【００３７】
そこで、本実施の形態例における情報処理システムにおけるジョブ管理ノード１０は、スケジュール対象ジョブとジョブ識別情報が一致する実行済みジョブ、または、スケジュール対象ジョブと使用計算ノード数が一致、または、スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノード２０が使用した最大使用電力値を、スケジュール対象ジョブの予測最大使用電力値として取得する。そして、ジョブ管理ノード１０は、スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、スケジュール対象ジョブをスケジュールする。
【００３８】
このように、本実施の形態例におけるジョブ管理ノード１０は、ジョブの登録情報と、実行済みジョブの実績情報とに基づいて、スケジュール対象のジョブの予測最大使用電力値を取得する。そして、ジョブ管理ノード１０は、各ジョブの予測最大使用電力値に基づくことにより、ジョブによって使用される電力値のピークが、予め、使用制限電力値に収まるようにジョブのスケジュールを生成することができる。これにより、本実施の形態例における情報処理システムは、時刻に応じて設定される使用制限電力値に合わせて、柔軟に、ジョブをスケジュールすることができる。即ち、情報処理システムは、電力使用制限量の範囲内において実行可能なジョブを効率よく実行させることができる。
【００３９】
ここで、まず、ジョブの予測最大使用電力値の取得処理の詳細について説明する。ここでは、予測最大使用電力値の取得処理の２つの事例について説明する。
【００４０】
［予測最大使用電力値の取得処理］
まず、第１の例について説明する。ジョブが使用する電力値は、例えば、ジョブの使用計算ノード数、プロセス数、Ｉ／Ｏ量に応じて変動する。そこで、第１の例において、ジョブ管理ノード１０の使用電力予測部１６は、スケジュール対象のジョブの使用計算ノード数、プロセス数、予測Ｉ／Ｏ量に基づいて、ジョブの予測最大使用電力値を取得する。より具体的に、使用電力予測部１６は、スケジュール対象のジョブ（例えば、ジョブＡ）の使用計算ノード数、プロセス数、予測Ｉ／Ｏ量と、使用計算ノード数の実績、プロセス数の実績、Ｉ／Ｏ量の実績とが一致する実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。これにより、使用電力予測部１６は、ジョブＡの予測最大使用電力値（この例では、２０ｋＷ）を取得する。
【００４１】
または、使用電力予測部１６は、スケジュール対象のジョブの使用計算ノード数、プロセス数、予測Ｉ／Ｏ量と、使用計算ノード数の実績、プロセス数の実績、Ｉ／Ｏ量の実績との差が所定の範囲内にある実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。
【００４２】
例えば、使用電力予測部１６は、スケジュール対象のジョブとの使用計算ノード数、プロセス数、予測Ｉ／Ｏ量の差分値が所定の値範囲に収まる実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。所定の値範囲は、例えば、使用計算ノード数、プロセス数、予測Ｉ／Ｏ量それぞれについて設定される。なお、所定の値範囲は、計算ノードのスペック、及び、使用計算ノード数、プロセス数、予測Ｉ／Ｏ量の値のばらつき等に応じて異なるため、例えば、実験値に基づいて予め設定される。所定の値の範囲が適切な値に設定されることにより、使用電力予測部１６は、より高精度に、予測最大使用電力値を取得することができる。
【００４３】
または、例えば、使用電力予測部１６は、スケジュール対象のジョブとの使用計算ノード数、プロセス数、予測Ｉ／Ｏ量の差分値の割合が所定の範囲内に収まる実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。例えば、スケジュール対象のジョブの使用計算ノード数が５０台であって、実行済みジョブの使用計算ノード数の実績値が６０台である場合を例示する。この場合、差分値の割合は、２０％（＝１０（差分値）／５０（使用計算ノード数）×１００）となる。使用電力予測部１６は、プロセス数、予測Ｉ／Ｏ量についても、同様にして、差分値の割合を算出する。そして、使用電力予測部１６は、それぞれの差分値の割合が所定の範囲内に収まる実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。
【００４４】
なお、差分値の割合の所定の範囲も、計算ノードのスペック、及び、使用計算ノード数、プロセス数、予測Ｉ／Ｏ量の値のばらつき等に応じて異なるため、例えば、実験値に基づいて予め設定される。
【００４５】
このように、使用電力予測部１６は、スケジュール対象ジョブの一部の登録情報と、実際に実行されたジョブの登録情報の実績値とが一致またはその差が所定の範囲内の実行済みジョブの最大使用電力値の実績値を、スケジュール対象ジョブの予測最大使用電力値として取得する。これにより、使用電力予測部１６は、ジョブの登録や最大使用電力値の実績値に基づいて、精度の高いスケジュール対象ジョブの予測最大使用電力値を取得することができる。
【００４６】
なお、使用計算ノード数、プロセス数、予測Ｉ／Ｏ量のうち、ジョブが使用する電力値に対して、使用計算ノード数の影響が最も大きい。そこで、使用電力予測部１６は、スケジュール対象のジョブ（例えば、ジョブＡ）と使用計算ノード数が一致する、または、使用計算ノード数との差が所定の範囲内である実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得してもよい。または、使用電力予測部１６は、スケジュール対象のジョブの使用計算ノード数に加えて、プロセス数、予測Ｉ／Ｏ量のいずれかに基づいて、予測最大使用電力値を取得してもよい。
【００４７】
次に、第２の例について説明する。例えば、ジョブ名（ジョブ識別情報）が一致する２つのジョブの処理内容は類似する可能性が高いことにより、使用最大電力値についても近似する値になることが想定される。そこで、第２の例において、ジョブ管理ノード１０の使用電力予測部１６は、スケジュール対象のジョブのジョブ識別情報に基づいて、ジョブの予測最大使用電力値を取得する。より具体的に、使用電力予測部１６は、スケジュール対象のジョブ（例えば、ジョブＡ）のジョブ識別情報が一致する実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得する。これにより、使用電力予測部１６は、ジョブの予測最大使用電力値を取得することができる。
【００４８】
または、使用電力予測部１６は、ジョブ識別情報に加えて、ジョブ種別が一致する実行済みジョブの最大使用電力値の実績を、スケジュール対象の予測最大使用電力値として取得してもよい。ジョブ種別とは、例えば、図４で例示した逐次ジョブまたは並列ジョブ等の種別や、ジョブの処理内容に応じて任意に区分されるグループ等を示す。使用電力予測部１６は、ジョブ識別情報とジョブ種別とに基づくことにより、処理内容を同一とするジョブをより高精度に判別し、より精度の高い予測最大使用電力値を取得することができる。
【００４９】
このように、ジョブそれぞれについて、予測最大使用電力値が取得される。続いて、本実施の形態例におけるスケジュール処理の概要について説明する。
【００５０】
［本実施の形態例におけるスケジュール処理の概要］
図８は、本実施の形態例におけるスケジュール処理の概要について説明する図である。図８において、左側の縦軸は計算ノード数を、右側の縦軸は電力値を示し、横軸は時間を示す。また、点線ｘ２２は使用制限電力値を示す。また、この例において、図６の例と同様に、ジョブＡｊａ〜Ｅｊｅのスケジュールが生成される。
【００５１】
本実施の形態例において、ジョブ管理ノード１０は、ジョブが使用する計算ノード２０の数の合計が、情報処理システムが有する計算ノード２０の数（３２台）に収まり、ジョブの予測最大使用電力値の合計が使用制限電力値ｘ２２に収まるように、スケジュールを生成する。そこで、ジョブ管理ノード１０は、まず、ジョブＡｊａの予測最大使用電力値（２０ｋＷ）を取得し、ジョブＡｊａを現在時刻から５時間の時間帯にスケジュールする。これにより、現在時刻から５時間の時間帯において、８台の計算ノード２０がジョブＡｊａに割り当てられ、予測最大使用電力値の合計は２０ｋＷとなる。また、図６の例と同様にして、ジョブＢｊｂ、ジョブＣｊｃがスケジュールされる。
【００５２】
ただし、ジョブＤｊｄについて、図６の例と同様に、ジョブＡｊａの終了後の時刻から１時間の時間帯にスケジュールされると、時間帯ｅ１におけるジョブ（ジョブＣｊｃ、ジョブＤｊｄ）の予測最大使用電力値の合計が使用制限電力値ｘ２２を超えてしまう。このため、ジョブ管理ノード１０は、時間帯ｅ１におけるジョブの予測最大使用電力値の合計が使用制限電力値ｘ２２に収まるように、ジョブＤｊｄをスケジュールする時間帯を後ろの時間帯にシフトさせる。これにより、ジョブＤｊｄは、ジョブＡｊａの終了後の時刻から１時間の時間帯にスケジュールされ、時間帯ｅ１におけるジョブ（ジョブＣｊｃ）の予測最大使用電力値の合計は使用制限電力値ｘ２２に収まる。
【００５３】
同様にして、図６のスケジュールに基づくと時間帯ｅ２におけるジョブの予測最大使用電力値の合計が使用制限電力値ｘ２２を超える。なお、ジョブＥｊｅの予測最大使用電力値は、単独で、時間帯ｅ２における使用制限電力値ｘ２２を超える。このため、ジョブ管理ノード１０は、ジョブＥｊｅを、使用制限電力値ｘ２２がジョブＥｊｅの予測最大使用電力値を超える時間帯にスケジュールする。このように、本実施の形態例におけるジョブ管理ノード１０は、各ジョブの予測最大使用電力値に基づいて、各時間帯におけるジョブの予測最大使用電力値の合計が使用制限電力値ｘ２２に収まるように、各ジョブＡｊａ〜Ｅｊｅをスケジュールすることができる。
【００５４】
続いて、本実施の形態例におけるジョブ管理ノード１０の各処理の詳細について説明する前に、ジョブ管理ノード１０の全体の処理について、時系列に説明する。
【００５５】
［ジョブ管理ノード１０の処理の概要］
図９は、本実施の形態例におけるジョブ管理ノード１０の全体の処理の概要について時系列に説明する図である。初めに、ログインノード３０においてユーザによってジョブが投入されると、ログインノード３０は、ジョブマネージャ１２に対してジョブの登録情報を出力する（ｇ１）。ジョブの登録情報は、例えば、ユーザによって入力される。続いて、ジョブの投入に応答して、ジョブ管理ノード１０のジョブマネージャ１２は、ジョブの予測最大使用電力値を取得する（Ｓ１）。ジョブの予測最大使用電力値を取得すると、ジョブマネージャ１２は、ジョブスケジューラ１１にジョブの登録情報を出力する（ｇ２）。次に、ジョブスケジューラ１１は、ジョブの登録情報に基づいて、ジョブのスケジュールを生成する（Ｓ２）。
【００５６】
そして、ジョブスケジューラ１１は、スケジュールされたジョブの実行開始時刻を監視し（Ｓ３）、開始可能なジョブの実行依頼をジョブマネージャ１２に出力する（ｇ３）。ジョブマネージャ１２は、ジョブの実行依頼に応答して、資源管理部１８にジョブの実行依頼を出力する（ｇ４）。そして、資源管理部１８は、ジョブの使用計算ノード数に対応する数の計算ノード２０にジョブの実行を指示する（ｇ５-１〜ｎ）。続いて、計算ノード２０は、資源管理部１８からのジョブの実行依頼に応答して、ジョブを実行する（Ｓ４）。
【００５７】
また、計算ノード２０でジョブが実行されている間、ジョブマネージャ１２は、定期的に、実行中ジョブの使用電力値の監視処理を行う（Ｓ５）。具体的に、ジョブマネージャ１２は、実行中ジョブの使用電力値の取得指示を、資源管理部１８に出力する（ｇ６）。これに応答して、資源管理部１８は、各計算ノード２０から実行中ジョブが使用する電力値を取得し（ｇ７-１〜ｎ、ｇ８-１〜ｎ）、ジョブマネージャ１２に出力する（ｇ９）。そして、ジョブマネージャ１２は、取得した実行中ジョブの使用電力値の合計が使用制限電力値を超える場合に、必要に応じて実行中ジョブの実行調整を行う（Ｓ６）。実行調整の処理の詳細については、後述する。
【００５８】
そして、計算ノード２０において実行中のジョブが終了すると、資源管理部１８は、ジョブの終了通知とジョブの使用最大電力値とを取得する（ｇ１０-１〜ｎ）。続いて、資源管理部１８は、ジョブの終了通知とジョブの使用最大電力値とをジョブマネージャ１２に出力し（ｇ１１）、ジョブマネージャ１２は、ジョブの使用最大電力値を、使用電力記憶部１７に記憶する（Ｓ７）。また、ジョブマネージャ１２は、ジョブの終了通知をジョブスケジューラ１１に出力する（ｇ１２）。ジョブスケジューラ１１は、ジョブの終了通知に応答して、ジョブの登録情報のクリア処理を行う（Ｓ８）。
【００５９】
図９に示したような流れで、ジョブの投入から実行制御までの一連の処理が行われる。続いて、ジョブ管理ノード１０における各処理の詳細について、フローチャート図に基づいて説明する。初めに、ジョブ管理ノード１０のジョブスケジューラ１１のスケジュール処理について説明する。
【００６０】
［フローチャート：スケジュール処理］
図１０は、ジョブのスケジュール処理を説明するフローチャート図である。ジョブ割り当て部１４は、初めに、生成済みのスケジュール情報をクリアする（Ｓ１１）。続いて、ジョブ割り当て部１４は、実行中ジョブを優先度の順に整列する（Ｓ１２）。
【００６１】
実行中ジョブがある場合（Ｓ１３のＹＥＳ）、ジョブ割り当て部１４は、実行中ジョブから、優先度の高い順にジョブを１つ選択する（Ｓ１４）。次に、ジョブ割り当て部１４は、選択した実行中ジョブが実行される予定の時間帯に、当該実行中ジョブの使用計算ノード数を割り当てる（Ｓ１５）。また、ジョブ割り当て部１４は、割り当て済みの実行中ジョブの予測最大使用電力値の合計に、選択した実行中ジョブの予測最大使用電力値を加算する（Ｓ１６）。続いて、ジョブ割り当て部１４は、次に優先度の高い実行中ジョブについて、工程Ｓ１４〜Ｓ１６の処理を行う。
【００６２】
一方、全ての実行中ジョブを割り当てた場合（Ｓ１３のＮＯ）、または、実行中ジョブがない場合（Ｓ１３のＮＯ）、ジョブ割り当て部１４は、未実行ジョブを優先度の順に整列する（Ｓ１７）。未実行ジョブがある場合（Ｓ１８のＹＥＳ）、ジョブ割り当て部１４は、未実行ジョブから、優先度の高い順にジョブを１つ選択する（Ｓ１９）。続いて、ジョブ割り当て部１４は、選択した未実行ジョブの使用計算ノード数を確保可能な時間帯を検索し、当該使用計算ノード数を仮割り当てする（Ｓ２０）。
【００６３】
続いて、ジョブ割り当て部１４は、割り当て済みのジョブの予測最大使用電力値の合計に、選択した未実行ジョブの予測最大使用電力値を加算する（Ｓ２１）。そして、ジョブ割り当て部１４は、選択した未実行ジョブを仮割り当てした時間帯において、予測最大使用電力値の合計が使用制限電力値を超えるか否かを判定する（Ｓ２２）。使用制限電力値を超える場合（Ｓ２２のＮＯ）、ジョブ割り当て部１４は、選択した未実行ジョブの使用計算ノード数を確保可能な別の時間帯を検索し、仮割り当てし（Ｓ２０）、工程Ｓ２１〜工程Ｓ２２の処理を行う。一方、使用制限電力値を超えない場合（Ｓ２２のＹＥＳ）、ジョブ割り当て部１４は、選択した未実行ジョブの使用計算ノード数を仮割り当てした時間帯に正式に割り当て、ジョブ実行制御部１５にキューイングする（Ｓ２３）。
【００６４】
続いて、ジョブ割り当て部１４は、次に優先度の高い未実行ジョブについて、工程Ｓ１９〜Ｓ２３の処理を行う。全ての未実行ジョブについて割り当て処理を行うと、ジョブ割り当て部１４はスケジュール処理を終了する。
【００６５】
続いて、ジョブ管理ノード１０のジョブ実行制御処理について説明する。
【００６６】
［フローチャート：ジョブの実行制御処理］
図１１は、ジョブの実行制御処理について説明するフローチャート図である。ジョブ管理ノード１０のジョブ実行制御部１５は、ジョブ割り当て部１４によってキューイングされた未実行ジョブを実行開始時刻順にソートする（Ｓ３１）。続いて、ジョブ実行制御部１５は、現在、開始が必要なジョブがあるか否かを判定する（Ｓ３２）。開始が必要なジョブがある場合（Ｓ３２のＹＥＳ）、ジョブ実行制御部１５は、ジョブをキューから取り出し、割り当てた数の計算ノード２０のジョブ実行部２０に対してジョブの実行を指示する（Ｓ３３）。
【００６７】
一方、開始が必要なジョブがない場合（Ｓ３２のＮＯ）、ジョブ実行制御部１５は、ジョブ割り当て部１４から新たにキューイングされたジョブがあるか否かを判定する（Ｓ３４）。新たにキューイングされたジョブがある場合（Ｓ３４のＹＥＳ）、ジョブ実行制御部１５は、工程Ｓ３１の処理に戻る。一方、新たにキューイングされたジョブがない場合（Ｓ３４のＮＯ）、ジョブ実行制御部１５は、新たにジョブがキューイングされるまで待機する（Ｓ３５）。そして、新たにジョブがキューイングされた場合、ジョブ実行制御部１５は、工程Ｓ３１の処理に戻る。
【００６８】
続いて、ジョブ管理ノード１０のジョブマネージャ１２における実行中ジョブの使用電力値の監視処理について説明する。
【００６９】
［フローチャート：実行中ジョブの電力値監視処理］
図１２は、実行中ジョブの電力値監視処理について説明するフローチャート図である。ジョブマネージャ１２のジョブ実行制御部１５は、実行中ジョブを実行開始時間順にソートして、先頭のジョブを選択する（Ｓ４１）。ジョブ実行制御部１５は、選択した実行中ジョブが使用する現在の電力値を取得する（Ｓ４２）。具体的に、ジョブ実行制御部１５は、実行中ジョブを実行する計算ノード２０が使用電力計測部２１から取得した使用電力値に基づいて、実行中ジョブの使用電力値を取得する。続いて、ジョブ実行制御部１５は、取得した実行中ジョブの電力値が、予測最大使用電力値を超えるか否かを判定する（Ｓ４３）。
【００７０】
選択したジョブの使用電力値が予測最大使用電力値を超える場合（Ｓ４３のＹＥＳ）、ジョブ実行制御部１５は、選択した実行中ジョブを電力値超過ジョブとして記憶する（Ｓ４４）。一方、選択したジョブの使用電力値が予測最大使用電力値を超えない場合（Ｓ４３のＮＯ）、ジョブ実行制御部１５は、次の実行中ジョブがあるか否かを判定する（Ｓ４５）。次の実行中ジョブがある場合（Ｓ４５のＹＥＳ）、ジョブ実行制御部１５は、次の実行中ジョブについて工程Ｓ４２〜Ｓ４４の処理を行う。
【００７１】
一方、次の実行中ジョブがない場合（Ｓ４５のＮＯ）、続いて、ジョブ実行制御部１５は、電力値超過ジョブが検出されたか否かを判定する（Ｓ４６）。電力値超過ジョブが検出されなかった場合（Ｓ４６のＮＯ）、ジョブ実行制御部１５は、実行中ジョブの電力値監視処理を終了する。一方、電力値超過ジョブが検出された場合（Ｓ４６のＹＥＳ）、ジョブ実行制御部１５は、全ての実行中ジョブの使用電力値の合計が使用制限電力値に基づく閾値を超えるか否かを判定する（Ｓ４７）。使用制限電力値に基づく閾値とは、例えば、使用制限電力値の９０％の値を示す。または、ジョブ実行制御部１５は、工程Ｓ４７において、全ての実行中ジョブの使用電力値の合計が使用制限電力値を超えるか否かを判定してもよい。
【００７２】
使用制限電力値に基づく閾値を超える場合（Ｓ４７のＹＥＳ）、ジョブ実行制御部１５は、実行中ジョブの実行調整処理を行う（Ｓ４８）。また、使用制限電力値の閾値を超えない場合（Ｓ４７のＮＯ）、ジョブ実行制御部１５は、実行中ジョブの実行調整処理を行わない。続いて、ジョブ実行制御部１５は、電力値超過ジョブの情報のクリア処理を行う（Ｓ４９）。
【００７３】
このように、本実施の形態例におけるジョブ管理ノード１０は、電力値超過ジョブが検出された場合であっても、全ての実行中ジョブの使用電力値の合計が使用制限電力値、または、使用制限電力値に基づく閾値を超えない場合は、実行中ジョブの実行調整処理を行わない。これにより、ジョブ管理ノード１０は、実行中ジョブの予測最大使用電力値が実際の最大使用電力値を超える場合であっても、実行中ジョブに対する実行調整処理を抑えることができる。
【００７４】
続いて、図１２のフローチャート図における実行中ジョブの実行調整処理（Ｓ４８）について説明する。
【００７５】
［フローチャート：実行調整処理］
図１３は、実行調整処理（図１２のＳ４８）について説明するフローチャート図である。ジョブ実行制御部１５は、電力値が予測最大使用電力値を超える電力値超過ジョブの処理を、例えばＸ秒、一時的に停止させた後（Ｓ５１）、処理を再開させる（Ｓ５２）。値Ｘは、例えば、実験値に基づいて予め設定される。続いて、ジョブ実行制御部１５は、再び、実行中ジョブの使用電力値の合計が使用制限電力値に基づく閾値（または、使用制限電力値）を超えるか否かを判定する（Ｓ５３）。使用制限電力値に基づく閾値を超えない場合（Ｓ５３のＮＯ）、ジョブ実行制御部１５は、実行調整処理を終了する。
【００７６】
一方、使用制限電力値に基づく閾値を超える場合（Ｓ５３のＹＥＳ）、ジョブ実行制御部１５は、リトライカウントをインクリメントする（Ｓ５４）。続いて、ジョブ実行制御部１５は、リトライカウントが基準値を超えるか否かを判定する（Ｓ５５）。基準値を超えない場合（Ｓ５５のＮＯ）、ジョブ実行制御部１５は、電力値超過ジョブに対して、再び、工程Ｓ５１〜Ｓ５４の処理を行う。一方、リトライカウントが基準値を超える場合（Ｓ５５のＹＥＳ）、即ち、基準値に対応する回数、電力値超過ジョブを一時的に停止させても、実行中ジョブの使用電力値の合計が使用制限電力値に基づく閾値を超える場合、ジョブ実行制御部１５は、電力値超過ジョブの実行処理を終了させる（Ｓ５６）。続いて、ジョブ実行制御部１５は、ジョブ割り当て部１４に、電力値超過ジョブの予測最大使用電力値が超過していることを通知し、電力値超過ジョブの再スケジュールを指示する（Ｓ５７）。これにより、ジョブ割り当て部１４は、例えば、電力値超過ジョブの終了部分から後の処理を対象として、再スケジュールする。
【００７７】
ジョブ管理ノード１０は、本実施の形態例において、スケジュール対象ジョブのジョブ識別情報が一致する実行済みジョブ、または、スケジュール対象ジョブの使用計算ノード数が一致または差が所定の範囲内の実行済みジョブを実行した計算ノード２０が使用した最大使用電力値を、予測最大使用電力値として取得する。このため、スケジュール対象ジョブの取得した予測最大使用電力値が、実際にジョブを実行した場合の使用電力値（実測使用電力値）を超える場合が生じる。即ち、ジョブの最大使用電力値の見積りに誤りが生じる場合がある。
【００７８】
そこで、図１２、図１３のように、本実施の形態例におけるジョブ管理ノード１０は、実行中ジョブが使用する電力値を監視し、使用する電力値の合計が使用制限電力値、または、使用制限電力値に基づく閾値を超える場合に、実行中ジョブの実行調整を行う。これにより、ジョブ管理ノード１０は、ジョブの予測最大使用電力値が、実際にジョブを実行した場合における最大使用電力値を超えた場合であっても、実行中ジョブのジョブの最大使用電力値の合計を使用制限電力値に収めることができる。
【００７９】
なお、図１３の例において、ジョブ管理ノード１０は、電力値超過ジョブに対して、一時的な停止制御や終了制御を行うことによって、使用電力値を抑制する。ただし、この例に限定されるものではない。ジョブ管理ノード１０は、電力値超過ジョブ以外の実行中ジョブ、例えば、優先度の低いジョブや使用電力値の高いジョブに対して、一時的な停止制御や終了制御を行うことによって、使用電力値を抑制してもよい。
【００８０】
続いて、図１０〜図１３に基づいて説明してきた、本実施の形態例におけるジョブ管理ノード１０の処理を具体例に基づいて説明する。まず、初めに、具体例における使用制限電力値について説明する。
【００８１】
［具体例：使用制限電力値］
図１４は、具体的における使用制限電力値の変移について説明する図である。図１４によると、具体例における平日の０：００−６：５９における使用制限電力値は１００ｋＷである。また、平日の０７：００−１０：５９における使用制限電力値は８０ｋＷである。同様にして、１１：００−１４：５９における使用制限電力値は６０ｋＷ、１５：００−１８：５９における使用制限電力値は８０ｋＷ、１９：００−２３：５９における使用制限電力値は１００ｋＷである。
【００８２】
このように、図１４の具体例において、例えば、昼間の時間帯（例えば、０７：００〜１８：５９）における使用制限電力値が低く抑えられている。このため、多量の電力を使用するジョブは、例えば、夜間（例えば、１９：００〜６：５９）の時間帯に実行される。なお、図１４の例では、使用制限電力値は、平日と土日に区分して設定される。しかしながら、この例に限定されるものではなく、使用制限電力値は全ての日に対して一律に設定されてもよいし、曜日毎に設定されてもよい。
【００８３】
［具体例：スケジュール処理］
図１５は、具体例におけるジョブＡｊａ〜Ｅｊｅについて説明する図である。具体例では、ジョブＡｊａ〜Ｃｊｃが実行中の状態で、新たにジョブＤｊｄ、ジョブＥｊｅが投入され、ジョブのスケジュール処理が行われる場合を例示する。図１５の（Ａ）に示すとおり、初め、投入ジョブの列に、優先度の順にジョブが整列される。この例において、ジョブＡｊａ〜Ｅｊｅの順に優先度が高い。また、図１５の（Ｂ）は、計算ノード２０の使用状態を示す資源マップｍ１０である。この例において、情報処理システムが有する計算ノード２０の数は、３２台である。このため、資源マップｍ１０は、計算ノード２０の数に対応して３２台の枠を有し、各枠には計算ノード２０を使用中のジョブ名が示される。
【００８４】
ジョブＡｊａ〜Ｅｊｅの登録情報は、図５で例示したとおりである。即ち、各ジョブの使用計算ノード数は、ジョブＡｊａ：８台、ジョブＢｊｂ：３台、ジョブＣｊｃ：２０台、ジョブＤｊｄ：１２台、ジョブＥｊｅ：３２台である。このため、図１５の（Ｂ）において、実行中ジョブＡｊａ〜Ｃｊｃに対応して、３２台の計算ノード２０のうち、３１（＝８＋３＋２０）台の計算ノード２０が使用中であることが示される。また、図５によると、各ジョブの予定実行時間は、ジョブＡｊａ：５ｈ、ジョブＢｊｂ：４ｈ、ジョブＣｊｃ：１０ｈ、ジョブＤｊｄ：１ｈ、ジョブＥｊｅ：６ｈである。また、各ジョブの予測最大使用電力値は、ジョブＡｊａ：２０ｋＷ、ジョブＢｊｂ：１０ｋＷ、ジョブＣｊｃ：５０ｋＷ、ジョブＤｊｄ：４０ｋＷ、ジョブＥｊｅ：１００ｋＷである。
【００８５】
図１６は、スケジュール処理を説明する第１の図である。前述したとおり、投入ジョブＡｊａ〜Ｅｊｅのうち、ジョブＡｊａ〜Ｃｊｃは実行中のジョブである。そこで、ジョブ割り当て部１４は、スケジュール情報をクリアし（図１０のＳ１１）、実行中ジョブの列に、実行中ジョブをジョブＡｊａ〜ジョブＣｊｃの順に並べる（Ｓ１２）。そして、ジョブ割り当て部１４は、優先度の最も高いジョブＡｊａを、実行中の時間帯０６：００〜１１：００に割り当てる（Ｓ１３のＹＥＳ、Ｓ１４、Ｓ１５）。同様にして、ジョブ割り当て部１４は、次に優先度が高い実行中ジョブＢｊｂを、実行中の時間帯０６：００〜１０：００に割り当てる（Ｓ１３のＹＥＳ、Ｓ１４、Ｓ１５）。同様にして、ジョブ割り当て部１４は、次に優先度が高い実行中ジョブＣｊｃを、実行中の時間帯０６：００〜１６：００に割り当てる（Ｓ１３のＹＥＳ、Ｓ１４、Ｓ１５）。
【００８６】
このようにして、初めに、実行中ジョブＡｊａ〜Ｃｊｃについて、割り当て処理が行われる。このとき、ジョブＡｊａ〜Ｃｊｃが実行される０６：００〜１０：００（資源マップｍ１１）における合計予測最大使用電力値は８０ｋｗとなる。また、ジョブＡｊａ、Ｃｊｃが実行される１０：００〜１１：００（資源マップｍ１２）における合計予測最大使用電力値は７０ｋｗ、ジョブＣｊｃのみが実行される１１：００〜１６：００（資源マップｍ１３）における合計予測最大使用電力値は５０ｋｗとなる。この状態において、各時間帯における合計予測最大使用電力値は、使用制限電力値内に収まっている。
【００８７】
図１７は、スケジュール処理を説明する第２の図である。続いて、ジョブ割り当て部１４は、未実行ジョブＤｊｄ、Ｅｊｅを優先度の順に並べ（図１０のＳ１７）、優先度の最も高いジョブＤｊｄを選択する（Ｓ１８のＹＥＳ、Ｓ１９）。ジョブＤｊｄの使用計算ノード数は１２台であって、予測実行時間は１時間、予測最大使用電力値は４０ｋＷである。そして、ジョブ割り当て部１４は、未実行ジョブＤｊｄについて、１２台の使用ノードを割り当て可能であって、予測実行時間に対応する時間帯１１：００〜１２：００に仮割り当てする（Ｓ２０）。続いて、ジョブ割り当て部１４は、時間帯１１：００〜１２：００に割り当て済みの実行中ジョブＣｊｃの予測最大使用電力値５０ｋＷに、ジョブＤｊｄの予測最大使用電力値４０ｋＷを加算して合計予測最大使用電力値（９０ｋＷ＝５０＋４０）を算出する（Ｓ２１）。このとき、時間帯１１：００〜１２：００（資源マップｍ２３）における合計予測最大使用電力値９０ｋｗは、使用制限電力値６０ｋｗを上回る（Ｓ２２のＮＯ）。
【００８８】
そこで、ジョブ割り当て部１４は、未実行ジョブＤｊｄの割り当て処理を繰り返し（Ｓ２０〜Ｓ２２）、最終的に、未実行ジョブＤｊｄについて、１２台の使用ノードを割り当て可能であって、予測実行時間に対応する時間帯１６：００〜１７：００に正式に割り当てる（Ｓ２３）。このとき、時間帯１６：００〜１７：００（資源マップｍ２４）における合計予測最大使用電力値４０ｋＷは、使用制限電力値８０ｋＷに収まる（Ｓ２２のＹＥＳ）。これにより、未実行ジョブＤｊｄが、投入ジョブの列から実行待ちジョブの列に移動される。
【００８９】
図１８は、スケジュール処理を説明する第３の図である。続いて、未実行ジョブＥｊｅを選択する（Ｓ１８のＹＥＳ、Ｓ１９）。ジョブＥｊｅの使用計算ノード数は３２台であって、予測実行時間は６時間、予測最大使用電力値は１００ｋＷである。ジョブ割り当て部１４は、未実行ジョブＥｊｅについて、３２台の使用ノードを割り当て可能であって、予測実行時間に対応する時間帯１７：００〜１８：００に仮割り当てする（Ｓ２０）。ただし、時間帯１７：００〜１８：００における合計予測最大使用電力値１００ｋｗは、使用制限電力値８０ｋｗを上回る（Ｓ２２のＮＯ）。そこで、ジョブ割り当て部１４は、未実行ジョブＥｊｅの割り当て処理を繰り返し（Ｓ２０〜Ｓ２２）、最終的に、未実行ジョブＥｊｅを時間帯１９：００〜２３：００に正式に割り当てる（Ｓ２３）。このとき、時間帯１９：００〜２３：００（資源マップｍ３６）における合計予測最大使用電力値１００ｋＷは、使用制限電力値１００ｋＷに収まる（Ｓ２２のＹＥＳ）。これにより未実行ジョブＥｊｅが、投入ジョブの列から実行待ちジョブの列に移動される。
【００９０】
このように、図１５〜図１８で説明してきたとおり、新たに投入された未実行ジョブＤｊｄ、Ｅｊｅのスケジュールが行われる。また、生成されたスケジュールにおけるいずれの時間帯においても、合計予測最大使用電力値は、使用制限電力値に収まる。なお、本実施の形態例において、ジョブが優先度を有する場合を例示したが、この例に限定されるものではない。ジョブは優先度を有していなくてもよい。例えば、ジョブ管理ノード１０は、使用計算ノード数の多いジョブから順次、スケジュールを行う。この場合においても、ジョブ管理ノード１０は、各時間帯におけるジョブの予測最大使用電力値の合計が使用制限電力値に収まるようにジョブのスケジュールを行うことによって、電力使用制限量の範囲内で、柔軟に、ジョブをスケジュールすることができる。
【００９１】
図１９は、使用制限電力値ｘ３２と、本実施の形態例におけるジョブ管理処理が行われた場合の使用電力値ｘ３１とを例示する図である。図１９において、縦軸は電力値を示し、横軸は時間を示す。図１９によると、例えば、使用制限電力値ｘ３２が抑制される時間帯ｅ３における使用電力値の実績ｘ３１と、使用制限電力値ｘ３２との差異が小さく抑えられている。また、他の時間帯についても、使用電力値の実績ｘ３１と使用制限電力値ｘ３２との差異を小さく抑えることが可能になる。
【００９２】
このように、本実施の形態例におけるジョブ管理ノード１０は、ジョブのスケジュール生成時に、ジョブの予測最大使用電力値を取得し、各時間帯におけるジョブの予測最大使用電力値の合計が使用制限電力値ｘ３２に収まるか否かを逐一判定しながら、ジョブをスケジュールする。これにより、ジョブ管理ノード１０は、ジョブの使用電力値の合計が使用制限電力値ｘ３２を超えないようなスケジュールを生成することができる。即ち、ジョブ管理ノード１０は、使用制限電力値ｘ３２を超えない範囲内において、効率的にジョブを実行させることができる。
【００９３】
以上のように、本実施の形態例における情報処理システムのジョブ管理ノード１０は、スケジュール対象ジョブとジョブ識別情報が一致する実行済みジョブ、または、スケジュール対象ジョブと使用計算ノード数が一致、または、スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、スケジュール対象ジョブの予測最大使用電力値として取得する取得部を有する。また、ジョブ管理ノード１０は、スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、スケジュール対象ジョブをスケジュールするスケジュール部と、を有する。
【００９４】
このように、本実施の形態例におけるジョブ管理ノード１０は、使用計算ノード数またはジョブ識別情報が一致、または、使用計算ノード数の差が所定の範囲内である実行済みジョブの使用最大電力値の実績に基づいて、スケジュール対象のジョブの予測最大使用電力値を取得することができる。即ち、ジョブ管理ノード１０は、ジョブの使用計算ノード数やジョブ識別情報を利用することによって、ジョブのスケジュール時に、ジョブの最大使用電力値を見積もることができる。そして、ジョブ管理ノード１０は、スケジュール対象のジョブの予測最大使用電力値を利用して、各時間帯におけるジョブの最大使用電力値の合計が、予め、使用制限電力値に収まるように、スケジュールを生成することができる。
【００９５】
これにより、本実施の形態例におけるジョブ管理ノード１０は、時刻に応じて設定される使用制限電力値に合わせて、柔軟に、ジョブをスケジュールすることができる。このため、ジョブ管理ノード１０は、電力使用制限量の範囲内で実行可能なジョブを効率よく実行させることができる。さらに、ジョブ管理ノード１０は、スケジュール対象ジョブの使用計算ノード数と、実際に実行されたジョブの使用計算ノードの実績数とが一致または、その差が所定の範囲内である実行済みジョブの実績の使用電力値の最大値を、スケジュール対象ジョブの予測最大使用電力値として取得する。これにより、ジョブ管理ノード１０は、使用計算ノード数や使用電力値の実績値に基づくことにより、より高精度に、スケジュール対象ジョブの予測最大使用電力値を取得することができる。
【００９６】
また、本実施の形態例におけるジョブ管理ノード１０において、スケジュール対象ジョブは、さらに、スケジュール対象ジョブのプロセス数、予測データ入出力量のいずれかまたは両方を含む。そして、ジョブ管理ノード１０の取得部は、スケジュール対象ジョブの使用計算ノード数に加えて、プロセス数、予測データ入出力量のいずれかまたは両方が一致、または、プロセス数、予測データ入出力量のいずれかまたは両方の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、スケジュール対象ジョブの予測最大使用電力値として取得する。
【００９７】
これにより、ジョブ管理ノード１０は、使用計算ノード数に加えて、プロセス数、予測データ入出力量のいずれかまたは両方が一致または差が所定の範囲内にある実行済みジョブの実績の使用電力値の最大値に基づいて、スケジュール対象のジョブの予測最大使用電力値を取得することができる。ジョブが使用する電力値は、使用計算ノード数に加えて、プロセス数、予測データ入出力量に応じて変動する。このため、ジョブ管理ノード１０は、複数の情報に基づくことにより、より高精度にスケジュール対象のジョブの予測最大使用電力値を取得することができる。
【００９８】
また、本実施の形態例におけるジョブ管理ノード１０は、スケジュール対象ジョブは、さらに、スケジュール対象ジョブのジョブ種別を含む。そして、ジョブ管理ノード１０の取得部は、ジョブ識別情報とジョブ種別とが一致する実行済みジョブを実行した計算ノードが使用した最大使用電力値を、スケジュール対象ジョブの予測最大使用電力値として取得する。
【００９９】
これにより、ジョブ管理ノード１０は、ジョブ識別情報に加えて、ジョブ種別が一致する実行済みジョブの実績の使用電力値の最大値に基づいて、スケジュール対象のジョブの予測最大使用電力値を取得することができる。ジョブ識別情報とジョブ種別が一致するジョブの処理は類似していることが想定されるため、ジョブの電力値についても差が小さいことが想定される。このため、ジョブ管理ノード１０は、複数の情報に基づくことにより、より高精度にスケジュール対象のジョブの予測最大使用電力値を取得することができる。
【０１００】
前述したように、本実施の形態例におけるジョブ管理ノード１０は、スケジュール対象ジョブのジョブ識別情報が一致、または、スケジュール対象ジョブの使用計算ノード数が一致または使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノード２０が使用した最大使用電力値を、予測最大使用電力値として取得する。このため、スケジュール対象ジョブの取得した予測最大使用電力値が、実際にジョブを実行した場合の使用電力値（実測使用電力値）を超える場合が生じる。
【０１０１】
そこで、本実施の形態例におけるジョブ管理ノード１０は、さらに、各計算ノードが実行しているジョブである実行中ジョブの実測使用電力値を取得して、実行中ジョブの実測使用電力値の合計が使用制限電力値を超える場合、実行中ジョブの実行を制御する実行制御部と、を有する。これにより、ジョブ管理ノード１０は、ジョブの予測最大使用電力値が実測使用電力値を超える場合であっても、即ち、ジョブの最大使用電力値の見積りに誤りが生じた場合であっても、実行中ジョブの最大使用電力値の合計を使用制限電力値に収めることができる。
【０１０２】
また、本実施の形態例におけるジョブ管理ノード１０の前記実行制御部は、実行中ジョブの実測使用電力値の合計が制限電力値を超える場合、実行中ジョブのうち実測使用電力値が前記予測最大使用電力値を超える電力値超過ジョブを所定の時間停止させる。ジョブ管理ノード１０は、最大使用電力値の見積りに誤りがあった電力値超過ジョブの処理を一時的に停止させることによって、使用電力値を抑制することができる。このため、ジョブ管理ノード１０は、ジョブの最大使用電力値の見積りに誤りが生じた場合であっても、実行中ジョブの最大使用電力値の合計を使用制限電力値に収めることができる。
【０１０３】
また、本実施の形態例におけるジョブ管理ノード１０の実行制御部は、電力値超過ジョブの所定の時間の停止を基準回数行っても、実行中ジョブの実測使用電力値の合計が制限電力値を超える場合、電力値超過ジョブを終了させる。これにより、ジョブ管理ノード１０は、電力値超過ジョブの処理を基準回数、一時的に停止させてもジョブの最大使用電力値の合計が使用制限電力値に収まらない場合に、電力値超過ジョブの処理を終了させることによって、使用電力値を抑制することができる。このため、ジョブ管理ノード１０は、ジョブの最大使用電力値の見積りに誤りが生じた場合であっても、実行中ジョブの最大使用電力値の合計を使用制限電力値に収めることができる。
【０１０４】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１０５】
（付記１）
ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムにおいて、
前記ジョブ管理ノードは、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有する情報処理システム。
【０１０６】
（付記２）
付記１において、
前記ジョブ管理ノードはさらに、
各計算ノードが実行しているジョブである実行中ジョブの実測使用電力値を取得して、前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記実行中ジョブの実行を制御する実行制御部と、を有する情報処理システム。
【０１０７】
（付記３）
付記１または２において、
前記スケジュール対象ジョブはさらに、
前記スケジュール対象ジョブのプロセス数、予測データ入出力量のいずれかまたは両方を含み、
前記取得部は、
前記スケジュール対象ジョブの使用計算ノード数に加えて、前記プロセス数、前記予測データ入出力量のいずれかまたは両方が一致、または、前記プロセス数、前記予測データ入出力量のいずれかまたは両方の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する情報処理システム。
【０１０８】
（付記４）
付記１または２において、
前記スケジュール対象ジョブはさらに、
前記スケジュール対象ジョブのジョブ種別を含み、
前記取得部は、
前記ジョブ識別情報と前記ジョブ種別とが一致する実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する情報処理システム。
【０１０９】
（付記５）
付記２において、
前記実行制御部は、
前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記実行中ジョブのうち実測使用電力値が前記予測最大使用電力値を超える電力値超過ジョブを所定の時間停止させる情報処理システム。
【０１１０】
（付記６）
付記５において、
前記実行制御部は、
前記電力値超過ジョブの前記所定の時間の停止を基準回数行っても、前記実行中ジョブの実測使用電力値の合計が前記制限電力値を超える場合、前記電力値超過ジョブを終了させる情報処理システム。
【０１１１】
（付記７）
付記１乃至６のいずれかにおいて、
前記スケジュール対象ジョブは優先度を含み、
前記スケジュール部は、
複数の前記スケジュール対象ジョブのうち、前記優先度の高いスケジュール対象ジョブを優先的に、当該スケジュール対象ジョブの予測実行時間を満たす直近の時間帯にスケジュールする情報処理システム。
【０１１２】
（付記８）
複数の計算ノードが実行するジョブの管理を行うジョブ管理装置において、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記スケジュール対象ジョブの予測最大使用電力値として取得する取得部と、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記スケジュール対象ジョブをスケジュールするスケジュール部を有するジョブ管理装置。
【０１１３】
（付記９）
複数の計算ノードが実行するジョブの管理を行うジョブ管理装置の制御プログラムにおいて、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記ジョブ管理装置が有する取得部に、前記スケジュール対象ジョブの予測最大使用電力値として取得させ、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記ジョブ管理装置が有するスケジュール部に、前記スケジュール対象ジョブをスケジュールさせるジョブ管理装置の制御プログラム。
【０１１４】
（付記１０）
ジョブをそれぞれ実行する複数の計算ノードと、前記ジョブの管理を行うジョブ管理ノードとを有する情報処理システムの制御方法において、
スケジュール対象ジョブとジョブ識別情報とが一致する実行済みジョブ、または、前記スケジュール対象ジョブと使用計算ノード数が一致、または、前記スケジュール対象ジョブとの使用計算ノード数の差が所定の範囲内にある実行済みジョブを実行した計算ノードが使用した最大使用電力値を、前記ジョブ管理ノードが有する取得部が、前記スケジュール対象ジョブの予測最大使用電力値として取得し、
前記スケジュール対象ジョブの予測最大使用電力値の合計が、時刻に応じて設定される制限電力値を超えないように、前記ジョブ管理ノードが有するスケジュール部が、前記スケジュール対象ジョブをスケジュールする情報処理システムの制御方法。
【符号の説明】
【０１１５】
１０：ジョブ管理ノード、２０：計算ノード、３０：ログインノード、ＳＴ：ストレージ、１１：入力装置、１２：表示装置、１３：通信インタフェース、１４：プロセッサ、１５：記憶媒体、１６：メモリ
【図１】
2015049562.tif 000003
【図２】
2015049562.tif 000004
【図３】
2015049562.tif 000005
【図４】
2015049562.tif 000006
【図５】
2015049562.tif 000007
【図６】
2015049562.tif 000008
【図７】
2015049562.tif 000009
【図８】
2015049562.tif 000010
【図９】
2015049562.tif 000011
【図１０】
2015049562.tif 000012
【図１１】
2015049562.tif 000013
【図１２】
2015049562.tif 000014
【図１３】
2015049562.tif 000015
【図１４】
2015049562.tif 000016
【図１５】
2015049562.tif 000017
【図１６】
2015049562.tif 000018
【図１７】
2015049562.tif 000019
【図１８】
2015049562.tif 000020
【図１９】
2015049562.tif 000021