(57)【要約】【課題】ジョブの消費電力の予測精度を向上させる。【解決手段】ジョブ電力予測装置１０は、第１ジョブ２ａの実行開始から終了までの時間を、複数の期間に分割する。次にジョブ電力予測装置１０は、第１ジョブ２ａの消費電力の実測値である第１消費電力情報３に基づいて、各期間内での消費電力の時系列変化の周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する。次にジョブ電力予測装置１０は、実行中の第２ジョブ２ｂについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得する。そしてジョブ電力予測装置１０は、第２消費電力情報に基づいて、複数の期間のうちの、第２ジョブ２ｂの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第２ジョブ２ｂの消費電力を予測する。【選択図】図１
2020129314.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報に示される、前記第１ジョブの実行開始から終了までの時間を、複数の期間に分割し、
前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、
前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、
実行中の第２ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得し、
前記第２消費電力情報に基づいて、前記複数の期間のうちの、前記第２ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第２ジョブの消費電力を予測する、
処理を実行させるジョブ電力予測プログラム。
【請求項２】
前記コンピュータに、さらに、
複数の前記第１ジョブおよび前記第２ジョブを、ジョブのステイタス情報の類似性に基づいて１以上のグループに分類する処理を実行させ、
前記周期の算出および前記予測モデルの生成を、前記グループごとに行い、
前記第２ジョブの消費電力の予測では、前記第２ジョブが属する所属グループについて生成された前記予測モデルを用いて、前記第２ジョブの消費電力を予測する、
請求項１記載のジョブ電力予測プログラム。
【請求項３】
前記予測モデルの生成では、予測先の時刻までの時間が異なる複数の前記予測モデルを生成し、
前記第２ジョブの消費電力の予測では、予測対象時刻における消費電力を予測可能な複数の前記予測モデルの予測結果のうち、過去の予測実績によって算出された予測精度に応じて決定した前記予測モデルの予測結果を採用する、
請求項１または２記載のジョブ電力予測プログラム。
【請求項４】
前記複数の期間への分割および前記周期の算出では、
前記第１ジョブの実行開始から終了までの時間を、前記周期が未確定の周期未確定期間の初期値として設定し、
前記周期未確定期間が設定されるごとに、分割数を初期値から増加させながら前記周期未確定期間を繰り返し分割し、
前記周期が未確定の期間が分割されるごとに、分割された期間ごとの消費電力の時系列変化の予想周期を算出し、
算出した前記予想周期が同じ複数の期間が存在する場合、算出した前記予想周期を該当期間の前記周期に確定すると共に、該当期間を周期確定期間とし、前記周期確定期間以外の期間を新たな前記周期未確定期間として設定する、
請求項１ないし３のいずれかに記載のジョブ電力予測プログラム。
【請求項５】
コンピュータが、
第１ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報に示される、前記第１ジョブの実行開始から終了までの時間を、複数の期間に分割し、
前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、
前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、
実行中の第２ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得し、
前記第２消費電力情報に基づいて、前記複数の期間のうちの、前記第２ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第２ジョブの消費電力を予測する、
ジョブ電力予測方法。
【請求項６】
第１ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報を記憶する記憶部と、
前記第１消費電力情報に示される、前記第１ジョブの実行開始から終了までの時間を、複数の期間に分割し、前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、前記第１消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、実行中の第２ジョブについての、実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得し、前記第２消費電力情報に基づいて、前記複数の期間のうちの、前記第２ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第２ジョブの消費電力を予測する処理部と、
を有するジョブ電力予測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置に関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing）システムなどの大規模なコンピュータシステム（以下、単にシステムと呼ぶこともある）では大量の電力を消費する。そのためシステムを安定して稼働させるには、システムの適切な消費電力管理が重要となる。例えばシステムの消費電力を一定に保つことができれば、給電設備への負荷が少なくなる。
【０００３】
システムの消費電力を管理するためには、システムによる電力需要を事前に予測できることが望ましい。システム全体の電力を予測する方法として、ジョブ名などを含む過去のジョブ投入情報から類似するジョブを特定し、特定したジョブの消費電力を予測値として、以後投入されたジョブの消費電力を予測する方法が考えられる。
【０００４】
ジョブの実行開始後は、実行中のジョブのそれまでの消費電力の時系列変化（電力波形）に基づいて、以後のジョブの消費電力を回帰により予測することも可能である。実行中の各ジョブの消費電力の予測結果を積算することで、実行中の全ジョブの合計消費電力を得ることができる。
【０００５】
消費電力の予測に利用可能な技術として、例えばＩＴ（Information Technology）システムから発生する種々のデータから相関関係を検出する検出装置が提案されている。また予測の対象の時系列データの扱い方に特徴を持たせて、予測精度の向上を図ったカオス時系列短期予測装置も提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１４／１８４９２８号
【特許文献２】特開平９−１４６９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ジョブの消費電力の時系列変化には周期性がある場合がある。この場合、ジョブの消費電力を予測するコンピュータが、例えば、実行中のジョブの消費電力の時系列変化の周期を適切に捉えて各周期での電力波形を計算し、周期性を考慮して消費電力を予測することで、予測精度を向上させることができる。しかし、消費電力の時系列変化の周期が期間ごとに異なる場合があり、従来は、消費電力の時系列変化の周期が期間ごとに異なる場合における期間ごとの周期を適切に判断することができない。その結果、予測精度を向上させることが困難となっている。
【０００８】
１つの側面では、本件は、ジョブの消費電力の予測精度を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、コンピュータに以下の処理を実行させるジョブ電力予測プログラムが提供される。
コンピュータは、第１ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報に示される、第１ジョブの実行開始から終了までの時間を、複数の期間に分割する。次にコンピュータは、第１消費電力情報に基づいて、複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出する。次にコンピュータは、第１消費電力情報に基づいて、複数の期間それぞれについて、算出した周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する。次にコンピュータは、実行中の第２ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得する。次にコンピュータは、第２消費電力情報に基づいて、複数の期間のうちの、第２ジョブの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第２ジョブの消費電力を予測する。
【発明の効果】
【００１０】
１態様によれば、ジョブの消費電力の予測精度が向上する。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るジョブ電力予測方法の一例を示す図である。
【図２】周期に応じた予測モデルの生成例を示す図である。
【図３】第２の実施の形態のシステム構成例を示す図である。
【図４】管理サーバのハードウェアの一構成例を示す図である。
【図５】電力管理のための各装置の機能を示すブロック図である。
【図６】管理サーバのＤＢに格納される情報の一例を示す図である。
【図７】ステイタス情報の一例を示す図である。
【図８】ジョブ消費電力情報の一例を示す図である。
【図９】分類データベースの一例を示す図である。
【図１０】分析結果情報の一例を示す図である。
【図１１】学習結果情報の一例を示す図である。
【図１２】予測モデル精度情報の一例を示す図である。
【図１３】ジョブのグルーピングの一例を示す図である。
【図１４】時系列電力データの分類例を示す図である。
【図１５】ジョブ実行前の電力の予測例を示す図である。
【図１６】消費電力の実測値と予測値との比較例を示す図である。
【図１７】学習モデル生成処理の概要を示す図である。
【図１８】ＲＮＮについて説明する図である。
【図１９】遅れ時間に応じたＲＮＮ用の学習データセットの一例を示す図である。
【図２０】予測先の時刻までの時間が異なる複数の予測モデルの例を示す図である。
【図２１】複数の予測モデルによる複数の測定点の消費電力の予測例を示す図である。
【図２２】予測対象時刻の電力の予測に使用可能な予測モデルが複数ある例を示す図である。
【図２３】予測モデル選定テーブルの一例を示す図である。
【図２４】自己相関の相関係数を用いた周期の判定例を示す図である。
【図２５】期間ごとの周期の算出例を示す第１の図である。
【図２６】期間ごとの周期の算出例を示す第２の図である。
【図２７】周期に応じた遅れ時間の例を示す図である。
【図２８】グループ内の複数のジョブの消費電力データを用いた学習例を示す図である。
【図２９】実行中のジョブの以後の消費電力の予測処理を示す図である。
【図３０】消費電力予測処理の手順の一例を示すフローチャートである。
【図３１】予測モデル生成処理の手順の一例を示すフローチャートである。
【図３２】ジョブ強制停止処理の手順の一例を示すフローチャートである。
【図３３】オンデマンド料金制度を説明する図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るジョブ電力予測方法の一例を示す図である。図１には、ジョブ電力予測装置１０を用いて、ジョブ電力予測方法を実施した場合の例を示している。ジョブ電力予測装置１０は、例えばジョブ電力予測方法の処理手順が記述されたジョブ電力予測プログラムを実行することにより、ジョブ電力予測方法を実施することができる。
【００１３】
ジョブ電力予測装置１０は、ＨＰＣシステム１で実行させるジョブの消費電力を予測する。ジョブ電力予測装置１０は、ジョブ電力予測方法を実現するために、記憶部１１と処理部１２とを有する。記憶部１１は、例えばジョブ電力予測装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えばジョブ電力予測装置１０が有するプロセッサ、または演算回路である。
【００１４】
記憶部１１は、第１ジョブ２ａについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報３を記憶する。なお第１ジョブ２ａは、例えば消費電力の予測対象となる第２ジョブ２ｂと消費電力の時系列変化の挙動が類似するジョブである。例えば第１ジョブ２ａと第２ジョブ２ｂとが同じアプリケーションプログラムを使用していれば、消費電力の時系列変化の挙動が類似するものと考えられる。また第１ジョブ２ａと第２ジョブ２ｂとの実行要求を出したユーザが同じであれば、第２ジョブ２ｂは、第１ジョブ２ａと同じ演算・解析などの処理のために実行されるものと予想され、消費電力の時系列変化の挙動が類似するものと考えられる。さらに第１ジョブ２ａと第２ジョブ２ｂとで参照するライブラリが同じであれば、実行する処理も類似していることが予想でき、消費電力の時系列変化の挙動が類似するものと考えられる。
【００１５】
処理部１２は、第１ジョブ２ａについての実行開始からの経過時間に応じた消費電力の実測値である第１消費電力情報３に示される、第１ジョブの実行開始から終了までの時間を、複数の期間に分割する（ステップＳ１）。次に処理部１２は、第１消費電力情報３に基づいて、複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出する（ステップＳ２）。さらに処理部１２は、第１消費電力情報３に基づいて、複数の期間それぞれについて、算出した周期に応じた時間分（例えば１周期分）の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する（ステップＳ３）。その後、処理部１２は、ＨＰＣシステム１において第２ジョブ２ｂの実行が開始されると、実行中の第２ジョブ２ｂについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第２消費電力情報を取得する（ステップＳ４）。そして処理部１２は、第２消費電力情報に基づいて、複数の期間のうちの、第２ジョブ２ｂの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第２ジョブ２ｂの消費電力を予測する（ステップＳ５）。処理部１２は、予測した消費電力を、例えばＨＰＣシステム１に送信する（ステップＳ６）。
【００１６】
このように、過去に実行した第１ジョブ２ａの消費電力の時系列変化の周期を期間ごとに決定し、周期に応じた期間の実測値を用いて、第２ジョブ２ｂの以後の消費電力を予測することで、適切な期間の実測値に基づく正確な予測が可能となる。すなわち第２ジョブ２ｂの消費電力の時系列変化の期間ごとの周期性を考慮した期間ごとに適切な予測モデルを用いて消費電力を予測することで、第２ジョブ２ｂの実行途中で消費電力の時系列変化の周期が変わっても、消費電力を高精度に予測できる。
【００１７】
図２は、周期に応じた予測モデルの生成例を示す図である。例えば第１消費電力情報３において、第１ジョブ２ａの実行開始から９０分間は１５分周期で消費電力が時系列変化し、その後、３０分周期で消費電力が時系列変化したことが示されているものとする。またジョブの消費電力の測定間隔が５分間隔であるものとする。
【００１８】
この場合、処理部１２は、最初の９０分間の期間に応じて、過去１５分の実測値（３点）を用いて以後の電力を予測する予測モデル４を生成する。また処理部１２は、９０分経過後の期間に応じて、過去３０分の実測値（６点）を用いて以後の電力を予測する予測モデル５を生成する。例えば処理部１２は、再帰型ニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）を用いた学習結果を、予測モデル４，５とすることができる。
【００１９】
処理部１２は、第２ジョブ２ｂの実行開始から９０分までは、予測モデル４に第２ジョブ２ｂの消費電力の実測値を入力することで、以後の消費電力を予測する。また処理部１２は、第２ジョブ２ｂの実行開始から９０分経過後は、予測モデル５に第２ジョブ２ｂの消費電力の実測値を入力することで、以後の消費電力を予測する。このように期間ごとの適切な予測モデルを用いることで、消費電力の予測精度が向上する。
【００２０】
しかもジョブの実行期間を複数の期間に分割し、期間ごとに周期を算出しているため、消費電力の時系列変化の周期がジョブの実行途中で変わっても、期間ごとの適切な周期に基づいて高精度な予測が可能となる。
【００２１】
なお第２ジョブ２ｂと挙動が類似するジョブは、例えばステイタス情報に基づいて判定することができる。ステイタス情報は、例えばジョブ名、ジョブの実行を依頼したユーザの名称、ジョブの実行に使用するアプリケーションプログラムの名称、ジョブの実行時に参照するライブラリの名称などを含む情報である。
【００２２】
例えば処理部１２は、複数の第１ジョブ２ａおよび第２ジョブ２ｂを、ジョブのステイタス情報の類似性に基づいて１以上のグループに分類する。そして処理部１２は、ユーザの名称、アプリケーションプログラムの名称、およびライブラリの名称のうちの１または複数の項目が一致するジョブを、同じグループに纏める。さらに処理部１２は、周期の算出および予測モデルの生成を、グループごとに行う。そして処理部１２は、第２ジョブ２ｂが属するグループ（所属グループ）について生成された予測モデルを用いて、第２ジョブ２ｂの消費電力を予測する。これにより、第２ジョブ２ｂと挙動が類似する第１ジョブ２ａを正しく検出し、その第１ジョブ２ａの消費電力に関する情報に基づいて、第２ジョブ２ｂの消費電力を精度よく算出することができる。
【００２３】
また処理部１２は、予測先の時刻までの時間が異なる複数の予測モデルを生成してもよい。例えば５分先、１０分先、１５分先、・・・それぞれの消費電力を予測する予測モデルを生成することができる。処理部１２は、予測先の時刻までの時間が異なる複数の予測モデルを生成した場合、予測対象時刻における消費電力を予測可能な複数の予測モデルの予測結果のうち、過去の予測実績によって算出された予測精度に応じて決定した予測モデルの予測結果を採用する。例えば複数の予測モデルのうち最も高精度な予測モデルの予測結果が採用される。このように複数の予測モデルのうち予測精度に応じて決定した予測モデルで予測することで、予測精度をさらに向上させることができる。
【００２４】
なお、消費電力の時系列変化の周期が、どのような頻度で変わるのかは、第１消費電力情報３を解析するまで分からない。また得られる周期の長さも第１消費電力情報３を解析するまで分からない。第１消費電力に示される第１ジョブ２ａの実行期間を、最初から短い期間に細かく分割すると、各期間の長さがその期間における消費電力の時系列変化の１周期より短くなり、周期を求められない可能性がある。そこで処理部１２は、最初は粗い単位で期間を分割（例えば２分割）し、周期性の検出を行いながら、分割数を少しずつ増やしていく。
【００２５】
例えば処理部１２は、第１ジョブ２ａの実行開始から終了までの時間を、周期が未確定の周期未確定期間の初期値として設定する。次に処理部１２は、周期未確定期間が設定されるごとに、分割数を初期値から増加させながら周期未確定期間を繰り返し分割する。さらに処理部１２は、周期が未確定の期間が分割されるごとに、分割された期間ごとの消費電力の時系列変化の予想周期を算出する。そして処理部１２は、算出した予想周期が同じ複数の期間が存在する場合、算出した予想周期を該当期間の周期に確定すると共に、該当期間を周期確定期間とし、周期確定期間以外の期間を新たな周期未確定期間として設定する。
【００２６】
このように最初は少ない分割数で分割し、徐々に分割数を増加させることで、各期間の周期を確実に算出することが可能となる。しかも無駄に細かく分割しすぎることがなくなり、分割数が多すぎることによる処理量の増加を抑止することができる。
【００２７】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ニューラルネットワークを用いて学習した学習モデルを用いて、ジョブの消費電力を予測するものである。
【００２８】
図３は、第２の実施の形態のシステム構成例を示す図である。ＨＰＣシステム３０は、複数の計算ノード３１，３２，・・・を有している。計算ノード３１，３２，・・・は、投入されたジョブを実行するコンピュータである。
【００２９】
ＨＰＣシステム３０内の計算ノード３１，３２，・・・は、ＨＰＣ運用管理サーバ２００に接続されている。ＨＰＣ運用管理サーバ２００は、ＨＰＣシステム３０の運用管理を行うコンピュータである。例えばＨＰＣ運用管理サーバ２００は、ジョブ実行時の計算ノード３１，３２，・・・の消費電力の時系列変化を監視する。またＨＰＣ運用管理サーバ２００は、実行待ちのジョブについて、管理サーバ１００からのジョブの電力消費パターンの予測結果を受信し、例えばシステムの消費電力が均一化されるように、ジョブスケジューリングを行う。そしてＨＰＣ運用管理サーバ２００は、作成したジョブの実行スケジュールに従って、計算ノード３１，３２，・・・にジョブの実行を指示する。
【００３０】
ＨＰＣ運用管理サーバ２００は、ネットワーク２０を介して端末装置４１，４２，・・・および管理サーバ１００に接続されている。端末装置４１，４２，・・・は、ＨＰＣシステム３０によるジョブの実行を希望するユーザが使用するコンピュータである。端末装置４１，４２，・・・は、ユーザの入力に基づいてＨＰＣシステム３０に実行させるジョブの内容を示すジョブ情報を生成し、生成したジョブ情報を含むジョブ投入要求を、ＨＰＣ運用管理サーバ２００に送信する。ジョブ情報は、ジョブで使用するアプリケーションプログラム名などのステイタス情報を含む。
【００３１】
管理サーバ１００は、ＨＰＣ運用管理サーバ２００によるＨＰＣシステム３０の消費電力の管理を支援するコンピュータである。管理サーバ１００は、ＨＰＣ運用管理サーバ２００から、実行するジョブのジョブ情報および実行が終了したジョブの電力消費パターンを示す電力情報を取得する。管理サーバ１００は、ＨＰＣ運用管理サーバ２００から取得した情報に基づいて、実行待ちのジョブの電力消費パターンを予測する。そして管理サーバ１００は、ＨＰＣ運用管理サーバ２００に、ジョブの電力消費パターンの予測結果を送信する。
【００３２】
図４は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００３３】
メモリ１０２は、管理サーバ１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３４】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００３５】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３６】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００３７】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３９】
機器接続インタフェース１０７は、管理サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４０】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４１】
管理サーバ１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、ＨＰＣ運用管理サーバ２００および計算ノード３１，３２，・・・も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。また第１の実施の形態に示したジョブ電力予測装置１０も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。
【００４２】
管理サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。管理サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また管理サーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することも可能である。
【００４３】
図３に示すシステムにおいて、ＨＰＣ運用管理サーバ２００と管理サーバ１００とが連係動作し、ジョブ単位での電力消費パターンの予測結果に基づく適切な電力管理が行われる。例えば管理サーバ１００が、新たに実行する新規投入ジョブを実行した場合の消費電力の時系列変化を予測する。消費電力の時系列変化は、例えば電力波形で表される。ＨＰＣ運用管理サーバ２００は、新規投入ジョブの電力波形に基づいて、例えばＨＰＣシステム３０の最大消費電力が低く抑えられるように、ジョブスケジューリングを行う。
【００４４】
管理サーバ１００は、さらに実行中のジョブにおけるそれまでの消費電力の実測値に基づいて、消費電力の予測の正確性を検証する。管理サーバ１００は、予測結果と実測値との誤差が所定値以上ある場合には、該当ジョブのそれまでの消費電力の実測値に基づいて、以後の消費電力の時系列変化を予測する。
【００４５】
例えば管理サーバ１００は、あるジョブの電力波形の自己相関により、その電力波形に現れる周期を求めることができる。管理サーバ１００は、求めた周期の１周期分の期間の消費電力情報の実測値を用いて、以後のジョブの消費電力を予測する。
【００４６】
なお、予測対象となる消費電力情報によっては、消費電力の変動周期が、期間によって異なる場合がある。そのため管理サーバ１００は、消費電力の時系列変化が予測対象のジョブに類似するジョブの消費電力情報に基づいて、ジョブの実行開始からの期間に応じた消費電力の時系列変化の周期を判定する。そして管理サーバ１００は、予測対象のジョブの実行開始からの期間に応じた消費電力の時系列変化の周期における１周期分の過去の電力の実測値に基づいて、以後の消費電力を予測する。これにより、予測精度を向上させることが可能となる。
【００４７】
図５は、電力管理のための各装置の機能を示すブロック図である。ＨＰＣ運用管理サーバ２００は、ＤＢ２１０、タイマ部２２０、情報取得部２３０、ジョブスケジューリング部２４０、および制御指示部２５０を有する。
【００４８】
ＤＢ２１０は、実行するジョブのステイタスを示すジョブステイタス情報や、実行したジョブの消費電力の時系列変化を示すジョブ電力消費情報を記憶する。
タイマ部２２０は、ＨＰＣシステム３０からジョブごとの電力消費情報を収集するタイミングを管理する。例えばタイマ部２２０は、一定の時間間隔で、ジョブ電力消費情報の収集を情報取得部２３０に指示する。
【００４９】
情報取得部２３０は、タイマ部２２０からの指示に応じて、ＨＰＣシステム３０から、ＨＰＣシステム３０での実行が終了したジョブの時系列電力データを取得する。情報取得部２３０は、取得した電力消費情報を、ＤＢ２１０に格納する。
【００５０】
なおＨＰＣシステム３０は、ジョブごとに電力を測定する機能を備えている。例えばＨＰＣシステム３０内の各計算ノード３１，３２，・・・は、消費電力を計測する機器を備えており、ジョブを実行していない状態での消費電力と、ジョブを実行中の消費電力との差を、そのジョブの消費電力とすることができる。また計算ノード３１，３２，・・・は、温度センサなどの情報を元にジョブの消費電力を予測してもよい。例えば計算ノード３１，３２，・・・は、ＣＰＵ温度とシステムボード（ＳＢ）排気温度とを、温度センサによって収集する。計算ノード３１，３２，・・・は、収集した温度データに基づいて、まずＣＰＵ温度変化（Ｔcpu）とＳＢ排気温度変化（Ｔair）とを計算する。
【００５１】
ＣＰＵ温度変化（Ｔcpu）は、以下の式で算出できる。
ＣＰＵ温度変化（Ｔcpu）＝ＣＰＵ温度−水冷入力温度    ・・・（１）
またシステムボードの排気温度変化（Ｔair）は、以下の式で算出できる。
ＳＢ排気温度変化（Ｔair）＝ＳＢ排気温度−ラック吸気温度    ・・・（２）
計算ノード３１，３２，・・・は、ＣＰＵの消費電力をＣＰＵ温度変化から算出する（例えばＣＰＵの消費電力＝１．０２・Ｔcpu）。また計算ノード３１，３２，・・・は、メモリの消費電力をＳＢ排気温度から算出する（例えばメモリの消費電力＝０．２５４・Ｔair）。さらに計算ノード３１，３２，・・・は、インターコネクトコントローラ（ＩＣＣ）の消費電力は一定値であるものとする（例えばＩＣＣの消費電力＝８．３６）。そして計算ノード３１，３２，・・・は、以下の式によりジョブの電力Ｐを予測する。
Ｐ＝１．０２・Ｔcpu＋０．２５４・Ｔair＋８．３６    ・・・（３）
ジョブスケジューリング部２４０は、新規に投入されたジョブの実行スケジュールを作成する。またジョブスケジューリング部２４０は、管理サーバ１００から実行中のジョブの今後の消費電力の予測結果を受信すると、ＨＰＣシステム３０の消費電力が、所定の閾値を超えるか否かを判断する。例えばジョブスケジューリング部２４０は、実行中のジョブの消費電力の合計を、ＨＰＣシステム３０の消費電力とする。ジョブスケジューリング部２４０は、ＨＰＣシステム３０の消費電力が閾値を超えると予測した場合、一部のジョブを強制停止することを決定する。
【００５２】
制御指示部２５０は、ジョブスケジューリング部２４０によるジョブの実行スケジュールに従って、ＨＰＣシステム３０にジョブの実行を指示する。また制御指示部２５０は、ジョブスケジューリング部２４０によってジョブの強制停止が決定されると、該当ジョブの停止をＨＰＣシステム３０に指示する。
【００５３】
管理サーバ１００は、ＤＢ１１０、タイマ部１２０、メトリクス収集部１３０、ジョブ分類部１４０、電力比較部１５０、周期分析部１６０、学習部１７０、予測値計算部１８０、および予測結果送信部１９０を有する。
【００５４】
ＤＢ１１０は、ジョブごとの電力消費パターンの予測に使用する情報を記憶する。タイマ部１２０は、未実行のジョブの電力消費パターンの予測タイミングを管理する。例えばタイマ部１２０は、一定の時間間隔で、ＨＰＣ運用管理サーバ２００からの情報収集を、メトリクス収集部１３０に指示する。またタイマ部１２０は、一定の時間間隔で、実行中のジョブの消費電力の予測を予測値計算部１８０に指示する。
【００５５】
メトリクス収集部１３０は、タイマ部１２０の指示に応じて、ＨＰＣ運用管理サーバ２００から情報を収集する。例えばメトリクス収集部１３０は、実行待ちのジョブおよび実行が終了したジョブのジョブステイタス情報と、実行が終了したジョブの電力消費パターンを示す時系列電力データとを、ＨＰＣ運用管理サーバ２００から取得する。メトリクス収集部１３０は、取得した情報をＤＢ１１０に格納する。
【００５６】
ジョブ分類部１４０は、ジョブを所定の分類アルゴリズムで分類する。例えばジョブ分類部１４０は、ジョブの実行時に参照するライブラリ、ジョブの実行を依頼したユーザ、およびジョブに対応するアプリケーションプログラム（以下「アプリ」と呼ぶ）が共通のジョブを、同じグループに分類する。またジョブ分類部１４０は、新規投入ジョブについて、新規投入ジョブと同じグループのジョブの消費電力情報に基づいて、新規投入ジョブの消費電力を予測する。
【００５７】
電力比較部１５０は、ジョブの実行開始後に、実行開始前の消費電力の予測値と、実行開始後の該当ジョブの消費電力の実測値とを比較する。そして電力比較部１５０は、消費電力の予測値と実測値との誤差が所定値以上となった場合、実測値に基づく消費電力の予測をすることを決定する。
【００５８】
周期分析部１６０は、実行中のジョブについて、実測値に基づく消費電力の予測をすることが決定された場合、該当ジョブが属するグループの、実行が終了している他のジョブの消費電力情報に基づいて、消費電力の時系列変化の周期を分析する。例えば周期分析部１６０は、ジョブ分析部１６１と周期比較部１６２とを有する。ジョブ分析部１６１は、ジョブの消費電力情報の取得期間を所定数に分割し、分割した期間（周期判定期間）ごとの消費電力の変動周期を分析する。周期比較部１６２は、周期判定期間ごとの周期を比較し、所定の条件を満たした周期判定期間について周期を確定する。周期未確定の周期判定期間があれば、ジョブ分析部１６１が該当期間をさらに細分化して周期を求め、周期比較部１６２が周期を確定する。
【００５９】
学習部１７０は、ニューラルネットワークを用いて、ジョブの過去の消費電力情報から、以後の消費電力を予測する学習モデルを生成する。学習部１７０は、例えばジョブのグループごとに学習モデルを生成する。学習部１７０は、各グループの学習モデルを生成する際、該当グループにおける消費電力の変動の周期が同一の期間ごとに、学習モデルを生成する。また学習部１７０は、学習モデルを生成する際には、学習モデル生成対象の期間の周期に応じた遅れ時間（どの程度の期間の消費電力の実測値を予測に使用するかを示す時間）で、学習モデルを生成する。なお学習部１７０は、１つのグループの１つの学習モデル生成対象期間において、消費電力を予測する対象の時刻までの、現在の時刻からの時間が異なる、複数の学習モデルを生成することもできる。例えば学習部１７０は、５分先の消費電力を予測する学習モデルと、１０分先の消費電力を予測する学習モデルとを作成することができる。
【００６０】
予測値計算部１８０は、タイマ部により指示されたタイミングで、予測モデルを用いて、実行中のジョブの以後の消費電力の時系列変化を予測する。例えば予測値計算部１８０は、消費電力予測対象のジョブが属するグループの、現在のジョブの実行時間に応じた期間の学習モデルを用いて、消費電力を予測する。なお予測値計算部１８０は、該当期間の学習モデルが複数存在する場合（どれだけ先の消費電力を予測するのかが異なる）、そのうち最も精度のよい予測モデルを使用する。
【００６１】
予測結果送信部１９０は、未実行のジョブの消費電力の予測結果、および実行中のジョブの消費電力の予測結果を、ＨＰＣ運用管理サーバ２００に送信する。
なお、図５に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図５に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００６２】
図６は、管理サーバのＤＢに格納される情報の一例を示す図である。図６の例では、ＤＢ１１０には、ステイタス情報１１１、ジョブ消費電力情報１１２、分類データベース１１３、分析結果情報１１４、学習結果情報１１５、および予測モデル精度情報１１６が格納されている。
【００６３】
ステイタス情報１１１は、ジョブごとのステイタスに関する情報である。ジョブ消費電力情報１１２は、実行が終了したジョブの時系列の消費電力に関する情報である。分類データベース１１３は、ジョブの属するグループを示すデータベースである。分析結果情報１１４は、ジョブのグループごとの時間帯ごとの電力波形の変動周期に関する情報である。学習結果情報１１５は、予測モデルの学習結果を示す情報である。予測モデル精度情報１１６は、生成した予測モデルの予測精度の判定結果を示す情報である。
【００６４】
図７は、ステイタス情報の一例を示す図である。ステイタス情報１１１には、ＨＰＣシステム３０で実行したジョブ、および実行予定のジョブのジョブ名に対応付けて、参照ライブラリ名、ユーザ名、およびアプリ名が設定されている。参照ライブラリ名は、ジョブの実行中に参照するライブラリ（汎用性が高いプログラムの集合）の名称である。ユーザ名は、ジョブの実行を要求したユーザの名称である。アプリ名は、ジョブの実行に使用するアプリの名称である。
【００６５】
図８は、ジョブ消費電力情報の一例を示す図である。ジョブ消費電力情報１１２は、例えばジョブの経過時間を行のラベルに設定し、ジョブ名を列のラベルに設定したデータテーブルである。行と列の交わる位置に、列に示されるジョブを実行したときの、実行開始から行に示される時間だけ経過した時点での、該当ジョブの消費電力が設定されている。
【００６６】
図９は、分類データベースの一例を示す図である。分類データベース１１３には、グループ名に対応付けて、該当グループに属する１以上のジョブのジョブ名が設定されている。例えば参照ライブラリ名、ユーザ名、およびアプリ名が共通するジョブが、同じグループに設定される。分類データベース１１３には、新規に投入するジョブが検出されるごとに、ジョブ分類部１４０によってそのジョブが属するグループが判定され、該当ジョブのジョブ名が分類データベース１１３に登録される。
【００６７】
図１０は、分析結果情報の一例を示す図である。分析結果情報１１４には、グループごとの周期情報１１４ａ，１１４ｂ，・・・が含まれている。周期情報１１４ａ，１１４ｂ，・・・には、対応するグループに属するジョブの実行開始からの経過時間の幅（期間）に対応付けて、該当期間における電力波形の変化の周期が設定されている。例えば「グループＡ」の周期情報１１４ａには、ジョブ開始から０分〜２２５分の範囲内の期間では周期が１５分であり、ジョブ開始から２３０分〜１４３０分の範囲内の期間では周期が３０分であることが示されている。なお図１０の例では、周期の判定の単位期間は５分である。
【００６８】
図１１は、学習結果情報の一例を示す図である。学習結果情報１１５には、例えばグループごとの予測モデル群１１５ａ，１１５ｂ，・・・が含まれている。各予測モデル群１１５ａ，１１５ｂ，・・・には、対応するグループに属するジョブの消費電力の時系列変化に基づいて生成された予測モデルが含まれる。例えば「グループＡ」の予測モデル群１１５ａには、分析結果情報１１４に示されている周期ごとの周期別予測モデル群５１，５２，・・・が含まれている。周期別予測モデル群５１には、対応する周期に応じた遅れ時間で学習した複数の予測モデル５１ａ，５１ｂ，・・・が含まれている。例えば予測モデル５１ａは、単位時間（５分）間隔に設定された予測点における１点先（５分先）の消費電力を予測するニューラルネットワークの学習モデルである。予測モデル５１ｂは、単位時間（５分）間隔に設定された予測点における２点先（１０分先）の消費電力を予測するニューラルネットワーク（例えばＲＮＮ）の学習モデルである。ニューラルネットワークにおける学習とは、ニューロンに相当するユニットに入力するデータに対する重みの適切な値を求めることである。学習結果には、学習された入力データの重みが設定される。
【００６９】
図１２は、予測モデル精度情報の一例を示す図である。予測モデル精度情報１１６には、例えばグループごとの予測モデル選定テーブル群１１６ａ，１１６ｂ，・・・が含まれている。各予測モデル選定テーブル群１１６ａ，１１６ｂ，・・・には、対応するグループに属するジョブの消費電力の時系列変化に基づいて生成された予測モデルの精度を示す情報が含まれる。例えば「グループＡ」の予測モデル選定テーブル群１１６ａには、分析結果情報１１４に示されている周期ごとの周期別予測モデル選定テーブル群６１，６２，・・・が含まれている。例えば周期別予測モデル選定テーブル群６１には、予測対象の時刻ごとに、該当時刻の電力を予測する予測モデルの予測精度を示す予測モデル選定テーブル６１ａ，６１ｂ，・・・が含まれている。予測対象の時刻は、例えば５分ごとの時刻を予測対象の時点としたときに、予測に使用する実測値の取得時刻から何点先の時刻なのかで表される。例えば予測モデル選定テーブル６１ａには、５分（１点）先を予測することができる複数の予測モデルそれぞれの予測精度が示されている。また予測モデル選定テーブル６１ｂには、１０分（２点）先を予測することができる複数の予測モデルそれぞれの予測精度が示されている。予測モデル選定テーブルの詳細は後述する（図２３参照）。
【００７０】
以上のような情報を用いて、管理サーバ１００においてジョブの消費電力の予測が行われる。電力を予測するために管理サーバ１００は、既に実行が終了したジョブの消費電力の時系列変化に基づいて、消費電力を予測するための予測モデルを作成する。
【００７１】
このときステイタス情報が類似するジョブは、消費電力の時系列変化も類似しているという知見に基づいて、管理サーバ１００はジョブをグルーピングする。
図１３は、ジョブのグルーピングの一例を示す図である。ジョブ７１，７２，７３，・・・には、投入時にステイタス情報が指定される。各ジョブ７１，７２，７３，・・・のステイタス情報は、メトリクス収集部１３０により、ＨＰＣ運用管理サーバ２００から取得され、ＤＢ１１０に格納される。ジョブ分類部１４０は、ＤＢに格納されたステイタス情報１１１を参照して、ジョブ７１，７２，７３，・・・をグルーピングする。例えばジョブ分類部１４０は、参照ライブラリ名、ユーザ名、およびアプリ名が共通のジョブを、同じグループにグルーピングする。図１３の例では、ジョブ名「ＪＯＢ１」のジョブとジョブ名「ＪＯＢ４」のジョブは、参照ライブラリ名、ユーザ名、およびアプリ名のいずれもが同じである。そこでジョブ分類部１４０は、ジョブ名「ＪＯＢ１」のジョブとジョブ名「ＪＯＢ４」のジョブとを、共にグループ名「グループＡ」のグループに分類している。そしてジョブ分類部１４０は、分類結果を、ＤＢ１１０内の分類データベース１１３に設定する。
【００７２】
さらにジョブ分類部１４０は、分類データベース１１３に基づいて、ジョブごとの消費電力の時系列変化を示すデータ（時系列電力データ）を、グループごとに分類する。
図１４は、時系列電力データの分類例を示す図である。管理サーバ１００のＤＢ１１０には、メトリクス収集部１３０によりＨＰＣ運用管理サーバ２００から取得された、ジョブ消費電力情報１１２が格納されている。ジョブ消費電力情報１１２の列ごとの電力値が、対応するジョブの時系列電力データ８１，８２，８３，８４，８５，８６，・・・である。ジョブ分類部１４０は、分類データベース１１３に基づいて、ジョブ消費電力情報１１２に示される各ジョブの時系列電力データ８１，８２，８３，８４，８５，８６，・・・を、グループごとに分類する。
【００７３】
ジョブ分類部１４０は、新規投入ジョブの実行前にそのジョブの属するグループ内の実行が終了しているジョブの時系列電力データに基づいて、新規投入ジョブの電力を実行前に予測する。
【００７４】
図１５は、ジョブ実行前の電力の予測例を示す図である。例えば新規投入ジョブ７４の参照ライブラリ名、ユーザ名、およびアプリ名が、「グループＡ」に属するジョブと同じであるものとする。この場合、ジョブ分類部１４０は、新規投入ジョブ７４を、「グループＡ」に分類する。そしてジョブ分類部１４０は、例えば新規投入ジョブの実行に使用する計算ノード数（要求ノード数）に基づいて、「グループＡ」に属するジョブの時系列電力データ８１，８４，・・・の中から、電力予測時の参照元とする時系列電力データを取得する。
【００７５】
例えばジョブ分類部１４０は、新規投入ジョブの要求ノード数が「３８４」であり、同じ要求ノード数の実行済みのジョブの実行実績がある場合、該当ジョブの消費電力の平均値を、新規投入ジョブ７４の消費電力予測値とする。図１５の例では、要求ノード数が同じ２つのジョブの実行実績があり、そのジョブの実行開始からのある時点での消費電力が「０．０４」と「０．０５」である。この場合、ジョブ分類部１４０は、新規投入ジョブ７４の消費電力を「０．０４５」と予測する。
【００７６】
ジョブ分類部１４０は、新規投入ジョブの要求ノード数が「５１２」であり、同じ要求ノード数の実行済みのジョブの実行実績がない場合、要求ノード数が近いジョブの消費電力を用いて補間した値を、新規投入ジョブ７４の消費電力の予測値とする。例えばジョブ分類部１４０は、要求ノード数が「５１２」より少ないジョブのうち、要求ノード数が最も多いジョブの、予測対象の時点（測定点）での消費電力の平均を求める。図１５の例では、要求ノード数が「３８４」の２つのジョブの消費電力（「０．０４」と「０．０５」）の平均値「０．０４５」が求められる。次に、ジョブ分類部１４０は、要求ノード数が「５１２」より多いジョブのうち、要求ノード数が最も少ないジョブの、予測対象の測定点での消費電力の平均を求める。図１５の例では、要求ノード数が「５４８」の２つのジョブの消費電力（「０．０５」と「０．０６」）の平均値「０．０５５」が求められる。ジョブ分類部１４０は、要求ノード数を横軸、消費電力を縦軸とする座標系で、求めた２つの平均値を示す点を通る電力予測式を求める。電力Ｐ0を求める予測式は、例えば以下の式で表される。
Ｐ0＝ａ・Ｎnode＋ｂ    ・・・（４）
Ｎnodeは、要求ノード数である。ａ，ｂは、計算によって求まる定数である。ジョブ分類部１４０は、式（４）のＮnodeとして、新規投入ジョブ７４の要求ノード数を設定することで、消費電力を予測する。例えば要求ノード数「５１２」の新規投入ジョブの消費電力は、式（４）に基づいて「０．０５３」となる。
【００７７】
ジョブ分類部１４０は、新規投入ジョブ７４と同じグループに属する全ジョブから予測式を算出してもよい。例えばジョブ分類部１４０は、新規投入ジョブ７４と同じグループに属する実行済みのジョブの消費電力の実測値に基づいて、最小二乗法により、予測対象の測定点それぞれにおける、要求ノード数と消費電力との関係を示す電力予測式を生成する。全ジョブから予測式を算出すれば、新規投入ジョブ７４より要求ノード数が多い実行済みのジョブ、または新規投入ジョブ７４より要求ノード数が少ない実行済みのジョブのいずれかが存在しない場合であっても、新規投入ジョブ７４の消費電力を予測できる。
【００７８】
ジョブ分類部１４０は、図１５に示したような消費電力の予測値を、新規投入ジョブ７４の実行開始から所定の時間間隔（例えば５分間隔）の各測定点について求める。各測定点について求めた消費電力を時系列に並べることで、新規投入ジョブ７４の消費電力の時系列変化を示す電力波形が得られる。
【００７９】
新規投入ジョブ７４の消費電力の予測結果は、予測結果送信部１９０によって、ＨＰＣ運用管理サーバ２００に送信される。ＨＰＣ運用管理サーバ２００では、ジョブスケジューリング部２４０が消費電力の予測結果に基づいて、例えばＨＰＣシステム３０全体の消費電力が所定値を超えないようにジョブスケジューリングを行う。
【００８０】
新規投入ジョブ７４は、スケジュールに従ってＨＰＣシステム３０で実行される。新規投入ジョブ７４の実行が開始されると、逐次、新規投入ジョブ７４の消費電力の実測値がＨＰＣシステム３０で計測される。計測された新規投入ジョブ７４の消費電力は、ＨＰＣ運用管理サーバ２００の情報取得部２３０によりＤＢ２１０に格納される。そして管理サーバ１００のメトリクス収集部１３０がＤＢ２１０から新規投入ジョブ７４の消費電力の実装値を取得し、ＤＢ１１０に格納する。
【００８１】
管理サーバ１００の電力比較部１５０は、新規投入ジョブ７４の消費電力の実測値が得られると、消費電力の実測値をジョブ分類部１４０による予測値と比較する。
図１６は、消費電力の実測値と予測値との比較例を示す図である。ジョブ分類部１４０は、ジョブの分類結果に基づき、新規投入ジョブの実行前に、新規投入ジョブの実行期間中の消費電力を予測する。予測された消費電力は、電力波形９１で表される。
【００８２】
その後、新規投入ジョブの実行が開始され実行中ジョブとなると、その実行中ジョブの消費電力の実測値が得られる。電力比較部１５０は、得られた実測値に基づいて電力波形９２を生成する。そして電力比較部１５０は、予測した電力波形９１と実測された電力波形９２との誤差を算出する。例えば電力比較部１５０は、得られた実測値ごとに、同時刻の消費電力の予測値との差を計算し、差の平均が所定値以上となるか否かを判断する。電力比較部１５０は、差の平均が所定値以上である場合、実行前の消費電力の予測結果が不正確であると認定し、周期分析部１６０に、実行中ジョブが属するグループの期間ごとの消費電力の時系列変化の周期の算出を指示する。
【００８３】
すると、周期分析部１６０、学習部１７０、および予測値計算部１８０の処理により、消費電力の実測値に基づき、回帰を用いた実行中ジョブの以後の消費電力が予測される。その結果、新たな電力波形９３が得られる。
【００８４】
実測した消費電力に基づく以後の消費電力の予測には、例えばＲＮＮによって学習した学習モデルが使用される。学習モデルは、学習部１７０によって、例えばグループごとに生成される。
【００８５】
図１７は、学習モデル生成処理の概要を示す図である。例えば学習部１７０は、「グループＡ」に属するジョブの時系列電力データ８１，８４，・・・に基づいて、周期が同じ期間ごとにＲＮＮで学習し、「グループＡ」の予測モデル群を生成する。また学習部１７０は、「グループＢ」に属するジョブの時系列電力データ８２，８５，・・・に基づいて、周期が同じ期間ごとにＲＮＮで学習し、「グループＢ」の予測モデル群を生成する。さらに学習部１７０は、「グループＣ」に属するジョブの時系列電力データ８３，８６，・・・に基づいて、周期が同じ期間ごとにＲＮＮで学習し、「グループＣ」の予測モデル群を生成する。
【００８６】
図１８は、ＲＮＮについて説明する図である。ＲＮＮ３００は、ニューラルネットワークの一種であり、時系列データの学習に用いられる。ＲＮＮでは、時刻ｔの隠れ層の内容が、次の時刻ｔ＋１の入力として扱われる。
【００８７】
ＲＮＮ３００には、ＬＳＴＭ（Long Short-Term Memory Networks）やＧＲＵ（Gated Recurrent Unit）がある。
ＬＳＴＭは、ゲートのメカニズムを導入することで、遠い過去のことまで覚えておくことができる。そのため、過去の情報まで参考にしないと予測できないような問題には、ＬＳＴＭが有用となる。ＧＲＵは、ＬＳＴＭを改良したものである。ＧＲＵは、ＬＳＴＭの構造をシンプルにしたもので、忘却ゲートと入力ゲートを単一の更新ゲート３０１として組み合わせている。
【００８８】
更新ゲート３０１には、どの程度の過去に遡って情報を利用するのかを設定することができる。ＲＮＮ３００において、どの程度の過去に遡って情報を利用するのかは、遅れ時間として設定される。遅れ時間は、予測対象の測定点に対してどこまで過去の情報を使用して学習／予測を行うかを決定するハイパパラメータである。
【００８９】
図１９は、遅れ時間に応じたＲＮＮ用の学習データセットの一例を示す図である。図１９には、遅れ時間が「６」の場合の例が示されている。
ジョブの時系列電力データ３１１には、所定時間間隔（例えば５分間隔）で測定された、ジョブの消費電力値（実測値）が含まれる。時系列電力データ３１１の各矩形が実測値を表しており、矩形内の数字は、時系列上の測定順を示している。学習部１７０は、時系列電力データ３１１に基づいて、学習用データセット３１２を生成する。
【００９０】
例えば学習用データセット３１２の１行目には、１番目から６番目の実測値を用いて、７番目の電力を予測することが示されている。そして７番目の実測値が、予測の答えである。すなわち１番目から６番目の実測値を用いて、予測モデルにより予測した結果と、７番目の実測値との差が所定値以下であれば、予測結果は正解となる。
【００９１】
同様に、２番目から７番目の実測値を用いて８番目の電力が予測され、８番目の実測値が答えである。３番目から８番目の実測値を用いて９番目の電力が予測され、９番目の実測値が答えである。４番目から９番目の実測値を用いて１０番目の電力が予測され、１０番目の実測値が答えである。５番目から１０番目の実測値を用いて１１番目の電力が予測され、１１番目の実測値が答えである。６番目から１１番目の実測値を用いて１２番目の電力が予測され、１２番目の実測値が答えである。
【００９２】
学習部１７０は、図１９に示すように時系列電力データ３１１を整形して、学習用データセット３１２を作成する。学習部１７０は、このような学習用データセット３１２の生成を、ジョブごとに行う。
【００９３】
図１９では、予測に使用する実測値から、電力測定間隔において次の測定点（例えば５分後）の電力を予測する場合を想定しているが、学習部１７０は、さらに遠い未来の電力を予測するような予測モデルを生成することも可能である。
【００９４】
図２０は、予測先の時刻までの時間が異なる複数の予測モデルの例を示す図である。図２０の例では、３点先の測定点の電力を予測する予測モデル３２１、２点先の測定点の電力を予測する予測モデル３２２、および１点先の測定点の電力を予測する予測モデル３２３に示されている。
【００９５】
学習部１７０は、実行済みのジョブ電力時系列データを手前から読み込みながら予測し、実測値との誤差を学習する。例えば学習部１７０は、ＢＰＴＴ（Back-Propagation Through Time）アルゴリズムで実測値と予測値との誤差を学習する。ＢＰＴＴは、ニューラルネットワークの重みの時間方向の誤差逆伝播を行うものである。
【００９６】
学習部１７０は、予測に使用するデータの取得時間帯以降の複数の測定点（例えば５，１０，１５，２０，２５，３０分先)の予測モデルをそれぞれ独立に作成する。そして学習部１７０は、同一の過去の電力時系列データを用いて、各モデルからの予測結果をそれぞれ対応する予測先の点としてあてはめ、実測値との誤差を算出しながら、誤差逆伝播法とＢＰＴＴとを用いて学習する。
【００９７】
学習により、複数の予測モデルが生成されている場合、予測値計算部１８０は、実行中ジョブの消費電力の実測値を取得したとき、複数の測定点における該当ジョブの消費電力を予測できる。
【００９８】
図２１は、複数の予測モデルによる複数の測定点の消費電力の予測例を示す図である。図２１に示すように、予測値計算部１８０は、複数の予測モデル３２１〜３２３を用いて、１点先、２点先、３点先の消費電力を予測することができる。時間が経過し、１点先の消費電力の実測値が得られた場合、予測値計算部１８０は、複数の予測モデル３２１〜３２３を用いて、さらに１点先、２点先、３点先の消費電力を予測することができる。
【００９９】
予測先の時刻までの時間が異なる複数の予測モデルを生成した場合、ある測定点の電力を予測するのに使用可能な予測モデルが複数存在することにもなる。
図２２は、予測対象時刻の電力の予測に使用可能な予測モデルが複数ある例を示す図である。図２２では、予測に使用するデータ３３１を黒丸で示し、予測結果３３２を白丸で示している。１点先から６点先までの各測定点の電力を予測する予測モデルを生成している場合、現在の１点先を予測するモデルは６個存在することになる。
【０１００】
予測値計算部１８０は、予測対象となる測定点に対して予測モデルが複数ある場合、過去予測結果と実測結果の比較から最も良い精度の予測モデルを選択し、その予測モデルによって選択された予測結果を採用する。例えば予測値計算部１８０は、予測対象となる測定点を予測可能な複数の予測モデルについて、新たに予測対象となる測定点の消費電力を予測し、その予測対象となる測定点の実測値が得られるごとに、直近の所定期間の予測結果と実測値とを比較して、ＲＭＳＥ（ＲＭＳＥ：Root Mean Square Error）を算出する。そして予測値計算部１８０は、新たに算出した複数の予測モデルのＲＭＳＥを予測モデル選定テーブルに追加登録する。そして予測値計算部１８０は、更新された予測モデル選定テーブルを参照して、最も精度が高い（誤差が小さい）予測モデルを、次の予測に用いる予測モデルとして選択する。
【０１０１】
図２３は、予測モデル選定テーブルの一例を示す図である。予測モデル選定テーブル６１ａには、例えばＲＭＳＥを算出した時刻に対応付けて、予測モデルごとの予測値と実測値との平均二乗誤差が設定されている。ＲＭＳＥの値が小さいほど、誤差が少ないことを示している。例えば予測値計算部１８０は、ある時刻の電力を予測する場合、該当する時刻の電力の予測に使用可能な予測モデルのうち、計算済みのＲＭＳＥの合計が最小の予測モデルの予測結果を採用する。
【０１０２】
なお図１９〜図２３に示した例では遅れ時間が「６」であるが、遅れ時間はもっと長くすることも短くすることもできる。ジョブの消費電力の予測にＲＮＮ３００を利用した場合、遅れ時間を長くすると、より多くの実測値を使用して予測できるので予測精度の向上が見込める。ただし、遅れ時間を長くしすぎると、現在の消費電力の挙動とは異なる挙動をしていたときの情報までも利用され、かえって予測精度が劣化することがある。また、遅れ時間を長くすると、学習および予測の計算時間が長くなるという弊害もある。そのため、ジョブの消費電力の時系列変化に周期性が認められる場合、ＲＮＮにおける遅れ時間の最適値は、電力波形の周期の１周期分であると考えられる。すなわち、電力波形が周期的に変化しているとき、その１周期分の時系列電力データを用いれば、繰り返される電力の時系列変化を的確に予測できる。そこで周期分析部１６０は、グループごとの電力の時系列変化の周期を判定する。周期の判定には、自己相関の相関係数を用いることができる。
【０１０３】
図２４は、自己相関の相関係数を用いた周期の判定例を示す図である。自己相関の相関係数とは、元の電力波形３４１に対して時刻軸方向に所定時間シフトし、元の電力波形３４１のデータと時刻軸方向にずらした電力波形３４２のデータとの相関係数である。自己相関の相関係数ｒxyは、元の電力波形３４１を表す電力値のデータ点数をｎ（ｎは１以上の整数）とすると、以下の式で算出することができる。
【０１０４】
【数１】
2020129314.tif 000003
【０１０５】
ｘiは、元の電力波形３４１を表すｉ番目の電力値のデータである（ｉ＝１，２，・・・，ｎ）。ｙiは、時刻軸方向にずらした電力波形３４２を表すｉ番目の電力値のデータである。オーバーライン付きのｘは、ｘiの相加平均である。オーバーライン付きのｙは、ｙiの相加平均である。
【０１０６】
図２４の上のグラフでは、同じような形が３回繰り返されており、電力変化に周期性が見られる。ジョブ分析部１６１は、元の電力波形３４１から時刻軸方向に所定量ずらした電力波形３４２を生成し、元の電力波形３４１とずらした電力波形３４２との相関係数を算出する。なお、時刻軸方向のずらし量はラグと呼ばれる。ジョブ分析部１６１は、例えばラグを少しずつ増やしながら、その都度、自己相関の相関係数を差出する。すると、コレログラム３４３を生成することができる。コレログラム３４３は、元データからのずらした量（ラグ）を横軸にとり、計算した相関係数を縦軸に取るグラフである。コレログラム３４３を参照すると、相関係数がピーク（局所的最大値）となる位置が、所定間隔で現れている。ジョブ分析部１６１は、相関係数がピークとなる位置の間隔を、電力波形の周期と判定する。なおジョブ分析部１６１は、例えば、あるラグの値の相関係数が、前後の相関係数よりも高い場合、そのラグの値をピークの位置とする。
【０１０７】
なお、ジョブによっては、コレログラム３４３のピークの間隔の平均値で消費電力の時系列変化の周期を求めると、正しい周期の検出が困難な場合がある。例えば、部分的に周期性がある場合や、途中で周期が変化する場合に、適切な周期の検出が困難となる。誤った周期を検出し、その周期に基づいて消費電力を予測すると、予測精度が劣化する。
【０１０８】
そこで周期分析部１６０は、ある時系列電力データを時刻軸方向にＮ個（Ｎは２以上の整数）に分割し、分割された期間それぞれの自己相関の相関係数を計算する。周期分析部１６０は、分割数Ｎの初期値を２とし、分割された期間ごとの周期が一致するか否かの判定、分割数の増加を繰り返す。周期分析部１６０は、分割数Ｎを増加させるごとに、分割された期間ごとの自己相関の相関係数の計算による周期の判定と、各期間の周期の比較とを実施する。これにより、時系列電力データで表される電力波形の、分割された期間ごとの適切な周期を算出できる。
【０１０９】
図２５は、期間ごとの周期の算出例を示す第１の図である。ジョブの消費電力の時系列変化を示す電力波形３５１には、ジョブの実行開始から所定の期間は１５分周期で電力が変動し、その後、３０分周期で電力が変動したことが示されている。このような期間ごとに異なる周期を算出するために、周期分析部１６０のジョブ分析部１６１は、ジョブの実行期間全体を、第１期間と第２期間とに２分割する。そしてジョブ分析部１６１は、第１期間と第２期間とのそれぞれのコレログラムを算出し、ピークの平均間隔から周期を求める。周期比較部１６２は、期間ごとに求められた周期を比較する。この場合、第１期間では、最初の１５分周期の期間を含んでいるため、得られる周期が３０分よりも短い値となる。その結果、第１期間と第２期間との周期は不一致となる。
【０１１０】
そこでジョブ分析部１６１は、ジョブの実行期間全体を、第１期間と第２期間と第３期間に３分割する。そしてジョブ分析部１６１は、第１期間と第２期間と第３期間それぞれのコレログラムを算出し、ピークの平均間隔から周期を求める。周期比較部１６２は、期間ごとに求められた周期を比較する。この場合、第１期間では、最初の１５分周期の期間を含んでいるため、得られる周期が３０分よりも短い値となる。他方、第２期間と第３期間は、ともに３０分周期となる。その結果、第１期間は他の期間と周期が一致しないが、第２期間と第３期間とは周期が一致する。
【０１１１】
ジョブ分析部１６１は、周期が一致した期間については、算出された周期を、その期間の周期として確定する。そしてジョブ分析部１６１と周期比較部１６２とは、周期が未確定の期間について、同様の処理を繰り返す。
【０１１２】
図２６は、期間ごとの周期の算出例を示す第２の図である。周期が一致した期間は同一周期期間として、以後の周期判定の対象から除外される。そこで、ジョブ分析部１６１は、周期が未確定の期間（図２５に示した３分割時の第１期間）を２分割して周期を算出する。そして周期比較部１６２は、期間ごとの周期を比較する。図２６の例では、第２周期は、同一周期期間と周期が一致する。そこでジョブ分析部１６１は、第２周期期間を同一周期期間に含める。第１期間は、他の期間と周期が一致せず、周期未確定の期間として残る。
【０１１３】
その後、ジョブ分析部１６１と周期比較部１６２とにより、周期未確定の期間について、分割数を初期値から徐々に増やしながら、周期の計算と比較とが繰り返される。最終的に、１５分周期の同一周期期間と３０分周期の同一周期期間とが得られる。
【０１１４】
電力波形３５１に表される消費電力の時系列変化の周期が正しく判定できることで、期間ごとの予測モデルにおける遅れ時間を正しく設定することができる。
図２７は、周期に応じた遅れ時間の例を示す図である。例えば電力予測の時間間隔が５分の場合、学習部１７０は、１５分周期の期間については、遅れ時間「３」（１５分）によって予測モデルを生成する。この場合、過去３点の測定点の電力の実測値に基づいて以後の電力を予測する予測モデルが生成される。また学習部１７０は、３０分周期の期間については、遅れ時間「６」（３０分）によって予測モデルを生成する。この場合、過去６点の測定点の電力の実測値に基づいて以後の電力を予測する予測モデルが生成される。
【０１１５】
なお、期間ごとの周期の判定は実行が終了したジョブごとに行われるが、同じグループに属する複数のジョブは、消費電力の時系列変化について同じような周期性を有していることが多い。そこで学習部１７０は、同一グループの同一周期期間ごとに、該当期間について決定された遅れ時間を設定して予測モデルの学習を実施する。
【０１１６】
図２８は、グループ内の複数のジョブの消費電力データを用いた学習例を示す図である。学習部１７０は、同一グループの同一の周期の期間ごとに学習を行い、期間ごとに予測モデルを生成する。図２８には、「グループＡ」に属する複数のジョブの電力波形３５２〜３５４を示している。各ジョブの電力波形３５２〜３５４を示す消費電力データのうちの、０分〜９０分の期間のデータに基づいて予測モデルが生成され、９５分〜１４２０分の期間について別の予測モデルが生成される。
【０１１７】
予測値計算部１８０は、予測対象の時刻までのジョブの実行開始からの経過時間に基づいて、どの期間に該当するのかを判断し、該当する期間の予測モデルを用いて、実行中のジョブの以後の消費電力を予測する。
【０１１８】
図２９は、実行中のジョブの以後の消費電力の予測処理を示す図である。例えば実行中ジョブ３６１の現在までの消費電力データ３６２を取得した場合、ジョブ分類部１４０は、実行中ジョブ３６１のステイタス情報に基づいて、実行中ジョブを分類する。図２９の例では、「グループＡ」に分類されたものとする。この場合、予測値計算部１８０は、「グループＡ」の予測モデル群１１５ａの中から、消費電力の予測に用いる予測モデルを選択する。すなわち、予測値計算部１８０は、予測対象の時刻までのジョブの実行開始からの経過時間に基づいて、どの期間に該当するのかを判断する。そして予測値計算部１８０は、該当する期間の周期に対応する予測モデルに、実測値として得られた消費電力データ３６２を入力することで、以後の消費電力を予測する。なお、図２２に示したように、予測対象となる測定点に対して予測モデルが複数ある場合もある。この場合、予測値計算部１８０は、図２３に示したような予測モデル選定テーブルを参照して、最も良い精度の予測モデルを選択し、その予測モデルによる予測結果３６３を採用する。これにより予測精度が向上する。
【０１１９】
以下、管理サーバ１００における消費電力の予測のための処理手順を、フローチャートを参照して説明する。
図３０は、消費電力予測処理の手順の一例を示すフローチャートである。以下、図３０に示す処理をステップ番号に沿って説明する。
【０１２０】
［ステップＳ１０１］メトリクス収集部１３０は、ＨＰＣ運用管理サーバ２００から情報を収集する。例えばメトリクス収集部１３０は、タイマ部１２０から所定の時間間隔で出力される情報取得指示に応じて、情報を取得する。取得する情報には、ジョブのステイタス情報や実行中のジョブの消費電力の実測値が含まれる。ジョブのステイタス情報には、ジョブ名、参照ライブラリ名、ユーザ名、アプリ名などが含まれる。またジョブのステイタス情報には、例えば該当ジョブが実行前の新規投入ジョブなのか、実行中のジョブなのか、実行が終了したジョブなのかといった情報も含まれる。メトリクス収集部１３０は、取得した情報をＤＢ１１０に格納する。
【０１２１】
［ステップＳ１０２］ジョブ分類部１４０は、ジョブのステイタス情報に基づいて、各ジョブを複数のグループに分類する。例えばジョブ分類部１４０は、新たなジョブが投入された場合に、収集したジョブそれぞれのステイタス情報から、ジョブを複数のグループに分類し、分類結果を分類データベース１１３に保存する。なお同じグループに属するジョブは、挙動の似ているジョブのものと推定され、消費電力の時系列変化も類似していることが予測される。
【０１２２】
［ステップＳ１０３］ジョブ分類部１４０は、新規投入ジョブの電力を、同じグループの実行が終了しているジョブの消費電力データに基づいて予測する。ジョブ分類部１４０は、予測結果を、電力比較部１５０に送信する。またジョブ分類部１４０は、予測結果を予測結果送信部１９０に送信してもよい。予測結果送信部１９０は、新規投入ジョブの消費電力の予測結果を、ＨＰＣ運用管理サーバ２００に送信する。すると、ＨＰＣ運用管理サーバ２００のジョブスケジューリング部２４０が、例えばＨＰＣシステム３０全体の消費電力が所定値を超えないように、ジョブスケジューリングを行う。
【０１２３】
［ステップＳ１０４］メトリクス収集部１３０は、実行中ジョブの消費電力の情報を取得する。例えばメトリクス収集部１３０は、タイマ部１２０から所定の時間間隔で出力される消費電力取得指示に応じて、消費電力の情報を取得する。メトリクス収集部１３０は、取得した消費電力の情報を、ＤＢ１１０のジョブ消費電力情報１１２に追加格納する。
【０１２４】
［ステップＳ１０５］ジョブ分類部１４０は、メトリクス収集部１３０が収集した情報に基づいて、処理の終了条件が満たされたか否かを判断する。終了条件は、例えば実行中のすべてのジョブの実行が終了したことである。ジョブ分類部１４０は、実行中のジョブが終了したか否かは、例えば該当ジョブの消費電力時系列データの最新の電力値が取得できたか否かによって判断できる。またジョブ分類部１４０は、ステップＳ１０１における次回の情報収集タイミングになった場合にも、現在実行中の消費電力予測処理の終了条件を満たすと判断してもよい。ジョブ分類部１４０は、終了条件が満たされた場合、消費電力予測処理を終了する。またジョブ分類部１４０は、終了条件が満たされていなければ、処理をステップＳ１０６に進める。
【０１２５】
［ステップＳ１０６］電力比較部１５０は、実行中のジョブの消費電力の予測値と実測値との誤差が閾値を超過するか否かを判断する。なお誤差の閾値は、例えばＨＰＣシステム３０で許容される消費電力の予測精度に応じて予め設定される。電力比較部１５０は、誤差が閾値を超えている場合、処理をステップＳ１０７に進める。また電力比較部１５０は、誤差が閾値を超えていなければ、処理をステップＳ１０４に進める。
【０１２６】
［ステップＳ１０７］周期分析部１６０と学習部１７０とが連係動作し、実行中のジョブの消費電力を予測するための予測モデルを生成する。予測モデル生成処理の手順の詳細は後述する（図３１参照）。
【０１２７】
［ステップＳ１０８］予測値計算部１８０は、生成された予測モデルに基づいて、実行中のジョブの今後の消費電力の予測値を算出する。
［ステップＳ１０９］予測値計算部１８０は、予測モデルが複数存在する場合、予測精度が最も高い予測モデルを選択し、該当予測モデルを用いた予測結果を、実行中のジョブの消費電力の予測結果として採用する。例えば予測値計算部１８０は、予測対象の測定点の電力を予測可能な予測モデルそれぞれを用いて、既に実測値が得られている所定数の測定点の電力の予測値を計算する。予測値の計算には、例えば現在予測対象となっている実行中ジョブの過去の実測値を用いることができる。予測値計算部１８０は、予測モデルごとに計算した所定数の測定点の予測値とその測定点の実測値とを比較して、各予測モデルのＲＭＳＥを算出する。予測値計算部１８０は、例えば算出したＲＭＳＥの値が最も小さい予測モデルの予測結果を、実行中のジョブの消費電力の予測結果として採用する。また予測値計算部１８０は、過去に複数回算出したＲＭＳＥの値の合計が最も小さい予測モデルの予測結果を、実行中のジョブの消費電力の予測結果として採用してもよい。
【０１２８】
［ステップＳ１１０］予測結果送信部１９０は、採用された予測結果を、実行中のジョブの消費電力の予測結果としてＨＰＣ運用管理サーバ２００に送信する。ＨＰＣ運用管理サーバ２００では、予測結果に基づいて、ジョブスケジューリング部２４０によって、ＨＰＣシステム３０の消費電力が所定値を超えることになるか否かを判断し、超える場合には、ジョブの強制停止処理を行う。その後、処理がステップＳ１０４に進められる。
【０１２９】
次に、予測モデル生成処理の詳細について説明する。
図３１は、予測モデル生成処理の手順の一例を示すフローチャートである。以下、図３１に示す処理をステップ番号に沿って説明する。
【０１３０】
［ステップＳ１２１］周期分析部１６０のジョブ分析部１６１は、実行中のジョブと同じグループのジョブを分析対象として選択する。
［ステップＳ１２２］ジョブ分析部１６１は、周期未確定期間の分割数Ｎを初期値「２」に設定する（Ｎ＝２）。
【０１３１】
［ステップＳ１２３］ジョブ分析部１６１は、周期未確定期間内に、分析対象のジョブの消費電力の実装値のデータ点数が十分にあるか否かを判断する。例えばジョブ分析部１６１は、周期未確定期間の分析対象のジョブのデータ点数が所定数（例えば３０点）以上ある場合、データ点数が十分であると判断する。ジョブ分析部１６１は、データ点数が十分であれば、処理をステップＳ１２４に進める。またジョブ分析部１６１は、データ点数が十分でなければ、処理をステップＳ１３０に進める。
【０１３２】
［ステップＳ１２４］ジョブ分析部１６１は、分析対象のジョブの消費電力データを時刻軸でＮ分割し、分割された期間ごとにコレログラムを生成する。
［ステップＳ１２５］ジョブ分析部１６１は、期間ごとに生成したコレログラムのピーク（局所的最大値）を算出し、ピーク位置の平均間隔により期間ごとの周期を算出する。ジョブ分析部１６１は、ピークか否かについては、例えば検討対象のラグ値の相関係数が、そのラグ値の両側のラグ値の相関係数よりも大きいかまたは等しい場合、検討対象のラグ値の相関係数をピークと判定し、ピークのラグ値をピークの位置と判定する。ジョブ分析部１６１は、ピークとして複数のラグ値が存在する場合（ピークが平坦な場合）、最小のラグ値をピークの位置とする。
【０１３３】
［ステップＳ１２６］周期比較部１６２は、分割した期間（周期確定期間を含む）の周期を比較し、周期が一致する期間があるか否かを判断する。なお周期比較部１６２は、周期の差が、許容誤差の範囲内の場合、一致すると判定してもよい。周期比較部１６２は、周期が一致するか否かを、隣接する期間においてのみ比較してもよい。周期比較部１６２は、周期が一致する期間がある場合、処理をステップＳ１２８に進める。また周期比較部１６２は、周期が一致する期間がない場合、処理をステップＳ１２７に進める。
【０１３４】
［ステップＳ１２７］ジョブ分析部１６１は、周期未確定期間の分割数Ｎの値を１だけ増加させ（Ｎ＝Ｎ＋１）、処理をステップＳ１２３に進める。
［ステップＳ１２８］ジョブ分析部１６１は、周期一致期間の周期を、算出された周期に確定する。周期が確定した期間は、以後、周期確定期間として扱われる。ジョブ分析部１６１は、周期が確定した期間の範囲と周期とを、分析結果情報１１４に登録する。
【０１３５】
［ステップＳ１２９］ジョブ分析部１６１は、ジョブ分析情報において周期が一致する隣接期間がある場合、それらの期間をマージする。期間をマージするとは、隣接期間の各レコードを、両方の期間を包含する１つの期間を設定した１つのレコードに置き換えることである。その後、ジョブ分析部１６１は、処理をステップＳ１２２に進める。
【０１３６】
［ステップＳ１３０］学習部１７０は、周期が確定した期間ごとに、実行中のジョブと同じグループの実行が終了したジョブの時系列電力データに基づいて、周期に応じた遅れ時間で予測モデルを学習する。
【０１３７】
このようにして適切な遅れ時間により予測モデルを学習することができ、その結果、予測モデルを用いた予測値の計算精度が向上する。
次に、ＨＰＣ運用管理サーバ２００によるジョブの強制停止処理の手順について説明する。
【０１３８】
図３２は、ジョブ強制停止処理の手順の一例を示すフローチャートである。以下、図３２に示す処理をステップ番号に沿って説明する。
［ステップＳ１４１］ジョブスケジューリング部２４０は、ジョブの専有ノード数と最大時間に基づいて、ジョブのスケジューリングを行う。スケジューリング結果は、制御指示部２５０に送信される。制御指示部２５０は、スケジュールに従ってＨＰＣシステム３０にジョブの実行を指示する。
【０１３９】
［ステップＳ１４２］ジョブスケジューリング部２４０は、実行中のジョブの消費電力の予測結果を受信すると、その予測結果に基づいて、今後のＨＰＣシステム３０の全電力の時系列変化を計算する。例えばジョブスケジューリング部２４０は、ジョブごとの電力波形を積算し、積算結果をＨＰＣシステム３０の電力とする。
【０１４０】
［ステップＳ１４３］ジョブスケジューリング部２４０は、ＨＰＣシステム３０の電力が最大供給電力を超過するか否かを判断する。ジョブスケジューリング部２４０は、消費電力が最大供給電力を超過する時間がある場合、処理をステップＳ１４４に進める。ジョブスケジューリング部２４０は、消費電力が最大供給電力を超過しなければ、処理を終了する。
【０１４１】
［ステップＳ１４４］ジョブスケジューリング部２４０は、実行中のジョブの１つを強制停止する。例えばジョブスケジューリング部２４０は、実行中のジョブのうち、最も消費電力が大きいジョブを強制停止する。その後、ジョブスケジューリング部２４０は、処理をステップＳ１４３に進める。
【０１４２】
このようにして、実行中のジョブの消費電力の予測結果に基づいて、ＨＰＣシステム３０の消費電力が最大供給電力を超えないように制御することが可能となる。実行中のジョブの消費電力の予測結果が正確であることにより、無駄にジョブを強制停止させることがなくなり、ジョブの実行効率が向上する。また、実行中のジョブの消費電力の予測結果が正確であることで、予測に反してＨＰＣシステム３０の消費電力が最大供給電力を超えてしまう事態の発生を抑止でき、ＨＰＣシステム３０の安定性が向上する。
【０１４３】
また、ジョブごとの消費電力を正確に予測できることで、オンデマンド料金制度に基づいて電力料金の契約をしていた場合に、ＨＰＣシステム３０の消費電力が契約電力を超えないように適切に制御することができる。
【０１４４】
図３３は、オンデマンド料金制度を説明する図である。図３３には、ＨＰＣシステム３０全体の消費電力を示す電力波形３４１のグラフを示している。グラフの横軸がＨＰＣシステムの稼働時間であり、縦軸が消費電力である。電力波形３４１で示される消費電力の時系列変化の所定期間（例えば３０分）の平均電力３４２が、該当期間の電力使用量となる。図３３の例では、瞬間最大消費電力は１５０ｋｗであるが、電力使用量は１００ｋｗと換算される。
【０１４５】
ここでオンデマンド料金制度では、「電気料金＝契約電力料金＋電力料金単価×１ヶ月の電力使用量」という計算式で、各月の電力料金が算出される。ＨＰＣシステム３０では膨大な電力を消費するため、契約電力料金が高額になる。契約電力料金は前年（過去１年間）で最も電力を使用した３０分間の電力使用量（最大需要電力）に応じて決定される。そのため３０分間単位の時間帯で一度でも契約電力を超過すれば、次年度の電力料金が増加する。
【０１４６】
新規投入ジョブの消費電力を正確に予測することができれば、ＨＰＣ運用管理サーバ２００は、以後の３０分の時間帯における電力使用量が、過去１年の最大需要電力を超えそうか否かを適切に判断できる。ＨＰＣ運用管理サーバ２００は、過去１年の最大需要電力を超えそうと判断した場合、新規投入ジョブの実行開始を遅らせたり、実行中のジョブを強制停止したりすることで、電力使用量が過去１年の最大需要電力を超えることを抑止できる。その結果、電力料金が抑えられる。
【０１４７】
〔その他の実施の形態〕
第２の実施の形態では、算出した周期の１周期分の時間を遅れ時間としているが、管理サーバ１００は、周期の整数倍の時間を遅れ時間としてもよい。例えば管理サーバ１００は、２周期分の時間を遅れ時間としてもよい。
【０１４８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１４９】
１  ＨＰＣシステム
２ａ  第１ジョブ
２ｂ  第２ジョブ
３  第１消費電力情報
１０  ジョブ電力予測装置
１１  記憶部
１２  処理部
【図１】
2020129314.tif 000004
【図２】
2020129314.tif 000005
【図３】
2020129314.tif 000006
【図４】
2020129314.tif 000007
【図５】
2020129314.tif 000008
【図６】
2020129314.tif 000009
【図７】
2020129314.tif 000010
【図８】
2020129314.tif 000011
【図９】
2020129314.tif 000012
【図１０】
2020129314.tif 000013
【図１１】
2020129314.tif 000014
【図１２】
2020129314.tif 000015
【図１３】
2020129314.tif 000016
【図１４】
2020129314.tif 000017
【図１５】
2020129314.tif 000018
【図１６】
2020129314.tif 000019
【図１７】
2020129314.tif 000020
【図１８】
2020129314.tif 000021
【図１９】
2020129314.tif 000022
【図２０】
2020129314.tif 000023
【図２１】
2020129314.tif 000024
【図２２】
2020129314.tif 000025
【図２３】
2020129314.tif 000026
【図２４】
2020129314.tif 000027
【図２５】
2020129314.tif 000028
【図２６】
2020129314.tif 000029
【図２７】
2020129314.tif 000030
【図２８】
2020129314.tif 000031
【図２９】
2020129314.tif 000032
【図３０】
2020129314.tif 000033
【図３１】
2020129314.tif 000034
【図３２】
2020129314.tif 000035
【図３３】
2020129314.tif 000036