(57)【要約】【課題】ジョブの消費電力の予測精度を向上させる。【解決手段】ジョブ電力予測装置１０は、実行が終了した複数の第１ジョブ２ａ，２ｂ，・・・の第１消費電力情報に基づいて、複数の予測対象期間それぞれに対応付けて、対応する予測対象期間以前の１以上の第１ジョブ２ａ，２ｂ，・・・の消費電力の時間変化を示すサンプルデータ５ａ，５ｂ，５ｃ，・・・を生成する。次にジョブ電力予測装置１０は、サンプルデータ５ａ，５ｂ，５ｃ，・・・に基づいて、予測対象期間におけるジョブの消費電力の予測モデル６ａ，６ｂ，６ｃ，・・・を生成する。そしてジョブ電力予測装置１０は、第２ジョブ３の現在までの消費電力の時間変化を示す第２消費電力情報に基づいて、一予測対象期間に対応する予測モデルを用いて、一予測対象期間における第２ジョブ３の消費電力の時間変化を予測する。【選択図】図１
2020194377.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）などがある。
【００３９】
機器接続インタフェース１０７は、管理サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４０】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４１】
管理サーバ１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、ＨＰＣ運用管理サーバ２００および計算ノード３１，３２，・・・も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。また第１の実施の形態に示したジョブ電力予測装置１０も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。
【００４２】
管理サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。管理サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また管理サーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することも可能である。
【００４３】
図３に示すシステムにおいて、ＨＰＣ運用管理サーバ２００と管理サーバ１００とが連係動作し、ジョブ単位での消費電力の予測結果に基づく適切な電力管理が行われる。例えば管理サーバ１００は、実行中のジョブのそれまでの消費電力の実測値に基づいて、そのジョブの以後の消費電力の時系列変化を予測する。消費電力の時系列変化は、例えば電力波形で表される。ＨＰＣ運用管理サーバ２００は、実行中のすべてのジョブの消費電力の時系列変化の予測値に基づいて、ＨＰＣシステム３０の最大消費電力が低く抑えられるように、ジョブの実行を制御する。例えばＨＰＣ運用管理サーバ２００は、ＨＰＣシステム３０の最大消費電力が閾値を超えると予測した場合、一部のジョブの実行を停止させる。
【００４４】
このような電力管理を適切に行うには、各ジョブの消費電力を高精度に予測することが重要となる。ジョブの消費電力の予測には、例えばＲＮＮによって学習した予測モデルを利用できる。
【００４５】
図５は、ＲＮＮについて説明する図である。ＲＮＮ３００は、ニューラルネットワークの一種であり、時系列データの学習に用いられる。ＲＮＮでは、時刻ｔの隠れ層の内容が、次の時刻ｔ＋１の入力として扱われる。ＲＮＮ３００には、ＬＳＴＭ（Long Short-Term Memory Networks）やＧＲＵ（Gated Recurrent Unit）がある。
【００４６】
ＬＳＴＭは、ゲートのメカニズムを導入することで、遠い過去のことまで覚えておくことができる。そのため、過去の情報まで参考にしないと予測できないような問題には、ＬＳＴＭが有用となる。ＧＲＵは、ＬＳＴＭを改良したものである。ＧＲＵは、ＬＳＴＭの構造をシンプルにしたもので、忘却ゲートと入力ゲートを単一の更新ゲート３０１として組み合わせている。
【００４７】
更新ゲート３０１には、どの程度の過去に遡って情報を利用するのかを設定することができる。ＲＮＮ３００において、どの程度の過去に遡って情報を利用するのかは、遅れ時間として設定される。遅れ時間は、予測対象の測定点に対してどこまで過去の情報を使用して学習／予測を行うかを決定するハイパパラメータである。
【００４８】
ＲＮＮ３００によりジョブの消費電力の時系列変化を予測する場合、既に実行が終了しているジョブの消費電力の測定結果を用いて予測モデルを作成することができる。
図６は、ジョブの時系列電力情報の一例を示す図である。ジョブの時系列電力情報３０２には、実行が完了したジョブごとに、そのジョブの実行開始からの経過時間ごとの消費電力（図中「ｘ」で示す）が設定されている。図６の例では、ジョブの消費電力は５分ごとに測定されており、５分を最小単位として経過時間が測定点の番号（０から昇順の番号）で示されている。
【００４９】
ジョブの実行時間の最大値はユーザ指定のパラメータで決まっている。図６の例では、ユーザが設定できる最大値は２４時間（１４４０分）になっている。時系列電力情報３０２に設定されているのは５分ごとの電力値なので、電力の測定点の番号は「２８７」が最大値となる。また図６の例では、時系列電力情報３０２に消費電力の時系列変化が設定されたジョブ数は「１０００」である。なお、ジョブの最大実行時間や時系列電力情報３０２の生成に用いるジョブ数は、図６に示した数に限定されるものではない。
【００５０】
図６に示したような時系列電力情報３０２に基づいて、ＲＮＮ３００によりジョブの消費電力を学習し、予測モデルを作成しておくことで、実行中のジョブについての以後の消費電力を予測できる。ただし、ＨＰＣなどの大規模なシステムでは、さまざまなジョブが実行され、ジョブの実行時間もまちまちである。すなわち図６の例では、２８８点目の測定点の消費電力を測定する前に終了するジョブがほとんどであり、２８８点の測定点すべてにおける電力が測定されているジョブは一部にすぎない。
【００５１】
ジョブの実行時間が大きく異なるジョブは、消費電力の時間変化のパターンも異なる。そのため、単純に過去に実行されたジョブの消費電力の時系列データを用いて消費電力の時間変化のパターンを学習しても、適切な予測モデルを作成できない。
【００５２】
図７は、各ジョブの消費電力の時系列変化を表す時系列データの特徴を示す図である。仮に全ジョブの時系列電力情報３０２が１つの長い時系列データで表された場合、消費電力の時間変化は１つの回帰式で表現可能である。回帰式は、偏回帰係数、説明変数、および誤差によって、目的変数を算出する式である。しかし、ＨＰＣなどで実行されるジョブは実行時間がまちまちであり、全ジョブの時系列電力情報３０２は、長さの異なる多量の時系列データである。ジョブごとの時系列データは、長さが異なるだけでなく、特徴も異なる。このような場合、ジョブの消費電力の時間変化を１つの回帰式で表すのは困難である。
【００５３】
図７では消費電力の時系列変化を回帰式で表せるか否かを示しているが、ＲＮＮの予測モデルについても同様に考えることができる。すなわち、全ジョブの時系列電力情報３０２を１つの予測モデルで表すのは困難である。そこで管理サーバ１００は、全ジョブの時系列電力情報３０２を、データの長さで分類し、同程度の長さの時系列データごとに予測モデルを作成する。これにより、同程度の長さの時系列データに共通の特徴を反映した予測モデルを作成することができる。
【００５４】
なお管理サーバ１００は、消費電力の予測精度を向上だけでなく、予測モデル生成のための処理負荷を低減させることもできる。以下、図８〜図１０を参照して、消費電力の予測精度向上と処理負荷の低減とを両立可能なデータセットの生成方法について説明する。
【００５５】
図８は、学習用のデータセットの比較例を示す図である。図８には、すべてのジョブの時系列電力データを含む時系列電力情報３０２から１つの予測モデル３１１を生成する場合の例が示されている。なお図８の例では、３０分の期間の時系列電力データである問題データと、その後の３０分の時系列電力データである答えデータとの組が、学習用のデータセットとなる。時系列電力情報３０２からは、問題データと答えデータとの抽出対象とする時間帯を５分ずつずらしながら、複数の学習用のデータセットが生成されている。
【００５６】
このようなデータセットを用いてＲＮＮによる予測モデル３１１を作成すると、データセットが大量に生成されるため学習に時間がかかる。例えば電力値を測定したジョブ数が「１０００」の場合、管理サーバ１００は、１０００個の時系列電力データを、問題データと答えデータとの範囲をずらしながら２７６回繰り返して予測モデル３１１に入力することで、予測モデル３１１を学習することとなる。しかも図８に示す比較例では、多様なデータセットで１つの予測モデル３１１を学習するため、適切なＲＮＮを学習できず、生成された予測モデル３１１による推定精度も低い。
【００５７】
この場合、学習時間の短縮には、学習用のデータセットの数を削減することが効果的である。
図９は、学習用のデータセットの第１の修正例を示す図である。図９の例では、すべてのジョブの時系列電力データを含む時系列電力情報３０２から、３０分ずつずらした学習用のデータセットが生成されている。これによりデータセットの数を削減することができる。例えば電力値を測定したジョブ数が「１０００」の場合、管理サーバ１００は、１０００個の時系列電力データを、問題データと答えデータとの範囲をずらしながら４７回繰り返して予測モデル３１２に入力することで、予測モデル３１２を学習することとなる。その結果、データセット数が削減された分、予測モデル３１２の生成に要する時間が短縮される。ただし、多様なデータセットで１つの予測モデル３１２を学習していることは図８に示した比較例と同じであり、比較例と同様に、生成された予測モデル３１２による推定精度も低い。
【００５８】
そこで管理サーバ１００は、ジョブ実行開始からの経過時間の区間（予測対象期間）ごとにモデルを作成することでデータセットの多様性を低減させる。
図１０は、学習用のデータセットの第２の修正例を示す図である。図１０の例では、ジョブの実行開始からの経過時間が複数の時間帯に分けられており、経過時間の時間帯ごとの予測モデル３１３〜３１５が生成されている。予測モデル３１３〜３１５それぞれを学習するためのデータセットは、対応する時間帯以前の期間の電力が問題データであり、対応する時間帯内の電力が答えデータである。
【００５９】
例えば管理サーバ１００は、ジョブの実行開始からの経過時間が、３０分間隔の時間帯に分割する。そして管理サーバ１００は、３０分間隔の時間帯ごとの、データセットを生成する。例えば電力値を測定したジョブ数が「１０００」の場合、管理サーバ１００は、予測モデル３１３，３１４，３１５，・・・それぞれに１０００個の時系列電力データを入力することで、予測モデル３１３，３１４，３１５，・・・それぞれを学習することとなる。
【００６０】
具体的には、管理サーバ１００は、時系列電力情報３０２から、経過時間が０分から３０分の間のジョブの消費電力（測定点の番号「０」〜「５」）を問題データとして抽出する。次に、管理サーバ１００は、時系列電力情報３０２から、経過時間が３０分から６０分の間のジョブの消費電力（測定点の番号「６」〜「１１」）を答えデータとして抽出する。そして管理サーバ１００は、抽出した問題データと答えデータとの組を、３０分〜６０分の時間帯の消費電力予測用の予測モデル３１３を生成するためのデータセットとする。
【００６１】
また管理サーバ１００は、時系列電力情報３０２から、経過時間が０分から６０分の間のジョブの消費電力（測定点の番号「０」〜「１１」）を問題データとして抽出する。次に、管理サーバ１００は、時系列電力情報３０２から、経過時間が６０分から９０分の間のジョブの消費電力（測定点の番号「１２」〜「１７」）を答えデータとして抽出する。そして管理サーバ１００は、抽出した問題データと答えデータとの組を、６０分〜９０分の時間帯の消費電力予測用の予測モデル３１４を生成するためのデータセットとする。
【００６２】
さらに管理サーバ１００は、時系列電力情報３０２から、経過時間が０分から９０分の間のジョブの消費電力（測定点の番号「０」〜「１７」）を問題データとして抽出する。次に、管理サーバ１００は、時系列電力情報３０２から、経過時間が９０分から１２０分の間のジョブの消費電力（測定点の番号「１８」〜「２３」）を答えデータとして抽出する。そして管理サーバ１００は、抽出した問題データと答えデータとの組を、９０分〜１２０分の時間帯の消費電力予測用の予測モデル３１５を生成するためのデータセットとする。
【００６３】
このように、管理サーバ１００は、ジョブ実行開始からの経過時間を分割して得られる時間帯ごとの予測モデル３１３，３１４，３１５，・・・を生成する。予測モデル３１３，３１４，４１５，・・・の生成には、それぞれ予測対象期間より前の全期間のジョブの消費電力の時系列変化が問題データとして使用される。すなわち、１つの予測モデルへの入力データとして１つのジョブの時系列電力データから抽出されるデータの範囲は１通りのみであり、データセットの多様性が低減している。このようにデータセットが、予測対象期間の電力の予測に適切なデータに限定されているため、予測対象期間における消費電力の傾向を正しく学習できる。その結果、推定精度が向上する。しかも、予測対象期間の幅を３０分程度にすることで、データセット数を削減することができ、学習時間も短くてすむ。
【００６４】
以下、比較例と第１・第２の修正例とにおける、計算量と推定精度の違いについて説明する。
図１１は、学習モデル生成例比較表を示す図である。学習モデル生成例比較表３２１は、図８〜図１０に示した比較例、第１の修正例、および第２の修正例における、学習モデル生成処理の比較結果を示している。比較対象の項目は、データセットの量、ＲＮＮの大きさ、学習時の計算量、および推定精度である。なお図１１の例では、時系列電力データを取得したジョブ数は「１０００」であり、各時系列電力データには、５分間隔で２８８点（１日分）での電力値の測定結果が含まれるものとする。
【００６５】
学習モデル生成例比較表３２１には、データセットの量として、データセット電力値総数、モデルの数、１予測モデルあたりのデータセット電力値数が示されている。
データセット電力値総数は、予測モデルの生成に使用するデータセットに含まれる電力値の総数である。比較例では、問題データとして入力される電力値の総数は「６×２７６×１０００」である。また比較例では、学習結果の出力に対する答えデータを示す電力値の総数は「６×２７６×１０００」である。第１の修正例では、問題データとして入力される電力値の総数は「６×４７×１０００」である。また第１の修正例では、学習結果の出力に対する答えデータを示す電力値の総数は「６×４７×１０００」である。第２の修正例では、問題データとして入力される電力値の総数は「Σ６Ｎ×１０００」（Ｎは１〜４７の整数）である（Σは総和を示す記号である）。また第２の修正例では、学習結果の出力に対する答えデータを示す電力値の総数は「６×４７×１０００」である。
【００６６】
モデルの数は、生成される予測モデルの数である。比較例では１つの予測モデルが生成される。第１の修正例でも１つのモデルが生成される。第２の修正例では４７個の予測モデルが生成される。
【００６７】
１予測モデルあたりのデータセット電力値数は、１つの予測モデルの生成のために使用されるデータセット内の電力値の数である。比較例と第１の修正例では、１予測モデルあたりのデータセット電力値数は、データセット電力値総数と同じである。第２の修正例では、予測モデルごとに使用されるデータセット内の電力値の数が異なる。ここで、第２の修正例で生成される予測モデルを、ジョブの実行開始から予測対象期間までの時間が短い順に並べ１〜Ｎの順番を付与した場合、Ｎ番目の予測モデルの問題データとして入力される電力値の数は「６Ｎ×１０００」である。また第２の修正例では、各予測モデルの学習結果の出力に対する答えデータを示す電力値の数は「６×１０００」である。
【００６８】
また学習モデル生成例比較表３２１には、ＲＮＮの大きさとして、入出力数と入力／出力とが示されている。
入出力数は、ＲＮＮの入力層へ入力する電力値の数と、ＲＮＮの出力層から出力される電力値の数である。比較例と第１の修正例とでは、入力する電力値の数「６」、出力される電力値の数「６」である。第２の修正例では、Ｎ番目の予測モデルに入力する電力値の数「６Ｎ」、出力される電力値の数「６」である。
【００６９】
入力／出力は、ＲＮＮの入力層へ入力する電力値の数と、ＲＮＮの出力層から出力される電力値の数との比の値である。比較例と第１の修正例とでは、入力／出力は「１」である。第２の修正例では、Ｎ番目の予測モデルの入力／出力は「Ｎ」である。
【００７０】
また学習モデル生成例比較表３２１には、１予測モデルあたりの学習時の計算量として、最小の計算量と最大の計算量とが、第１の修正例における１予測モデルの学習時の計算量（最小と最大とが共に「１」）を基準単位として示されている。比較例の計算量は、最小も最大も「６」（第１の修正例の６倍の計算量）である。第２の修正例の計算量が最小となるのは、入力される電力値の数が最小「６」となる１番目の予測モデルを生成する場合であり、その計算量は「１／４７」（第１の修正例の４７分の１の計算量）である。第２の修正例の計算量が最大となるのは、入力される電力値の数が最大「６Ｎ」となるＮ番目の予測モデルを生成する場合であり、その計算量は「４７」（第１の修正例の４７倍の計算量）である。
【００７１】
学習モデル生成例比較表３２１に示す推定精度は、生成された予測モデルに基づいて予測した電力値と実測して得られた電力値との相対誤差（％）の平均である。なお相対誤差は、絶対誤差（予測値と実測値との差）を実測値で除算したものである。なお推定精度については、比較例と第２の修正例とについての実験結果が示されている。比較例では相対誤差「６５」であるが、第２の修正例では相対誤差「８．８」である。
【００７２】
ここで、第２の修正例では、生成する予測モデルによって、計算量が少なくて済む場合と、計算量が多くなる場合とがある。計算量が多い場合とは、ジョブの実行開始から予測対象期間までの経過時間が長い場合である。実際には、多くのジョブは、実行時間の最大値（図１１の例では１日（２４時間））よりも短い時間で終了し、実行終了までに長時間を要するジョブは非常に少ない。
【００７３】
図１２は、ジョブの実行終了までの所要時間の分布の一例を示す図である。図１２には、ジョブの所要時間分布表３２２が示されている。ジョブの所要時間分布表３２２では、横軸にジョブの実行開始から終了までの時間（所要時間）を、５分を単位時間として示している（所要時間の数値の５倍が、所要時間の分表示となる）。縦軸には、所要時間を所定時間幅の複数の期間に分割したときの、各期間内で終了したジョブ数を示している。図１２に示すように、ほとんどのジョブは所要時間が短い。そのため、予測対象期間が時間的に後半の予測モデルになればなるほど、データセットに含まれる実際の計測結果の電力値の量が減り、計算時間も減ることとなる。
【００７４】
また、図１１に示した例では、第２の修正例の相対誤差は、比較例に比べて非常に少なくなっている。図１１に示した第２の修正例の相対誤差は、生成される複数の予測モデルの相対誤差の平均であるが、各予測モデルの相対誤差は、問題データの取得対象期間が長い（入力の電力値の数が多い）ほど少なくなる。
【００７５】
図１３は、問題データの取得対象期間の長さと相対誤差との関係を示す図である。図１３では、第１の比較例の相対誤差３３１と、第２の修正例の相対誤差３３２とをグラフで示している。第２の修正例の相対誤差３３２は、問題データの取得対象期間の長さに応じた折れ線グラフとなっている。
【００７６】
図１３に示すように、第２の修正例の相対誤差３３２は、問題データの取得対象期間が長いほど少なくなる。また問題データの取得対象期間が３０分（入力の電力値の数「６」）の場合であっても、第２の修正例の相対誤差３３２は、第１の比較例の相対誤差３３１よりも極めて少ない。すなわち、問題データの取得対象期間が同等であっても、第２の修正例は、比較例よりも高精度の予測が可能である。
【００７７】
これは、第２の修正例と比較例との２つの大きな相違点（ＲＮＮの大きさ（入力の電力値の数）の違いとデータセットの多様性の違い）のうち、データセットの多様性の違いが、予測精度に大きく寄与していることを示している。すなわち第２の修正例は、１つの予測モデルの生成に使用するデータセットの多様性が、比較例よりも低い。この多様性の低減が、予測精度の向上をもたらしている。
【００７８】
以下、管理サーバ１００によるジョブ電力予測を伴うＨＰＣシステム３０の消費電力の管理方法について詳細に説明する。なお、以下の例では、管理サーバ１００は、図１０に示した第２の修正例よりも、さらにデータセットの量を削減している（詳細は、図２０〜図２３参照）。
【００７９】
図１４は、電力管理のための各装置の機能を示すブロック図である。ＨＰＣ運用管理サーバ２００は、ＤＢ２１０、タイマ部２２０、情報取得部２３０、ジョブスケジューリング部２４０、および制御指示部２５０を有する。
【００８０】
ＤＢ２１０は、実行するジョブのステイタスを示すジョブステイタス情報や、実行したジョブの消費電力の時系列変化を示すジョブ消費電力情報を記憶する。
タイマ部２２０は、ＨＰＣシステム３０からジョブごとの消費電力情報を収集するタイミングを管理する。例えばタイマ部２２０は、一定の時間間隔で、ジョブ消費電力情報の収集を情報取得部２３０に指示する。
【００８１】
情報取得部２３０は、タイマ部２２０からの指示に応じて、ＨＰＣシステム３０から、ＨＰＣシステム３０での実行が終了したジョブの時系列電力データを取得する。情報取得部２３０は、取得した消費電力情報を、ＤＢ２１０に格納する。
【００８２】
なおＨＰＣシステム３０は、ジョブごとに電力を測定する機能を備えている。例えばＨＰＣシステム３０内の各計算ノード３１，３２，・・・は、消費電力を計測する機器を備えており、ジョブを実行していない状態での消費電力と、ジョブを実行中の消費電力との差を、そのジョブの消費電力とすることができる。また計算ノード３１，３２，・・・は、温度センサなどの情報を元にジョブの消費電力を予測してもよい。例えば計算ノード３１，３２，・・・は、ＣＰＵ温度とシステムボード（ＳＢ）排気温度とを、温度センサによって収集する。計算ノード３１，３２，・・・は、収集した温度データに基づいて、まずＣＰＵ温度変化（Ｔcpu）とＳＢ排気温度変化（Ｔair）とを計算する。
【００８３】
ＣＰＵ温度変化（Ｔcpu）は、以下の式で算出できる。
ＣＰＵ温度変化（Ｔcpu）＝ＣＰＵ温度−水冷入力温度    ・・・（１）
またＳＢの排気温度変化（Ｔair）は、以下の式で算出できる。
ＳＢ排気温度変化（Ｔair）＝ＳＢ排気温度−ラック吸気温度    ・・・（２）
計算ノード３１，３２，・・・は、ＣＰＵの消費電力をＣＰＵ温度変化から算出する（例えばＣＰＵの消費電力＝１．０２・Ｔcpu）。また計算ノード３１，３２，・・・は、メモリの消費電力をＳＢ排気温度から算出する（例えばメモリの消費電力＝０．２５４・Ｔair）。さらに計算ノード３１，３２，・・・は、インターコネクトコントローラ（ＩＣＣ）の消費電力は一定値であるものとする（例えばＩＣＣの消費電力＝８．３６）。そして計算ノード３１，３２，・・・は、以下の式によりジョブの電力Ｐを予測する。
Ｐ＝１．０２・Ｔcpu＋０．２５４・Ｔair＋８．３６    ・・・（３）
ジョブスケジューリング部２４０は、新規に投入されたジョブの実行スケジュールを作成する。またジョブスケジューリング部２４０は、管理サーバ１００から実行中のジョブの今後の消費電力の予測結果を受信すると、ＨＰＣシステム３０の消費電力が、所定の閾値を超えるか否かを判断する。例えばジョブスケジューリング部２４０は、実行中のジョブの消費電力の合計を、ＨＰＣシステム３０の消費電力とする。ジョブスケジューリング部２４０は、ＨＰＣシステム３０の消費電力が閾値を超えると予測した場合、一部のジョブを強制停止することを決定する。
【００８４】
制御指示部２５０は、ジョブスケジューリング部２４０によるジョブの実行スケジュールに従って、ＨＰＣシステム３０にジョブの実行を指示する。また制御指示部２５０は、ジョブスケジューリング部２４０によってジョブの強制停止が決定されると、該当ジョブの停止をＨＰＣシステム３０に指示する。
【００８５】
管理サーバ１００は、ＤＢ１１０、タイマ部１２０、メトリクス収集部１３０、サンプル作成部１４０、学習部１５０、予測値計算部１６０、および予測結果送信部１７０を有する。
【００８６】
ＤＢ１１０は、ジョブごとの電力消費パターンの予測に使用する情報を記憶する。タイマ部１２０は、実行済みのジョブの時系列電力データの取得タイミングを管理する。例えばタイマ部１２０は、一定の時間間隔で、ＨＰＣ運用管理サーバ２００からの情報収集を、メトリクス収集部１３０に指示する。またタイマ部１２０は、ジョブの実行が開始されると、一定間隔で該当ジョブの消費電力の予測を予測値計算部１６０に指示する。
【００８７】
メトリクス収集部１３０は、タイマ部１２０の指示に応じて、ＨＰＣ運用管理サーバ２００から情報を収集する。例えばメトリクス収集部１３０は、実行待ちのジョブおよび実行が終了したジョブのジョブステイタス情報と、実行が終了したジョブの電力消費パターンを示す時系列電力データとを、ＨＰＣ運用管理サーバ２００から取得する。メトリクス収集部１３０は、取得した情報をＤＢ１１０に格納する。
【００８８】
サンプル作成部１４０は、ＤＢ１１０に格納された時系列電力データに基づいて、消費電力を推定するための予測モデルの生成に使用するサンプルデータを作成する。例えばサンプル作成部１４０は、ジョブの実行開始からの経過時間を分割して得られる複数の時間帯それぞれを予測対象期間として、予測対象期間ごとの学習用のデータセットを作成する。そしてサンプル作成部１４０は、作成したデータセットの集合を、サンプルデータとしてＤＢ１１０に格納する。
【００８９】
学習部１５０は、ニューラルネットワークを用いて、ジョブの過去の消費電力情報から、以後の消費電力を予測する予測モデルを生成する。学習部１５０は、例えば予測対象期間ごとに、該当期間のデータセットを用いて、ＲＮＮにより予測モデルを生成する。
【００９０】
予測値計算部１６０は、タイマ部１２０により指示されたタイミングで、予測モデルを用いて、実行中のジョブの以後の消費電力の時系列変化を予測する。例えば予測値計算部１６０は、消費電力予測対象のジョブが属するグループの、現在のジョブの実行時間に応じた期間の予測モデルを用いて、消費電力を予測する。
【００９１】
予測結果送信部１７０は、未実行のジョブの消費電力の予測結果、および実行中のジョブの消費電力の予測結果を、ＨＰＣ運用管理サーバ２００に送信する。
なお、図１４に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図１４に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００９２】
図１５は、管理サーバのＤＢに格納される情報の一例を示す図である。図１５の例では、ＤＢ１１０には、ジョブ消費電力情報１１１、サンプルデータ１１２、学習結果情報１１３、および予測結果情報１１４が格納されている。
【００９３】
ジョブ消費電力情報１１１は、実行が終了したジョブの時系列の消費電力に関する情報である。サンプルデータ１１２は、ジョブ消費電力情報１１１から抽出された、予測対象期間ごとの予測モデルの生成に用いる時系列電力データである。学習結果情報１１３は、予測モデルの学習結果を示す情報である。予測結果情報１１４は、実行中のジョブの以後の所定期間における消費電力の予測結果を示す情報である。
【００９４】
図１６は、ジョブ消費電力情報の一例を示す図である。ジョブ消費電力情報１１１は、例えばジョブの実行開始からの経過時間を行のラベルに設定し、ジョブ名を列のラベルに設定したデータテーブルである。行と列の交わる位置に、列に示されるジョブを実行したときの、実行開始から行に示される時間だけ経過した時点での、該当ジョブの消費電力が設定されている。なお、図１６の例では、経過時間に、その経過時間に対応する測定点の番号が示されている。
【００９５】
図１７は、サンプルデータの一例を示す図である。サンプルデータ１１２には、複数のデータセット１１２ａ，１１２ｂ，・・・が含まれる。例えばサンプル作成部１４０は、ジョブの実行開始からの経過時間を分割して得られる期間について、時間が早い順に「Ｉｎｔｅｒｖａｌ  ０」、「Ｉｎｔｅｒｖａｌ  １」、「Ｉｎｔｅｒｖａｌ  ２」、・・・との識別子を付与するものとする。このとき「Ｉｎｔｅｒｖａｌ  ０」の期間は、その期間以前の時系列電力データが存在しないため予測対象期間からは除外される。そのためサンプル作成部１４０は、「Ｉｎｔｅｒｖａｌ  １」以降の期間を、予測対象期間とする。そしてサンプル作成部１４０は、予測対象期間ごとのデータセット１１２ａ，１１２ｂ，・・・を作成する。
【００９６】
例えばデータセット１１２ａには、「Ｉｎｔｅｒｖａｌ  １」の予測対象期間の予測モデルの生成に利用する時系列電力データが含まれる。データセット１１２ａには、実行済みのジョブのジョブ名とそのジョブのジョブ番号との組に対応付けて、該当ジョブの時系列電力データが設定されている。時系列電力データの欄には、電力の測定点の番号に対応づけて、その測定点で測定した電力値が設定されている。
【００９７】
データセット１１２ａに含まれる時系列電力データは、問題データと答えデータとに分かれる。問題データには、データセット１１２ａの予測対象期間より前に測定された電力値が含まれる。答えデータには、データセット１１２ａの予測対象期間内に測定された電力値が含まれる。
【００９８】
データセット１１２ａと同様に、他のデータセット１１２ｂ，・・・にも、それぞれの予測対象期間の予測モデルの生成に利用する時系列電力データが含まれる。
図１８は、学習結果情報の一例を示す図である。学習結果情報１１３には、例えばグループごとの予測モデル１１３ａ，１１３ｂ，・・・が含まれている。例えば予測モデル１１３ａは、単位時間（５分）間隔に設定された予測点における１点先（５分先）〜６点先それぞれの消費電力を予測するニューラルネットワーク（例えばＲＮＮ）の予測モデルである。ニューラルネットワークにおける学習とは、ニューロンに相当するユニットに入力するデータに対する重みの適切な値を求めることである。学習結果には、例えばＲＮＮの構造と学習された重み値とが設定される。
【００９９】
図１９は、予測結果情報の一例を示す図である。予測結果情報１１４には、実行中のジョブごとの予測電力データ１１４ａ，１１４ｂ，・・・が含まれている。予測電力データ１１４ａ，１１４ｂ，・・・それぞれには、例えばジョブ名、予測時刻、および予測対象の時点ごとの消費電力が設定されている。
【０１００】
次に、サンプルデータ１１２に含まれる予測対象期間ごとのデータセットの生成方法について詳細に説明する。
図１０に示した例では、予測モデル３１３〜３１５それぞれの作成に使用するデータセットは、すべてのジョブの時系列電力情報３０２から抽出されている。しかし、予測対象期間以前に実行が終了してしまうジョブの時系列電力データは、その予測対象期間の予測モデルの生成に役立たない可能性がある。例えばジョブの実行開始からの経過時間が１２０分〜１５０分の期間の電力を推定するための予測モデルの生成に、実行開始から３０分未満で実行が終了するジョブの時系列電力データは有効ではない。そこで例えば、サンプル作成部１４０は、予測モデルの生成に利用する時系列電力データを、予測対象期間まで実行が継続していたジョブの時系列電力データに限定することができる。
【０１０１】
図２０は、データセットの生成例（参考例）を示す図である。図２０の例では、ジョブ消費電力情報１１１に基づいて、「Ｉｎｔｅｒｖａｌ  ２」の予測対象期間に対応するデータセット３３３が生成されている。
【０１０２】
図２０のジョブ消費電力情報１１１では、各ジョブの実行時に測定された電力値が「０」以外の値の場合、該当する測定点の欄に「ｘ」が示されている。またジョブ消費電力情報１１１では、各ジョブの実行終了後の各測定点の欄に「０」が示されている。
【０１０３】
図２０からも分かるように、実行時間の長さはジョブごとに異なる。そのため予測モデルの生成に利用する時系列電力データを、予測対象期間まで実行が継続していたジョブの時系列電力データに限定すると、データセットに含まれる電力値の数は、ジョブの実行開始からの予測対象期間までの時間が長くなるほど少なくなる。
【０１０４】
例えば「Ｉｎｔｅｒｖａｌ  ２」の予測対象期間のデータセット３３３は、例えば以下の手順で作成することができる。
図２０の例では「ＪＯＢ  Ａ／Ｂ／Ｃ／Ｄ／Ｅ」は「Ｉｎｔｅｒｖａｌ  ２」の前にジョブが終了している。これらのジョブは「Ｉｎｔｅｒｖａｌ  ２」の期間は実行されておらず、これらのジョブの時系列電力データは、「Ｉｎｔｅｒｖａｌ  ２」の期間中に継続して実行されているジョブの消費電力の予測には、あまり有用ではないと考えることもできる。そのためサンプル作成部１４０は、これらのジョブの電力の測定値は、「Ｉｎｔｅｒｖａｌ  ２」の予測モデル生成用のデータセット３３３から除外することも可能である。
【０１０５】
ただし、実行されるジョブには、「ＪＯＢ  Ｆ」のように「Ｉｎｔｅｒｖａｌ  ２」の期間の開始直後（測定点「１１」経過後、測定点「１２」到達前）に完了しているジョブもある。この「ＪＯＢ  Ｆ」と同種のジョブの消費電力を正しく予測するには、データセット３３３内に、「ＪＯＢ  Ｆ」と同程度の実行時間で終了するジョブの時系列電力データが多く含まれていることが望ましい。ところが、図２０の例では「Ｉｎｔｅｒｖａｌ  ２」の期間内に終了しているジョブの時系列電力データが少ない。そのため、データセット３３３を用いて生成した予測モデルでは、「Ｉｎｔｅｒｖａｌ  ２」の期間内にジョブが終了し、消費電力が「０」となるようなジョブの消費電力の時系列変化を正しく予測することが難しい。
【０１０６】
そこでサンプル作成部１４０は、予測対象期間までの所定期間内に終了しているジョブの時系列電力データをデータセットに追加する。例えばサンプル作成部１４０は、「Ｉｎｔｅｒｖａｌ  ｘ」（ｘは１以上の整数）の消費電力の予測に使用するデータセットに、ジョブの終了が測定点「６ｘ−５」以降であるジョブの時系列電力データを含める。以下、図２１〜図２３を参照して、予測対象期間までの所定期間内に終了しているジョブの時系列電力データをデータセットに含まれる場合の、データセットの生成例について説明する。
【０１０７】
図２１は、データセットの第１の生成例を示す図である。図２１の例では、ジョブ消費電力情報１１１に基づいて、「Ｉｎｔｅｒｖａｌ  １」（ｘ＝１）の予測対象期間に対応するデータセット１１２ａが生成されている。この場合、サンプル作成部１４０は、測定点「１」（６×１−５）以降に終了するジョブの時系列電力データを、データセット１１２ｂに含める。このうち、測定点「０〜５」の電力値が問題データであり、測定点「６〜１１」の電力値が答えデータである。
【０１０８】
図２２は、データセットの第２の生成例を示す図である。図２２の例では、ジョブ消費電力情報１１１に基づいて、「Ｉｎｔｅｒｖａｌ  ２」（ｘ＝２）の予測対象期間に対応するデータセット１１２ｂが生成されている。この場合、サンプル作成部１４０は、測定点「７」（６×２−５）以降に終了するジョブの時系列電力データを、データセット１１２ｂに含める。このうち、測定点「０〜１１」の電力値が問題データであり、測定点「１２〜１７」の電力値が答えデータである。
【０１０９】
図２３は、データセットの第３の生成例を示す図である。図２３の例では、ジョブ消費電力情報１１１に基づいて、「Ｉｎｔｅｒｖａｌ  ３」（ｘ＝３）の予測対象期間に対応するデータセット１１２ｃが生成されている。この場合、サンプル作成部１４０は、測定点「１３」（６×３−５）以降に終了するジョブの時系列電力データを、データセット１１２ｃに含める。このうち、測定点「０〜１７」の電力値が問題データであり、測定点「１８〜２３」の電力値が答えデータである。
【０１１０】
サンプル作成部１４０は、図２１〜図２２に示したデータセット１１２ａ，１１２ｂ，１１２ｃと同様に、以降の予測対象期間についてのデータセットを生成する。そしてサンプル作成部１４０は、生成したすべてのデータセットの集合を、サンプルデータ１１２としてＤＢ１１０に格納する。その後、所定のタイミングで、学習部１５０が、サンプルデータ１１２に基づいて、予測対象期間ごとの予測モデルを生成する。
【０１１１】
図２４は、予測モデル生成処理の概要を示す図である。例えば学習部１５０は、データセット１１２ａに含まれるジョブごとの時系列電力データ５１，５２，・・・に基づいてＲＮＮによる学習を行い、「Ｉｎｔｅｒｖａｌ  １」の予測対象期間の予測用の予測モデル１１３ａを生成する。また学習部１５０は、データセット１１２ｂに含まれるジョブごとの時系列電力データ６１，６２，・・・に基づいてＲＮＮによる学習を行い、「Ｉｎｔｅｒｖａｌ  ２」の予測対象期間の予測用の予測モデル１１３ｂを生成する。以後同様に、学習部１５０は、他の予測対象期間についても、その予測対象期間のデータセットに基づいてＲＮＮによる学習を行い、その予測対象期間の予測モデルを生成する。
【０１１２】
図２５は、予測モデルの一例を示す図である。図２５の例では、１点先から６点先の測定点それぞれの電力を予測する予測モデル１１３ａが示されている。学習部１５０は、実行済みのジョブの時系列電力データを含むデータセット１１２ａを読み込みながら、問題データに基づいて予測対象期間内の消費電力をＲＮＮにより予測する。そして学習部１５０は、予測値と答えデータとの誤差を求め、誤差を減らすような重み値のパラメータを学習する。例えば学習部１５０は、ＢＰＴＴ（Back-Propagation Through Time）アルゴリズムで実測値と予測値との誤差を学習する。ＢＰＴＴは、ニューラルネットワークの重みの時間方向の誤差逆伝播を行うものである。
【０１１３】
予測値計算部１６０は、実行中のジョブの消費電力の実測値を取得したとき、図２５に示す様な予測モデル１１３ａにより、以後の複数の測定点における該当ジョブの消費電力を予測できる。
【０１１４】
次に予測モデルの生成処理の手順について具体的に説明する。
図２６は、予測モデル生成処理の手順の一例を示すフローチャートである。以下、図２６に示す処理をステップ番号に沿って説明する。なお予測モデル生成処理は、例えばタイマ部１２０から所定時間間隔で出力される指示に応じて実行される。なお、以下の説明では、ジョブの実行時間の最大値は２４時間であり、予測対象期間の時間幅は３０分であるものとする。この場合、「Ｉｎｔｅｒｖａｌ  ｘ」のｘの上限は「４７」となる。
【０１１５】
［ステップＳ１０１］メトリクス収集部１３０は、ＨＰＣ運用管理サーバ２００から、ジョブごとの時系列電力データを取得する。メトリクス収集部１３０は、取得した時系列電力データを、ジョブ消費電力情報１１１としてＤＢ１１０に格納する。この際、メトリクス収集部１３０は、ジョブ実行期間の最大値までの測定点のうち、計測されていない測定点の電力値はすべて「０」とする。
【０１１６】
［ステップＳ１０２］サンプル作成部１４０は、変数ｘに初期値「１」を設定する。
［ステップＳ１０３］サンプル作成部１４０は、ＤＢ１１０内のジョブ消費電力情報１１１から、実行終了までの測定点「６ｘ−５」以上のジョブの時系列電力データを抽出する。
【０１１７】
［ステップＳ１０４］サンプル作成部１４０は、ステップＳ１０３で抽出した時系列電力データに基づいて、「Ｉｎｔｅｒｖａｌ  ｘ」の予測対象期間（測定点「６ｘ〜６ｘ＋５」）を予測するモデルを作るための、学習用のデータセットを作成する。例えばサンプル作成部１４０は、測定点「０〜６ｘ−１」の電力値を問題データとし、測定点「６ｘ〜６ｘ＋５」の電力値を答えデータとするデータセットを生成する。サンプル作成部１４０は、生成したデータセットをＤＢ１１０に格納する。
【０１１８】
［ステップＳ１０５］学習部１５０は、ステップＳ１０４で作成したデータセットを用いて、ＲＮＮにより「Ｉｎｔｅｒｖａｌ  ｘ」の予測対象期間の予測モデルを学習する。学習部１５０は、学習した予測モデルをＤＢ１１０に格納する。
【０１１９】
［ステップＳ１０６］サンプル作成部１４０は、変数ｘに１を加算する（ｘ＝ｘ＋１）。
［ステップＳ１０７］サンプル作成部１４０は、ｘの値が上限（例えば「４７」）を超えたか否かを判断する。サンプル作成部１４０は、ｘの値が上限を超えた場合、処理を終了する。またサンプル作成部１４０は、ｘの値が上限を超えていなければ、処理をステップＳ１０３に進める。
【０１２０】
このようにして、予測対象期間ごとの予測モデルが生成される。そして予測値計算部１６０により、予測モデルを用いて、実行中のジョブの以後の所定期間（例えば３０分）の消費電力の時系列変化の予測値が計算される。
【０１２１】
図２７は、消費電力予測処理の概要を示す図である。例えば新たにジョブの実行が開始されると、予測値計算部１６０は、メトリクス収集部１３０により該当ジョブの一定期間分の時系列電力データ７０が取得されるのを待つ。時系列電力データ７０が取得されると、予測値計算部１６０は、複数の予測モデル１１３ａ，１１３ｂ，・・・のなかから、次の予測対象期間に対応する予測モデルを選択する。そして予測値計算部１６０は、時系列電力データ７０を選択した予測モデルへの入力とすることで、次の予測対象期間の該当ジョブの消費電力を予測する。予測値計算部１６０は、予測結果を示す予測電力データ７１をＤＢ１１０に格納する。
【０１２２】
次に、電力推定処理の手順について詳細に説明する。
図２８は、電力推定処理の手順の一例を示すフローチャートである。以下、図２８に示す処理をステップ番号に沿って説明する。なお電力推定処理は、新たにジョブの実行が開始されるごとに実施される。
【０１２３】
［ステップＳ１１１］予測値計算部１６０は、新たに実行が開始されたジョブを推定対象ジョブとする。そして予測値計算部１６０は、推定対象ジョブの実行開始から３０分待機する。待機時間の３０分は、例えばタイマ部１２０で測定される。この場合、予測値計算部１６０は、タイマ部１２０からの３０分経過の通知を受けて、次のステップＳ１１２に処理を進める。
【０１２４】
［ステップＳ１１２］予測値計算部１６０は、変数ｘに初期値「１」を設定する。
［ステップＳ１１３］メトリクス収集部１３０は、ＨＰＣ運用管理サーバ２００から、推定対象ジョブの時系列電力データを取得する。そしてメトリクス収集部１３０は、取得した時系列電力データをＤＢ１１０に格納する。この際、メトリクス収集部１３０は、電力情報がない期間（現在からジョブ実行最大長まで）の測定点には、すべて電力値「０」を設定する。またメトリクス収集部１３０は、ジョブがすでに完了した場合も、ジョブ終了後のジョブ実行最大長までの測定点には、すべて電力値「０」を設定する。
【０１２５】
［ステップＳ１１４］予測値計算部１６０は、「Ｉｎｔｅｒｖａｌ  ｘ」を予測対象期間とし、該当期間用の予測モデルにより、以後の３０分の推定対象ジョブの一定時間間隔の測定点（例えば５分間隔の６点）の消費電力を予測する。例えば予測値計算部１６０は、推定対象ジョブの時系列電力データに示される測定点「０〜６ｘ−１」の電力値に基づいて、測定点「６ｘ〜６ｘ＋５」の６点の消費電力を予測する。
【０１２６】
［ステップＳ１１５］予測値計算部１６０は、予測した消費電力に推定対象ジョブのジョブ名と現在時刻とを付与し、予測結果データとしてＤＢ１１０に格納する。
［ステップＳ１１６］予測値計算部１６０は、３０分だけ待機する。待機時間の３０分は、例えばタイマ部１２０で測定される。この場合、予測値計算部１６０は、タイマ部１２０からの３０分経過の通知を受けて、次のステップＳ１１７に処理を進める。
【０１２７】
［ステップＳ１１７］予測値計算部１６０は、推定対象ジョブが終了したか否かを判断する。例えば予測値計算部１６０は、推定対象ジョブの消費電力が「０」になった場合、そのジョブが終了したと判断することができる。予測値計算部１６０は、推定対象ジョブが終了した場合、電力推定処理を終了する。また予測値計算部１６０は、推定対象ジョブが終了していなければ、処理をステップＳ１１８に進める。
【０１２８】
［ステップＳ１１８］予測値計算部１６０は、変数ｘに１を加算する（ｘ＝ｘ＋１）。
［ステップＳ１１９］予測値計算部１６０は、ｘの値が上限（例えば「４７」）を超えたか否かを判断する。予測値計算部１６０は、ｘの値が上限を超えた場合、処理を終了する。また予測値計算部１６０は、ｘの値が上限を超えていなければ、処理をステップＳ１１３に進める。
【０１２９】
このようにして、適切な予測モデルを用いて消費電力を予測することができ、予測値の計算精度が向上する。
次に、ＨＰＣ運用管理サーバ２００によるジョブの強制停止処理の手順について説明する。
【０１３０】
図２９は、ジョブ強制停止処理の手順の一例を示すフローチャートである。以下、図２９に示す処理をステップ番号に沿って説明する。
［ステップＳ１３１］ジョブスケジューリング部２４０は、ジョブの専有ノード数と最大時間に基づいて、ジョブのスケジューリングを行う。スケジューリング結果は、制御指示部２５０に送信される。制御指示部２５０は、スケジュールに従ってＨＰＣシステム３０にジョブの実行を指示する。
【０１３１】
［ステップＳ１３２］ジョブスケジューリング部２４０は、実行中のジョブの消費電力の予測結果を受信すると、その予測結果に基づいて、今後のＨＰＣシステム３０の全電力の時系列変化を計算する。例えばジョブスケジューリング部２４０は、ジョブごとの電力波形を積算し、積算結果をＨＰＣシステム３０の電力とする。
【０１３２】
［ステップＳ１３３］ジョブスケジューリング部２４０は、ＨＰＣシステム３０の電力が最大供給電力を超過するか否かを判断する。ジョブスケジューリング部２４０は、消費電力が最大供給電力を超過する時間がある場合、処理をステップＳ１３４に進める。ジョブスケジューリング部２４０は、消費電力が最大供給電力を超過しなければ、処理を終了する。
【０１３３】
［ステップＳ１３４］ジョブスケジューリング部２４０は、実行中のジョブの１つを強制停止する。例えばジョブスケジューリング部２４０は、実行中のジョブのうち、最も消費電力が大きいジョブを強制停止する。その後、ジョブスケジューリング部２４０は、処理をステップＳ１３３に進める。
【０１３４】
このようにして、実行中のジョブの消費電力の予測結果に基づいて、ＨＰＣシステム３０の消費電力が最大供給電力を超えないように制御することが可能となる。実行中のジョブの消費電力の予測結果が正確であることにより、無駄にジョブを強制停止させることがなくなり、ジョブの実行効率が向上する。また、実行中のジョブの消費電力の予測結果が正確であることで、予測に反してＨＰＣシステム３０の消費電力が最大供給電力を超えてしまう事態の発生を抑止でき、ＨＰＣシステム３０の安定性が向上する。
【０１３５】
次に、第２の実施の形態で適用した技術により予測した消費電力と実際の消費電力との誤差について説明する。
図３０は、適用技術と比較例との平均誤差を比較した図である。図３０では、第２の実施の形態の技術により予測した３０分間の消費電力の平均誤差を、図８に示した比較例に示した予測モデルを用いて予測した３０分間の消費電力の平均誤差と比較している。
【０１３６】
なお適用技術については、消費電力が２ＭＷ未満の通常ジョブの消費電力を予測した場合の平均誤差と、消費電力が２ＭＷ以上の大規模ジョブの消費電力を予測した場合の平均誤差とが示されている。比較例については、消費電力が２ＭＷ以上の大規模ジョブの消費電力を予測した場合の平均誤差が示されている。
【０１３７】
通常ジョブの消費電力を、第２の実施の形態に示した適用技術で予測した場合、５．５％の誤差で予測できている。また大規模ジョブの消費電力を、第２の実施の形態に示した適用技術で予測した場合、８．８％の誤差で予測できている。それに対して、大規模ジョブの消費電力を比較例に示した予測モデルで予測した場合、誤差が６５．０％である。このように、第２の実施の形態に示した適用技術によれば、高精度にジョブの消費電力を予測することができる。
【０１３８】
図３１は、通常ジョブの消費電力の予測結果の相対誤差の分布を示す図である。図３１では、横軸に相対誤差の区間を示し、縦軸に予測結果が対応する区間内の誤差を有するジョブの全体に対する割合を示している。図３１の例では、相対誤差が０％以上５％未満のジョブが全体の６９％である。また相対誤差が５％以上１０％未満のジョブが全体の２５％である。さらに相対誤差が１０％以上２０％未満のジョブが全体の５％である。このように、ほとんどの通常ジョブは、相対誤差２０％未満に収まっている。
【０１３９】
図３２は、大規模ジョブの消費電力の予測結果の相対誤差の分布を示す図である。図３２では、横軸に相対誤差の区間を示し、縦軸に予測結果が対応する区間内の誤差を有するジョブの全体に対する割合を示している。図３２の例では、相対誤差が０％以上５％未満のジョブが全体の６０％である。相対誤差が５％以上１０％未満のジョブが全体の１８％である。相対誤差が１０％以上２０％未満のジョブが全体の１０％である。相対誤差が２０％以上３０％未満のジョブが全体の４％である。相対誤差が３０％以上４０％未満のジョブが全体の４％である。相対誤差が４０％以上５０％未満のジョブが全体の３％である。相対誤差が７０％以上８０％未満のジョブが全体の１％である。このように、大規模ジョブは、通常ジョブに比べると誤差が増えるものの、６０％のジョブは相対誤差５％未満であり、高い予測精度が達成されている。
【０１４０】
また、ジョブごとの消費電力を正確に予測できることで、オンデマンド料金制度に基づいて電力料金の契約をしていた場合に、ＨＰＣシステム３０の消費電力が契約電力を超えないように適切に制御することができる。
【０１４１】
図３３は、オンデマンド料金制度を説明する図である。図３３には、ＨＰＣシステム３０全体の消費電力を示す電力波形３４１のグラフを示している。グラフの横軸がＨＰＣシステムの稼働時間であり、縦軸が消費電力である。電力波形３４１で示される消費電力の時系列変化の所定期間（例えば３０分）の平均電力３４２が、該当期間の電力使用量となる。図３３の例では、瞬間最大消費電力は１５０ｋｗであるが、電力使用量は１００ｋｗと換算される。
【０１４２】
ここでオンデマンド料金制度では、「電気料金＝契約電力料金＋電力料金単価×１ヶ月の電力使用量」という計算式で、各月の電力料金が算出される。ＨＰＣシステム３０では膨大な電力を消費するため、契約電力料金が高額になる。契約電力料金は前年（過去１年間）で最も電力を使用した３０分間の電力使用量（最大需要電力）に応じて決定される。そのため３０分間単位の時間帯で一度でも契約電力を超過すれば、次年度の電力料金が増加する。
【０１４３】
新規投入ジョブの消費電力を正確に予測することができれば、ＨＰＣ運用管理サーバ２００は、以後の３０分の時間帯における電力使用量が、過去１年の最大需要電力を超えそうか否かを適切に判断できる。ＨＰＣ運用管理サーバ２００は、過去１年の最大需要電力を超えそうと判断した場合、新規投入ジョブの実行開始を遅らせたり、実行中のジョブを強制停止したりすることで、電力使用量が過去１年の最大需要電力を超えることを抑止できる。その結果、電力料金が抑えられる。
【０１４４】
〔その他の実施の形態〕
第２の実施の形態では、図１０に示した第２の修正例よりも、さらにデータセットの量を削減することで処理の効率化を図っているが、管理サーバ１００は、第２の修正例に示したようなデータセットを用いて予測モデルを生成してもよい。
【０１４５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１４６】
１  ＨＰＣシステム
２ａ，２ｂ，・・・  第１ジョブ
３  第２ジョブ
４  第１消費電力情報
５ａ，５ｂ，５ｃ，・・・  サンプルデータ
６ａ，６ｂ，６ｃ，・・・  予測モデル
１０  ジョブ電力予測装置
１１  記憶部
１２  処理部
【図１】
2020194377.tif 000003
【図２】
2020194377.tif 000004
【図３】
2020194377.tif 000005
【図４】
2020194377.tif 000006
【図５】
2020194377.tif 000007
【図６】
2020194377.tif 000008
【図７】
2020194377.tif 000009
【図８】
2020194377.tif 000010
【図９】
2020194377.tif 000011
【図１０】
2020194377.tif 000012
【図１１】
2020194377.tif 000013
【図１２】
2020194377.tif 000014
【図１３】
2020194377.tif 000015
【図１４】
2020194377.tif 000016
【図１５】
2020194377.tif 000017
【図１６】
2020194377.tif 000018
【図１７】
2020194377.tif 000019
【図１８】
2020194377.tif 000020
【図１９】
2020194377.tif 000021
【図２０】
2020194377.tif 000022
【図２１】
2020194377.tif 000023
【図２２】
2020194377.tif 000024
【図２３】
2020194377.tif 000025
【図２４】
2020194377.tif 000026
【図２５】
2020194377.tif 000027
【図２６】
2020194377.tif 000028
【図２７】
2020194377.tif 000029
【図２８】
2020194377.tif 000030
【図２９】
2020194377.tif 000031
【図３０】
2020194377.tif 000032
【図３１】
2020194377.tif 000033
【図３２】
2020194377.tif 000034
【図３３】
2020194377.tif 000035