(57)【要約】【課題】ジョブの消費電力の予測精度を向上させる。【解決手段】ジョブ電力予測装置１０は、第１ジョブと複数の第２ジョブそれぞれとの第１類似度を、所定の計算式を用いて計算し、ジョブ情報類似の第２ジョブを特定する。次にジョブ電力予測装置１０は、特定した第２ジョブの消費電力情報に示される消費電力を、第１ジョブを実行することによる消費電力と予測する。次にジョブ電力予測装置１０は、第１ジョブ消費電力情報と複数の第２ジョブの少なくとも一部との第２類似度を計算し、消費電力類似の第２ジョブを特定する。そしてジョブ電力予測装置１０は、第１ジョブと消費電力類似の第２ジョブとのジョブ情報の類似度が補正前よりも高くなるように、計算式を補正する。【選択図】図１
2020129180.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
新規に投入する第１ジョブおよび実行が終了した複数の第２ジョブそれぞれに関連する事項が示された、前記第１ジョブおよび前記複数の第２ジョブそれぞれのジョブ情報に基づいて、前記第１ジョブと前記複数の第２ジョブそれぞれとの第１類似度を、所定の計算式を用いて計算し、
前記複数の第２ジョブそれぞれについて計算した前記第１類似度に基づいて、ジョブ情報類似の第２ジョブを特定し、
前記複数の第２ジョブを実行したことで消費した電力が示された、前記複数の第２ジョブそれぞれの消費電力情報に基づいて、前記ジョブ情報類似の第２ジョブの前記消費電力情報に示されている消費電力を、前記第１ジョブを実行することによる消費電力と予測し、
前記第１ジョブの実行終了後に、前記第１ジョブを実行したことで消費した電力が示された第１ジョブ消費電力情報を取得し、
前記第１ジョブ消費電力情報と前記複数の第２ジョブの前記消費電力情報とに基づいて、前記第１ジョブと前記複数の第２ジョブの少なくとも一部との第２類似度を計算し、
前記複数の第２ジョブの少なくとも一部について計算した前記第２類似度に基づいて、消費電力類似の第２ジョブを特定し、
前記第１ジョブと前記消費電力類似の第２ジョブとの前記第１類似度が補正前よりも高くなるように、前記計算式を補正する、
処理を実行させるジョブ電力予測プログラム。
【請求項２】
前記第１類似度の計算では、前記第１ジョブおよび前記複数の第２ジョブそれぞれの前記ジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算し、前記第１ジョブと前記複数の第２ジョブそれぞれとのトピック分布の類似度を、前記第１ジョブと前記複数の第２ジョブそれぞれとの前記第１類似度とする、
請求項１記載のジョブ電力予測プログラム。
【請求項３】
前記第１類似度の計算では、トピックごとの重みを用い、重みの値が大きいトピックを含む前記ジョブ情報ほど類似度が高くなる前記計算式によって、前記第１類似度を計算し、
前記計算式の補正では、前記ジョブ情報類似の第２ジョブの前記ジョブ情報に含まれるトピックの重みの値を増加させる、
請求項２記載のジョブ電力予測プログラム。
【請求項４】
前記第１類似度の計算では、前記第１ジョブの前記ジョブ情報に含まれるトピックの重みに応じて、トピックごとの重みを用いた前記計算式によって前記第１類似度を計算するのか、トピックごとの重みを用いない補正無し計算式によって前記第１類似度を計算するのかを判定し、判定結果に応じて、前記計算式または前記補正無し計算式を用いて前記第１類似度を計算する、
請求項３記載のジョブ電力予測プログラム。
【請求項５】
前記第２類似度の計算では、前記第１ジョブとの前記第１類似度が高い方から所定数の第２ジョブについて、前記第２類似度を計算する、
請求項１ないし４のいずれかに記載のジョブ電力予測プログラム。
【請求項６】
前記第２類似度の計算では、前記第１ジョブとの前記第１類似度が閾値以上の第２ジョブについて、前記第２類似度を計算する、
請求項１ないし４のいずれかに記載のジョブ電力予測プログラム。
【請求項７】
コンピュータが、
新規に投入する第１ジョブおよび実行が終了した複数の第２ジョブそれぞれに関連する事項が示された、前記第１ジョブおよび前記複数の第２ジョブそれぞれのジョブ情報に基づいて、前記第１ジョブと前記複数の第２ジョブそれぞれとの第１類似度を、所定の計算式を用いて計算し、
前記複数の第２ジョブそれぞれについて計算した前記第１類似度に基づいて、ジョブ情報類似の第２ジョブを特定し、
前記複数の第２ジョブを実行したことで消費した電力が示された、前記複数の第２ジョブそれぞれの消費電力情報に基づいて、前記ジョブ情報類似の第２ジョブの前記消費電力情報に示されている消費電力を、前記第１ジョブを実行することによる消費電力と予測し、
前記第１ジョブの実行終了後に、前記第１ジョブを実行したことで消費した電力が示された第１ジョブ消費電力情報を取得し、
前記第１ジョブ消費電力情報と前記複数の第２ジョブの前記消費電力情報とに基づいて、前記第１ジョブと前記複数の第２ジョブの少なくとも一部との第２類似度を計算し、
前記複数の第２ジョブの少なくとも一部について計算した前記第２類似度に基づいて、消費電力類似の第２ジョブを特定し、
前記第１ジョブと前記消費電力類似の第２ジョブとの前記第１類似度が補正前よりも高くなるように、前記計算式を補正する、
ジョブ電力予測方法。
【請求項８】
新規に投入する第１ジョブおよび実行が終了した複数の第２ジョブそれぞれに関連する事項が示された、前記第１ジョブおよび前記複数の第２ジョブそれぞれのジョブ情報と、前記複数の第２ジョブを実行したことで消費した電力が示された、前記複数の第２ジョブそれぞれの消費電力情報とを記憶する記憶部と、
前記第１ジョブおよび前記複数の第２ジョブそれぞれの前記ジョブ情報に基づいて、前記第１ジョブと前記複数の第２ジョブそれぞれとの第１類似度を、所定の計算式を用いて計算し、前記複数の第２ジョブそれぞれについて計算した前記第１類似度に基づいて、ジョブ情報類似の第２ジョブを特定し、前記複数の第２ジョブそれぞれの前記消費電力情報に基づいて、前記ジョブ情報類似の第２ジョブの前記消費電力情報に示されている消費電力を、前記第１ジョブを実行することによる消費電力と予測し、前記第１ジョブの実行終了後に、前記第１ジョブを実行したことで消費した電力が示された第１ジョブ消費電力情報を取得し、前記第１ジョブ消費電力情報と前記複数の第２ジョブの前記消費電力情報とに基づいて、前記第１ジョブと前記複数の第２ジョブの少なくとも一部との第２類似度を計算し、前記複数の第２ジョブの少なくとも一部について計算した前記第２類似度に基づいて、消費電力類似の第２ジョブを特定し、前記第１ジョブと前記消費電力類似の第２ジョブとの前記第１類似度が補正前よりも高くなるように、前記計算式を補正する処理部と、
を有するジョブ電力予測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置に関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing）システムなどの大規模なコンピュータシステム（以下、単にシステムと呼ぶこともある）では大量の電力を消費する。そのためシステムを安定して稼働させるには、システムの適切な消費電力管理が重要となる。例えばシステムの消費電力を一定に保つことができれば、給電設備への負荷が少なくなる。
【０００３】
システムの消費電力を管理するためには、システムによる電力需要を事前に予測できることが望ましい。システム全体の電力を予測する方法として、ジョブ名などを含む過去のジョブ投入情報から類似するジョブを特定し、特定したジョブの消費電力を予測値として、投入されたジョブの消費電力を予測する方法が考えられる。
【０００４】
ジョブの消費電力の予測に利用可能な技術として、例えば同一の事象が記述された２種類のテキストを用いて、特定のトピックに対する単語の出現度合いを推定するための統計的モデルを生成する、情報分析装置が提案されている。
【０００５】
またユーザの好みを反映させることで、快適性を損なわずに機器を自動制御する情報処理装置が提案されている。この情報処理装置は、第１の期間の機器毎の消費電力の実績値に基づいて、次の第２の期間の機器毎の消費電力を予測する。そして情報処理装置は、次期間消費電力予測部と、第２の期間の機器毎の消費電力の統計値と、予め設定されている目標値とを比較して、目標値に近づける方向に機器の状態を変更する。
【０００６】
さらにジョブスケジューリングによってＨＰＣシステムの消費電力の上限の制約を満たす技術も提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１０／１５０４６４号
【特許文献２】国際公開第２０１４／１７５０４１号
【非特許文献】
【０００８】
【非特許文献１】Andrea Borghesi, et al., "Scheduling-based power capping in high performance computing systems", Sustainable Computing: Informatics and Systems, Volume 19, September 2018, Pages 1-13
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、ジョブ投入情報が類似していても、電力消費パターンも類似するとは限らない。そのため、新たに投入するジョブの電力消費パターンが、そのジョブとジョブ投入情報が類似する過去に実行したジョブの電力消費パターンと同じになると予測すると、実測値と予測値とに大きな誤差が生じる可能性がある。ジョブの予測値に大きな誤差があると、システムの総電力の予測ではさらに大きな誤差が生じ、予測結果が不正確となる。
【００１０】
１つの側面では、本件は、ジョブの消費電力の予測精度を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、コンピュータに以下の処理を実行させるジョブ電力予測プログラムが提供される。
コンピュータは、新規に投入する第１ジョブおよび実行が終了した複数の第２ジョブそれぞれに関連する事項が示された、第１ジョブおよび複数の第２ジョブそれぞれのジョブ情報に基づいて、第１ジョブと複数の第２ジョブそれぞれとの第１類似度を、所定の計算式を用いて計算する。次にコンピュータは、複数の第２ジョブそれぞれについて計算した第１類似度に基づいて、ジョブ情報類似の第２ジョブを特定する。次にコンピュータは、複数の第２ジョブを実行したことで消費した電力が示された、複数の第２ジョブそれぞれの消費電力情報に基づいて、ジョブ情報類似の第２ジョブの消費電力情報に示されている消費電力を、第１ジョブを実行することによる消費電力と予測する。次にコンピュータは、第１ジョブの実行終了後に、第１ジョブを実行したことで消費した電力が示された第１ジョブ消費電力情報を取得する。次にコンピュータは、第１ジョブ消費電力情報と複数の第２ジョブの消費電力情報とに基づいて、第１ジョブと複数の第２ジョブの少なくとも一部との第２類似度を計算する。次にコンピュータは、複数の第２ジョブの少なくとも一部について計算した第２類似度に基づいて、消費電力類似の第２ジョブを特定する。そしてコンピュータは、第１ジョブと消費電力類似の第２ジョブとの第１類似度が補正前よりも高くなるように、計算式を補正する。
【発明の効果】
【００１２】
１態様によれば、ジョブの消費電力の予測精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るジョブ電力予測方法の一例を示す図である。
【図２】トピックごとに重み付けを行う計算式の補正例を示す図である。
【図３】第２の実施の形態のシステム構成例を示す図である。
【図４】管理サーバのハードウェアの一構成例を示す図である。
【図５】類似度の算出例を示す図である。
【図６】ジョブステイタス情報が類似するジョブそれぞれの電力波形の一例を示す図である。
【図７】電力管理のための各装置の機能を示すブロック図である。
【図８】管理サーバのＤＢに格納される情報の一例を示す図である。
【図９】ジョブ情報の一例を示す図である。
【図１０】ジョブ消費電力情報の一例を示す図である。
【図１１】学習結果情報の一例を示す図である。
【図１２】トピック重み情報の一例を示す図である。
【図１３】類似ジョブ情報の一例を示す図である。
【図１４】ＬＤＡ推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法の一例を示す図である。
【図１５】消費電力予測処理の手順の一例を示すフローチャートである。
【図１６】類似ジョブ抽出処理の手順の一例を示すフローチャートである。
【図１７】重み更新処理の手順の一例を示すフローチャートである。
【図１８】オンデマンド料金制度を説明する図である。
【図１９】第３の実施の形態における類似ジョブ抽出処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１５】
図１は、第１の実施の形態に係るジョブ電力予測方法の一例を示す図である。図１には、ジョブ電力予測方法を、ジョブ電力予測装置１０を用いて実施した場合の例を示している。ジョブ電力予測装置１０は、例えばジョブ電力予測方法の処理手順が記述されたジョブ電力予測プログラムを実行することにより、ジョブ電力予測方法を実施することができる。
【００１６】
ジョブ電力予測装置１０は、ジョブ電力予測方法を実現するために、記憶部１１と処理部１２とを有する。記憶部１１は、例えばジョブ電力予測装置１０が有するメモリ、またはストレージ装置である。処理部１２は、例えばジョブ電力予測装置１０が有するプロセッサ、または演算回路である。
【００１７】
ジョブ電力予測装置１０は、例えばＨＰＣシステム１に接続されている。ジョブ電力予測装置１０は、ＨＰＣシステム１において新規に投入された未実行のジョブの消費電力を予測し、予測結果をＨＰＣシステム１に通知する。ＨＰＣシステム１は、例えばジョブの消費電力の予測値を用いて、システム全体の消費電力の最大値を低減するように、ジョブスケジューリングを行う。
【００１８】
ジョブ電力予測装置１０の記憶部１１は、例えば新規に投入する第１ジョブおよび実行が終了した複数の第２ジョブそれぞれに関連する事項が示された、第１ジョブおよび複数の第２ジョブそれぞれのジョブ情報２，３ａ，３ｂ，・・・を記憶する。ジョブ情報２，３ａ，３ｂ，・・・には、例えばジョブの投入を指示したユーザに関する情報（ユーザＩＤ、グループＩＤなど）、ジョブの実行条件（並列実行するノード数、実行時間など）が含まれる。また記憶部１１は、複数の第２ジョブを実行したことで消費した電力が示された、複数の第２ジョブそれぞれの消費電力情報４ａ，４ｂ，・・・を記憶する。消費電力情報４ａ，４ｂ，・・・には、例えばジョブを実行することでＨＰＣシステム１が消費した電力の時系列変化が電力波形で示される。
【００１９】
処理部１２は、例えば新規に投入する第１ジョブがあることを検知すると、その第１ジョブの消費電力を、以下の手順で予測する。
まず処理部１２は、第１ジョブおよび複数の第２ジョブそれぞれのジョブ情報２，３ａ，３ｂ，・・・に基づいて、第１ジョブと複数の第２ジョブそれぞれとのジョブ情報の類似度（第１類似度）を、所定の計算式を用いて計算する（ステップＳ１）。次に処理部１２は、複数の第２ジョブそれぞれについて計算したジョブ情報の類似度に基づいて、ジョブ情報類似の第２ジョブを特定する（ステップＳ２）。次に処理部１２は、複数の第２ジョブそれぞれの消費電力情報に基づいて、ジョブ情報類似の第２ジョブの消費電力情報に示される消費電力を、第１ジョブを実行することによる消費電力と予測する（ステップＳ３）。そして処理部１２は、予測結果をＨＰＣシステム１に送信する（ステップＳ４）。
【００２０】
その後、処理部１２は、ＨＰＣシステム１による第１ジョブの実行終了後に、第１ジョブを実行したことで消費した電力が示された消費電力情報（第１ジョブ消費電力情報）を、ＨＰＣシステム１から取得する（ステップＳ５）。次に処理部１２は、第１ジョブの消費電力情報と複数の第２ジョブのそれぞれの消費電力情報に基づいて、第１ジョブと複数の第２ジョブの少なくとも一部との消費電力の類似度（第２類似度）を計算する（ステップＳ６）。次に処理部１２は、複数の第２ジョブの少なくとも一部についての消費電力の類似度に基づいて、消費電力類似の第２ジョブを特定する（ステップＳ７）。そして処理部１２は、第１ジョブと消費電力類似の第２ジョブとのジョブ情報の類似度が補正前よりも高くなるように、計算式を補正する（ステップＳ８）。
【００２１】
このように、ジョブ情報の類似度を計算するための計算式を、実行したジョブの消費電力情報に基づいて補正することで、消費電力が類似するジョブ間のジョブ情報の類似度を高めることができる。このような補正を繰り返せば、新規に投入するジョブのジョブ情報に基づいて、そのジョブと消費電力が類似するジョブを正確に特定できるようになる。その結果、ジョブの消費電力の予測精度が向上する。
【００２２】
なお、ジョブ情報２，３ａ，３ｂ，・・・は、例えばテキストデータである。この場合、処理部１２におけるジョブ情報の類似度の計算では、トピックモデルを用いることができる。トピックモデルとは、テキストデータ中で扱われている話題を推定する統計的手法である。トピックモデルを用いる場合、処理部１２は、第１ジョブおよび複数の第２ジョブそれぞれのジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算する。そして処理部１２は、第１ジョブと複数の第２ジョブそれぞれとのトピック分布の類似度を、第１ジョブと複数の第２ジョブそれぞれとのジョブ情報の類似度とする。
【００２３】
また処理部１２は、トピックモデルを用いた場合、トピックごとに重み付けを行うことで、計算式を補正することができる。例えば処理部１２は、ジョブ情報の類似度の計算において、トピックごとの重みを用い、重みの値が大きいトピックを含むジョブ情報ほど類似度が高くなる計算式によって、ジョブ情報の類似度を計算する。さらに処理部１２は、計算式の補正において、ジョブ情報類似の第２ジョブのジョブ情報に含まれるトピックの重みの値を増加させる。
【００２４】
図２は、トピックごとに重み付けを行う計算式の補正例を示す図である。例えばジョブＸが新たに投入される場合を想定する。ジョブＸが、図１の説明における第１ジョブである。既に実行が終了しているジョブとして、ジョブＡとジョブＢがある。ジョブＡとジョブＢが、図１の説明における第２ジョブである。
【００２５】
処理部１２は、各ジョブのジョブ情報に基づいて、トピック分布を計算する。トピック分布には、ジョブ情報におけるトピックの出現確率が数値で示される。ジョブＸのトピック分布には、出現確率が高い順に、トピックａ、トピックｂ、トピックｃであることが示されている。ジョブＡのトピック分布には、出現確率が高い順に、トピックａ、トピックｂ、トピックｄであることが示されている。ジョブＢのトピック分布には、出現確率が高い順に、トピックａ、トピックｅ、トピックｃであることが示されている。
【００２６】
この時点では、各トピックの重みが同じであるものとする。ジョブＸとジョブＡとのトピック分布は、トピックａとトピックｂが共通である。ジョブＸとジョブＢとのトピック分布は、トピックａとトピックｃが共通である。ジョブＸとジョブＡとにおけるトピックｂの出現確率を示す値は、ジョブＸとジョブＢとにおけるトピックｃの出現確率を示す値よりも大きい。そのため、ジョブＸとジョブＡとの類似度の方が、ジョブＸとジョブＢとの類似度よりも大きくなる。
【００２７】
この場合、処理部１２は、ジョブＢの消費電力をジョブＸの消費電力として予測する。その後、ジョブＸが実行されると、ジョブＸの消費電力の実測値（電力波形）が得られる。処理部１２は、ジョブＸの電力波形を、ジョブＡとジョブＢそれぞれの電力波形と比較する。図２の例では、ジョブＢの電力波形の方が、ジョブＸの電力波形に類似している。そこで処理部１２は、ジョブＢのトピック分布に含まれるトピックａ，ｅ，ｃについて、重みを増加させる。重みが増加したトピックは、トピック分布の計算において、該当トピックの出現確率を示す数値が、重みの補正前よりも大きくなる。
【００２８】
その後、例えばジョブＸとほぼ同じトピック分布のジョブ情報を有するジョブＹが新規に投入されたものとする。例えばジョブＸの実行を指示したユーザが、ジョブを実行するプログラムの微細な修正を行い、修正後のプログラムを実行するジョブＹの実行を指示した場合、ジョブＹのジョブ情報は、ジョブＸのジョブ情報とほぼ同じとなる。
【００２９】
処理部１２は、各ジョブのジョブ情報に基づいて、補正後の重みを用いてトピック分布を計算する。すると各ジョブのトピック分布のうち、重みの大きなトピックの値は、重みの補正前よりも高い値となる。図２では、重みによる増加分を網掛けで示している。重みの違いが作用し、ジョブＹとジョブＢとにおけるトピックｃの出現確率を示す値は、ジョブＹとジョブＡとにおけるトピックｂの出現確率を示す値よりも大きくなっている。そのため、ジョブＹとジョブＢとの類似度の方が、ジョブＹとジョブＡとの類似度よりも大きくなる。
【００３０】
この場合、処理部１２は、ジョブＢの消費電力をジョブＹの消費電力として予測する。ジョブＹは、ジョブＸとほぼ同じ条件で実行され、ジョブＹの電力波形はジョブＸと同様であると考えられる。ジョブＢの電力波形はジョブＸの電力波形に類似しており、処理部１２がジョブＢの消費電力をジョブＹの消費電力として予測したことで、正しい予測が行われたこととなる。このように、トピックの重みを補正することで、ジョブの消費電力の予測精度が向上する。
【００３１】
なお、消費電力が類似するジョブのトピック分布に含まれるトピックの重みを増加させていくと、出現頻度の低いトピックについては重みが低いままとなる。すると新たに実行する第１ジョブのトピック分布に出現頻度の低いトピックが含まれる場合、そのトピックの存在が考慮されなくなり、電力予測の精度が低下するおそれがある。そこで処理部１２は、トピックごとの重みを用いた計算式と、トピックごとの重みを用いない補正無し計算式との一方を選択して、ジョブ情報の類似度を計算してもよい。例えば処理部１２は、第１ジョブのジョブ情報に含まれるトピックの重みに応じて、トピックごとの重みを用いた計算式を用いるのか、トピックごとの重みを用いない補正無し計算式を用いるのかを判定する。そして処理部１２は、判定結果に応じて、重みを用いた計算式または重みを用いない補正無し計算式を用いてジョブ情報の類似度を計算する。これにより、第１ジョブのトピック分布が出現頻度の低いトピックを含む場合における電力予測の精度劣化を抑止できる。
【００３２】
また処理部１２は、消費電力情報の類似度を計算する際、例えば第１ジョブとのジョブ情報の類似度が高い方から所定数の第２ジョブについて、消費電力情報の類似度を計算してもよい。元々ジョブ情報の類似度が類似していない第２ジョブについては、ジョブ情報の類似度の計算式の補正の根拠として利用するには不適切である。例えばジョブ情報の類似度が類似していない第２ジョブの電力波形が第１ジョブの電力波形と類似していたとしても、電力波形が類似している要因はジョブ情報の類似性に表れていない。そのため、ジョブ情報の類似度が高い方から所定数の第２ジョブについて、消費電力情報の類似度を計算することで、計算量を減らすことができるとともに、ジョブ情報の類似度の計算式が不適切に補正されることを抑止できる。
【００３３】
なお、処理部１２は、第１ジョブとのジョブ情報の類似度が閾値以上の第２ジョブについて、消費電力情報の類似度を計算するようにしてもよい。類似度が閾値以上の第２ジョブについて、消費電力情報の類似度を計算することで、類似度が高い第２ジョブが多数になったときに、消費電力が最も類似の第２ジョブが、消費電力情報の類似度の計算対象から漏れてしまうことを抑止できる。
【００３４】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、ＨＰＣシステムに投入するジョブの消費電力を予測し、システム全体の消費電力を適切に管理するものである。
【００３５】
図３は、第２の実施の形態のシステム構成例を示す図である。ＨＰＣシステム３０は、複数の計算ノード３１，３２，・・・を有している。計算ノード３１，３２，・・・は、投入されたジョブを実行するコンピュータである。
【００３６】
ＨＰＣシステム３０内の計算ノード３１，３２，・・・は、ＨＰＣ運用管理サーバ２００に接続されている。ＨＰＣ運用管理サーバ２００は、ＨＰＣシステム３０の運用管理を行うコンピュータである。例えばＨＰＣ運用管理サーバ２００は、ジョブ実行時の計算ノード３１，３２，・・・の消費電力の時系列変化を監視する。またＨＰＣ運用管理サーバ２００は、実行待ちのジョブについて、管理サーバ１００からのジョブの電力消費パターンの予測結果を受信し、例えばシステムの消費電力が均一化されるように、ジョブスケジューリングを行う。そしてＨＰＣ運用管理サーバ２００は、作成したジョブの実行スケジュールに従って、計算ノード３１，３２，・・・にジョブの実行を指示する。
【００３７】
ＨＰＣ運用管理サーバ２００は、ネットワーク２０を介して端末装置４１，４２，・・・および管理サーバ１００に接続されている。端末装置４１，４２，・・・は、ＨＰＣシステム３０によるジョブの実行を希望するユーザが使用するコンピュータである。端末装置４１，４２，・・・は、ユーザの入力に基づいてＨＰＣシステム３０に実行させるジョブの内容を示すジョブ情報を生成し、生成したジョブ情報を含むジョブ投入要求を、ＨＰＣ運用管理サーバ２００に送信する。
【００３８】
管理サーバ１００は、ＨＰＣ運用管理サーバ２００によるＨＰＣシステム３０の消費電力の管理を支援するコンピュータである。管理サーバ１００は、ＨＰＣ運用管理サーバ２００から、実行するジョブのジョブ情報および実行が終了したジョブの電力消費パターンを示す電力情報を取得する。管理サーバ１００は、ＨＰＣ運用管理サーバ２００から取得した情報に基づいて、実行待ちのジョブの電力消費パターンを予測する。そして管理サーバ１００は、ＨＰＣ運用管理サーバ２００に、ジョブの電力消費パターンの予測結果を送信する。
【００３９】
図４は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（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）などがある。
【００４６】
機器接続インタフェース１０７は、管理サーバ１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００４７】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４８】
管理サーバ１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。計算ノード３１，３２，・・・、ＨＰＣ運用管理サーバ２００、および端末装置４１，４２，・・・も、管理サーバ１００と同様のハードウェアで実現できる。なお計算ノード３１，３２，・・・は、計算ノード３１，３２，・・・同士で高速通信を行うためのインターコネクト用インタフェースをさらに有している。図１に示した第１の実施の形態のジョブ電力予測装置１０も、図４に示した管理サーバ１００と同様のハードウェアにより実現することができる。
【００４９】
管理サーバ１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。管理サーバ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また管理サーバ１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５０】
図３に示すシステムにおいて、ＨＰＣ運用管理サーバ２００と管理サーバ１００とが連係動作し、ジョブ単位での電力消費パターンの予測結果に基づく適切な電力管理が行われる。例えば管理サーバ１００が、新たに実行する新規投入ジョブを実行した場合の消費電力の時系列変化を予測する。消費電力の時系列変化は、例えば電力波形で表される。ＨＰＣ運用管理サーバ２００は、新規投入ジョブの電力波形に基づいて、例えばＨＰＣシステム３０の最大消費電力が低く抑えられるように、ジョブスケジューリングを行う。
【００５１】
管理サーバ１００は、実行済みのジョブのうちの新規投入ジョブに類似するジョブの電力波形を、新規投入ジョブの電力波形と予測することができる。そのために、管理サーバ１００は、まず例えば新規投入ジョブに類似するジョブを特定する。ジョブ間の類似度は、ジョブの実行要求を入力したユーザのユーザＩＤ、ジョブの種別、ジョブ実行時の並列度（何台の計算ノードで並列実行させるか）などの、ジョブのステイタスを示す情報（以下、ジョブステイタス情報と呼ぶ）の類似度で表すことができる。ジョブステイタス情報は、第１の実施の形態で説明したジョブ情報の一例である。
【００５２】
各ジョブのジョブステイタス情報は、ジョブのステイタスに関する項目の項目名とその項目の値との組を複数含む文書である。文書間の類似度の算出に利用可能な技術として、潜在的ディリクレ配分法（ＬＤＡ：Latent Dirichlet Allocation）推定モデルがある。例えば管理サーバ１００は、ＬＤＡ推定モデルを用いて、各ジョブのジョブステイタス情報に表されるトピック分布を算出し、ジョブ間のトピック分布の類似度をジョブの類似度とする。
【００５３】
ＬＤＡ推定モデルは、トピックモデルの一種である。トピックモデルは、文書が複数の潜在的なトピックから確率的に生成される（文書内の各単語はあるトピックが持つ確率分布に従って出現する）と仮定したモデルである。ＬＤＡ推定モデルを用いると、分析対象となる文書データの集合から、各文書に表されているトピックの混合比率を推定することができる。
【００５４】
各文書のトピック分布の生成には、多項分布の共役事前分布であるディリクレ分布（dirichlet distribution）が利用される。なお、ディリクレ分布は、以下の式で表される。
【００５５】
【数１】
2020129180.tif 000003
【００５６】
式（１）は、パラメータであるベクトルαの元で、ベクトルｘが生じる確率を示している。Γはガンマ関数である。ベクトルｘは、確率変数を示す実数ベクトルである。Ｋはトピック数である。ｋはトピックのインデックスである。
【００５７】
管理サーバ１００は、トレーニングデータセットであるジョブステイタス情報群から、各文章（ジョブステイタス情報）にどんな単語が出現するかをそれぞれ調べる。そして管理サーバ１００は、同じ文章内にどの単語が多く出現するかカウントすることで、同じ文章内に出現する確立が高い単語をグルーピングし、これをトピックとする。
【００５８】
具体的には、管理サーバ１００は、各文書および各単語について以下の式（２）により、確率を計算する。
【００５９】
【数２】
2020129180.tif 000004
【００６０】
Ｎは文書集合の全単語数である。Ｖは全語彙数（全文書集合に含まれる単語の種類数）である。ｄは文書のインデックスである。ｎは単語のインデックスである。ｖは語彙のインデックスである。ｗはある１つの単語である。ｚはある１つのトピックである。バックスラッシュは、集合からの差を示す。βは、単語分布のパラメータである。式（２）は、文書ｄにおける単語ｗd,nについてのトピックｚd,nのサンプリング式である。
【００６１】
管理サーバ１００は、式（２）で得られる確率が高い（例えば所定値以上の）単語の組み合わせをトピックとする。すなわち管理サーバ１００は、ＬＤＡ推定モデルを用いた学習の結果、トピックに属する単語の集合を得る。
【００６２】
管理サーバ１００は、各ジョブのジョブステイタス情報に含まれる単語が属するトピックに基づいて、ジョブステイタス情報のトピック分布を計算する。管理サーバ１００は、各ジョブのジョブステイタス情報に基づいて生成されたトピック分布をジョブ間で比較して、ジョブ間の類似度を算出することができる。
【００６３】
例えば管理サーバ１００は、新規投入ジョブに類似するジョブを、トピック分布の類似度によって推定する。例えば管理サーバ１００は、トピック分布間のコサイン類似度を計算することで、ジョブの類似度を算出する。
【００６４】
図５は、類似度の算出例を示す図である。管理サーバ１００は、ジョブごとにトピック分布を算出する。トピック分布は、トピックのインデックスを要素番号とし、文書（ジョブステイタス情報）内での該当トピックの出現頻度の値を要素とするベクトルで表すことができる。管理サーバ１００は、新規投入ジョブのトピック分布を示すベクトルと、実行が終了しているジョブのトピック分布を示すベクトルとのコサイン類似度を算出し、ジョブ間の類似度とする。これにより、比較対象のジョブそれぞれのトピック分布に共通のトピックが多く含まれるほど、類似度が高くなる。
【００６５】
なお管理サーバ１００は、新規投入ジョブのトピック分布に含まれる各トピックと、実行が終了しているジョブのトピック分布に含まれる各トピックとの類似度を算出し、トピック間の類似度に基づいて、ジョブ分布間の類似度を算出してもよい。例えば管理サーバ１００は、比較対象のトピック分布それぞれに含まれるトピック間の類似度の合計を、トピック分布の類似度とする。
【００６６】
管理サーバ１００は、トピック間の類似度Ｓkk'を、例えばベクトル空間法で計測することができる。ベクトル空間法は，語彙空間Ｖにおけるトピックごとの語彙の出現頻度ベクトルの余弦で定義される。ｋ番目のトピックとｋ’番目のトピック間の類似度を式で表すと、以下の式で表される。
【００６７】
【数３】
2020129180.tif 000005
【００６８】
ｎkは、ｋ番目のトピックの出現頻度ベクトルである。ｎk'は、ｋ’番目のトピックの出現頻度ベクトルｎkである。
このように、ＬＤＡ推定モデルを用いて各ジョブのトピック分布を計算し、トピック分布間の類似度によって、ジョブの類似度を算出することができる。そして、管理サーバ１００は、すでに実行が終了しているジョブのうち、新規投入ジョブに最も類似するジョブの電力波形を、新規投入ジョブの電力波形として予測することができる。
【００６９】
ただし、新規投入ジョブの実際の電力波形が、トピック分布が最も類似するジョブの電力波形と異なる場合がある。
図６は、ジョブステイタス情報が類似するジョブそれぞれの電力波形の一例を示す図である。図６の例には、ジョブＩＤ「６９６０９９８」のジョブと、ジョブＩＤ「６９５８２６８」のジョブとの比較結果が示されている。
【００７０】
ジョブＩＤ「６９６０９９８」のジョブのジョブステイタス情報９１と、ジョブＩＤ「６９５８２６８」のジョブのジョブステイタス情報９２とは、多くの単語が共通しており、互いに類似する。すなわちＬＤＡ推定モデルを用いてトピック分布を生成すると、類似度の高いトピック分布が生成される。
【００７１】
各ジョブを実行した場合の消費電力の電力波形９３，９４を比較すると、大きく異なる。すなわちジョブＩＤ「６９５８２６８」のジョブは、実行終了に３０秒を要し、最大で５０ｋｗ程度の電力を消費している。それに対して、ジョブＩＤ「６９６０９９８」のジョブは、５秒以内に実行が終了しており、その間の消費電力も２ｋｗ程度と少ない。
【００７２】
このように、単純にＬＤＡ推定モデルだけを用いると、ジョブステイタス情報は類似するものの、電力波形は異なるジョブがある場合に、誤った電力波形の予測を行う可能性がある。そこで管理サーバ１００は、新規投入ジョブとトピック分布が類似する上位所定数のジョブの電力波形と、新規投入ジョブの実行後に採取した電力波形とを比較する。そして管理サーバ１００は、新規投入ジョブと類似する電力波形を有するジョブのトピック分布を用いて、電力波形が類似するジョブの類似度を上げるように修正した補正用ＬＤＡ推定モデルを生成する。例えば管理サーバ１００は、式（２）を用いた計算において、電力波形が類似するジョブのトピック分布に示されるトピックの重みを大きくするように、重み付けを行う。例えば管理サーバ１００は、各トピックに関する単語の生成確率の計算時に、式（２）のβの値を該当トピックの重みに応じて変更する。βの値を大きくすることで、該当トピックに関する各単語の生成確率が増加し、該当トピックを表す単語の量が増える。すると、各文書のトピック分布を生成した際に、該当トピックの値が大きくなる。
【００７３】
以下、補正用ＬＤＡモデルを用いたジョブの消費電力を予測し、ジョブの消費電力に基づいたＨＰＣの電力管理方法について詳細に説明する。
図７は、電力管理のための各装置の機能を示すブロック図である。ＨＰＣ運用管理サーバ２００は、ＤＢ２１０、タイマ部２２０、情報取得部２３０、ジョブスケジューリング部２４０、および制御指示部２５０を有する。
【００７４】
ＤＢ２１０は、実行するジョブのステイタスを示すジョブステイタス情報や、実行したジョブの消費電力の時系列変化を示すジョブ電力消費情報を記憶する。
タイマ部２２０は、ＨＰＣシステム３０からジョブごとの電力消費情報を収集するタイミングを管理する。例えばタイマ部２２０は、一定の時間間隔で、ジョブ電力消費情報の収集を情報取得部２３０に指示する。
【００７５】
情報取得部２３０は、タイマ部２２０からの指示に応じて、ＨＰＣシステム３０から、ＨＰＣシステム３０での実行が終了したジョブの時系列電力データを取得する。情報取得部２３０は、取得した電力消費情報を、ＤＢ２１０に格納する。
【００７６】
管理サーバ１００は、ＤＢ１１０、タイマ部１２０、メトリクス収集部１３０、ＬＤＡ学習部１４０、ＬＤＡ予測値計算部１５０、予測結果送信部１６０、およびＬＤＡ重み更新部１７０を有する。
【００７７】
ＤＢ１１０は、ジョブごとの電力消費パターンの予測に使用する情報を記憶する。タイマ部１２０は、未実行のジョブの電力消費パターンの予測タイミングを管理する。例えばタイマ部１２０は、一定の時間間隔で、ＨＰＣ運用管理サーバ２００からの情報収集を、メトリクス収集部１３０に指示する。またタイマ部１２０は、一定の時間間隔で、電力消費パターンの予測を、ＬＤＡ予測値計算部１５０に指示する。
【００７８】
メトリクス収集部１３０は、タイマ部１２０の指示に応じて、ＨＰＣ運用管理サーバ２００から情報を収集する。例えばメトリクス収集部１３０は、実行待ちのジョブおよび実行が終了したジョブのジョブステイタス情報と、実行が終了したジョブの電力消費パターンを示す時系列電力データとを、ＨＰＣ運用管理サーバ２００から取得する。メトリクス収集部１３０は、取得した情報をＤＢ１１０に格納する。
【００７９】
ＬＤＡ学習部１４０は、ジョブ情報に基づいて、ＬＤＡ推定モデルを生成する。例えばＬＤＡ学習部１４０は、複数のジョブのジョブ情報に含まれる単語を解析し、トピックごとのグループに単語を分類する。ＬＤＡ学習部１４０は、学習結果をＤＢ１１０に格納する。
【００８０】
ＬＤＡ予測値計算部１５０は、ＬＤＡ推定モデルに基づいて、実行待ちのジョブの電力消費パターンを予測する。例えばＬＤＡ予測値計算部１５０は、予測対象のジョブとジョブ情報が類似する、すでに実行が終了したジョブを特定し、特定したジョブの電力消費パターンを、予測対象のジョブの電力消費パターンとして予測する。ＬＤＡ予測値計算部１５０は、例えば予測結果をＤＢ１１０に格納する。
【００８１】
予測結果送信部１６０は、実行待ちのジョブの電力消費パターンの予測結果を、ＨＰＣ運用管理サーバ２００に送信する。
ＬＤＡ重み更新部１７０は、ＬＤＡ推定モデルの生成時に使用するトピックごとの重みを更新する。例えばＬＤＡ重み更新部１７０は、新たに実行が終了したジョブを対象ジョブとし、対象ジョブとジョブ情報の類似する一定数の類似ジョブのうち、電力消費パターンが対象ジョブと最も類似する類似ジョブを特定する。そしてＬＤＡ重み更新部１７０は、特定した類似ジョブのジョブ情報に基づくトピック分布を求め、そのトピック分布に示されるトピックの重みを大きくする。ＬＤＡ重み更新部１７０は、更新後の各トピックの重みをＤＢ１１０に格納する。
【００８２】
なお、図７に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図７に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００８３】
図８は、管理サーバのＤＢに格納される情報の一例を示す図である。図８の例では、ＤＢ１１０には、ジョブ情報１１１、ジョブ消費電力情報１１２、学習結果情報１１３、トピック重み情報１１４、および類似ジョブ情報１１５が格納されている。
【００８４】
ジョブ情報１１１は、ジョブごとのジョブ名などのジョブステイタス情報である。ジョブ消費電力情報１１２は、実行が終了したジョブの時系列の消費電力に関する情報である。学習結果情報１１３は、ＬＤＡによる学習結果を示す情報である。トピック重み情報１１４は、トピックごとの重み値を示す情報である。類似ジョブ情報１１５は、消費電力予測対象のジョブに類似するジョブを示す情報である。
【００８５】
図９は、ジョブ情報の一例を示す図である。ジョブ情報１１１には、例えばジョブごとのジョブステイタス情報１１１ａ，１１１ｂ，・・・が含まれている。ジョブステイタス情報１１１ａ，１１１ｂ，・・・には、ジョブＩＤ、ジョブの名称、ジョブの実行を要求しているユーザのユーザ名、該当ユーザが属するグループのグループＩＤなど、ジョブの実行に関連する各種情報が含まれる。
【００８６】
図１０は、ジョブ消費電力情報の一例を示す図である。ジョブ消費電力情報１１２には、例えば実行が終了したジョブごとの時系列電力データ１１２ａ，１１２ｂ，・・・が格納されている。時系列電力データ１１２ａ，１１２ｂ，・・・には、例えばジョブＩＤに対応づけて、実行時間ごとの消費電力が示されている。実行時間は、電力測定時における、ジョブの実行を開始してからの経過時間である。電力測定は、例えば所定の時間間隔で各計算ノードにより行われる。消費電力は、ジョブの実行による、計算ノードの消費電力の増加量である。
【００８７】
図１１は、学習結果情報の一例を示す図である。学習結果情報１１３には、例えば、ジョブ情報に含まれる単語を複数のトピックに分類するための推定モデルごとの学習結果１１３ａ，１１３ｂが含まれている。学習結果１１３ａは、ＬＤＡ推定モデルによる学習結果である。学習結果１１３ｂは、補正用ＬＤＡ推定モデルによる学習結果である。補正用ＬＤＡ推定モデルは、ＬＤＡ推定モデルにトピックごとの重み付けを行ったものである。学習結果１１３ａ，１１３ｂには、トピックを示すトピック番号に対応づけて、そのトピックに属する単語が登録されている。
【００８８】
図１２は、トピック重み情報の一例を示す図である。トピック重み情報１１４には、トピックを示すトピック番号ごとに、そのトピックの重みが設定されている。トピックの重みは、例えば、ＬＤＡ重み更新部１７０によって、新たなジョブの実行が終了するごとに更新される。各トピックの重みは、例えば該当トピックに関する式（２）の計算時のβの値として用いられる。
【００８９】
図１３は、類似ジョブ情報の一例を示す図である。例えば類似ジョブ情報１１５には、推定モデルごとの学習結果１１３ａ，１１３ｂに基づいて判定された、消費電力の予測対象である対象ジョブに対する類似ジョブ１１５ａまたは類似ジョブリスト１１５ｂが含まれる。例えば類似ジョブ１１５ａには、ＬＤＡ推定モデルの学習結果１１３ａに基づいて判定された、対象ジョブに最も類似する１つのジョブのジョブＩＤが示される。また類似ジョブリスト１１５ｂには、補正用ＬＤＡ推定モデルの学習結果１１３ａに基づいて判定された、対象ジョブに類似する所定数のジョブのジョブＩＤが示される。
【００９０】
次に、ＬＤＡ推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法について、具体的に説明する。
図１４は、ＬＤＡ推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法の一例を示す図である。管理サーバ１００は、新規投入ジョブ５１を検知すると、新規投入ジョブ５１のジョブ情報に示されるトピックの出現頻度に応じて、ＬＤＡ推定モデルまたは補正用ＬＤＡ推定モデルの学習結果に基づいて、実行が終了したジョブの中から類似ジョブを特定する。例えば管理サーバ１００は、新規投入ジョブ５１のトピックの、ジョブ全体における出現頻度が所定値以上の場合、補正用ＬＤＡ推定モデルの学習結果を用いる。また管理サーバ１００は、新規投入ジョブ５１のトピックの、ジョブ全体における出現頻度が所定値未満の場合、ＬＤＡ推定モデルの学習結果を用いる。
【００９１】
管理サーバ１００は、新規投入ジョブ５１に最も類似するジョブを特定し、そのジョブの消費電力を示す電力波形を、新規投入ジョブ５１の消費電力の電力波形として予測する。また管理サーバ１００は、補正用ＬＤＡ推定モデルの学習結果を用いて類似ジョブを判定した場合、新規投入ジョブ５１の実行終了後に、その新規投入ジョブ５１の時系列電力データを取得し、電力波形を生成する。次に管理サーバ１００は、新規投入ジョブ５１に類似する所定数のジョブそれぞれの電力波形と、新規投入ジョブ５１の電力波形とを比較する。
【００９２】
そして、管理サーバ１００は、電力波形が最も類似するジョブを特定し、該当ジョブのトピックに基づいて、トピックの重みを更新する。例えば管理サーバ１００は、特定したジョブのジョブ情報に示されるトピックの重みの値を所定量だけ増加させる。
【００９３】
このように管理サーバ１００は、ジョブ実行終了後に出力されるそのジョブの電力波形と、ジョブ情報が類似する所定数のジョブの電力波形とを比較し、最も近い電力波形を持つジョブ情報のトピックを元に、トピックの重みを変更する。これにより、補正用ＬＤＡ推定モデルの学習結果を用いた類似ジョブの予測精度が向上する。
【００９４】
なお、補正用ＬＤＡ推定モデルでは、新規投入ジョブ５１と電力波形が類似するジョブのトピックの重みが増加する。この処理が繰り返されると、出現頻度が高いトピックの重みの値が大きくなっていき、出現頻度が低いトピックの重みとの差が大きくなる。その結果、新規投入ジョブ５１のトピックとして出現頻度の低いトピックが含まれていた場合、類似判断においてそのトピックの影響が適切に反映されなくなってしまい、類似判断の精度の劣化を招く。そこで、管理サーバ１００は、新規投入ジョブに含まれるトピックの出現頻度が低い場合には、ＬＤＡ推定モデルの学習結果を用いて類似ジョブを判断する。これにより、出現頻度が低いトピックを有するジョブに関する予測精度の劣化を抑止することができる。
【００９５】
以下、ジョブの消費電力予測処理の手順について、詳細に説明する。
図１５は、消費電力予測処理の手順の一例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【００９６】
［ステップＳ１０１］タイマ部１２０は、前回の消費電力予測処理の実行からの経過時間を計測し、所定時間が経過した場合、情報収集の開始をメトリクス収集部１３０に指示する。メトリクス収集部１３０は、ＨＰＣ運用管理サーバ２００から情報を収集する。例えばメトリクス収集部１３０は、ＨＰＣ運用管理サーバ２００内のＤＢ２１０から、各ジョブのジョブステイタス情報と実行が終了した各ジョブの時系列電力データとを取得する。例えばジョブステイタス情報には、該当ジョブが実行待ちの新規投入ジョブなのか否かを示す情報が含まれる。メトリクス収集部１３０は、取得した情報をＤＢ１１０に格納する。
【００９７】
［ステップＳ１０２］ＬＤＡ学習部１４０は、取得したジョブステイタス情報に示されるジョブのうち新規投入ジョブを識別する。例えばＬＤＡ学習部１４０は、新規投入ジョブのジョブＩＤを、消費電力予測対象として抽出する。
【００９８】
［ステップＳ１０３］ＬＤＡ学習部１４０とＬＤＡ予測値計算部１５０が連携して、新規投入ジョブのジョブ情報に類似するジョブ情報を有するジョブ（類似ジョブ）を抽出する。類似ジョブ抽出処理の詳細については後述する（図１６参照）。
【００９９】
［ステップＳ１０４］ＬＤＡ予測値計算部１５０は、新規投入ジョブのトピック分布に示されるトピックの重みを加味した値の平均を算出する。例えばＬＤＡ予測値計算部１５０は、補正用ＬＤＡ推定モデルに基づいて、新規投入ジョブのトピック分布を算出する。トピック分布には、新規投入モデルのジョブ情報に示される複数のトピックについて、該当トピックの情報がどの程度含まれるかが数値で示される。算出された数値には、トピックごとの重みが反映されており、重みが大きいトピックほど高い数値となる。
【０１００】
［ステップＳ１０５］ＬＤＡ予測値計算部１５０は、すべてのジョブのトピック分布に示されるトピックの重みを加味した値の平均を算出する（すべてのジョブのすべてのトピックの平均）。
【０１０１】
［ステップＳ１０６］ＬＤＡ予測値計算部１５０は、ステップＳ１０４で算出した新規投入ジョブについての平均値と、ステップＳ１０５で算出したすべてのジョブについての平均値とを比較する。そしてＬＤＡ予測値計算部１５０は、新規投入ジョブについての平均値がすべてのジョブについての平均値より大きければ、処理をステップＳ１０８に進める。またＬＤＡ予測値計算部１５０は、新規投入ジョブについての平均値がすべてのジョブについての平均値以下であれば、処理をステップＳ１０７に進める。
【０１０２】
［ステップＳ１０７］ＬＤＡ予測値計算部１５０は、ＬＤＡ推定モデルに基づいて、新規投入ジョブのトピック分布と最も類似するトピック分布を有するジョブを特定する。そしてＬＤＡ予測値計算部１５０は、特定したジョブの電力波形を、新規投入ジョブの電力波形の予測結果として出力する。予測結果送信部１６０は、ＬＤＡ予測値計算部１５０が出力した予測結果を、ＨＰＣ運用管理サーバ２００に送信する。ＬＤＡ予測値計算部１５０は、その後、処理をステップＳ１０９に進める。
【０１０３】
［ステップＳ１０８］ＬＤＡ予測値計算部１５０は、補正用ＬＤＡ推定モデルに基づいて、新規投入ジョブのトピック分布と最も類似するトピック分布を有するジョブを特定する。そしてＬＤＡ予測値計算部１５０は、特定したジョブの電力波形を、新規投入ジョブの電力波形の予測結果として出力する。予測結果送信部１６０は、ＬＤＡ予測値計算部１５０が出力した予測結果を、ＨＰＣ運用管理サーバ２００に送信する。
【０１０４】
［ステップＳ１０９］ＬＤＡ重み更新部１７０は、重み更新処理を行う。重み更新処理の詳細は後述する（図１７参照）。
このようにして、ＬＤＡ推定モデルまたは補正用ＬＤＡ推定モデルに基づいて新規投入ジョブの消費電力を予測できると共に、補正用ＬＤＡ推定モデルに適用するトピックごとの重みを更新することができる。
【０１０５】
次に、類似ジョブの抽出処理について詳細に説明する。
図１６は、類似ジョブ抽出処理の手順の一例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
【０１０６】
［ステップＳ１１１］ＬＤＡ学習部１４０は、すべてのジョブのジョブステイタス情報内の出現単語を抽出する。
［ステップＳ１１２］ＬＤＡ学習部１４０は、ＬＤＡ推定モデルを用いて単語をトピックに分類する。すなわちＬＤＡ学習部１４０は、前述の式（２）を用いて、共通のジョブステイタス情報に出現する確率の高い単語同士を同じグループにグルーピングし、生成されたグループをトピックとする。ＬＤＡ学習部１４０は、生成したトピックと、各トピックに属する単語のリストとを、学習結果としてＤＢ１１０に格納する。
【０１０７】
［ステップＳ１１３］ＬＤＡ予測値計算部１５０は、ＬＤＡ推定モデルによる学習結果に基づいて、すべてのジョブについて、該当ジョブのジョブステイタス情報に含まれるトピック分布を算出する。
【０１０８】
［ステップＳ１１４］ＬＤＡ予測値計算部１５０は、ＬＤＡ推定モデルによる学習結果から得られたトピック分布に基づいて、新規投入ジョブのトピック分布と、既に実行が終了している他のジョブのトピック分布との類似度を計算する。
【０１０９】
［ステップＳ１１５］ＬＤＡ予測値計算部１５０は、ステップＳ１１４の類似度の計算において、新規投入ジョブと最も類似するジョブの情報（例えばジョブＩＤ）を、ＤＢ１１０に格納する。
【０１１０】
［ステップＳ１１６］ＬＤＡ学習部１４０は、補正用ＬＤＡ推定モデルを用いて単語をトピックに分類する。すなわちＬＤＡ学習部１４０は、トピックに応じて単語の生成確率を得る際に、前述の式（２）のβの値にトピックごとの重みを設定する。そしてＬＤＡ学習部１４０は、共通のジョブステイタス情報に出現する確率の高い単語同士を同じグループにグルーピングし、生成されたグループをトピックとする。ＬＤＡ学習部１４０は、生成したトピックと、各トピックに属する単語のリストとを、学習結果としてＤＢ１１０に格納する。
【０１１１】
［ステップＳ１１７］ＬＤＡ予測値計算部１５０は、補正用ＬＤＡ推定モデルによる学習結果に基づいて、すべてのジョブについて、該当ジョブのジョブステイタス情報に含まれるトピック分布を算出する。
【０１１２】
［ステップＳ１１８］ＬＤＡ予測値計算部１５０は、補正用ＬＤＡ推定モデルによる学習結果から得られたトピック分布に基づいて、新規投入ジョブのトピック分布と、既に実行が終了している他のジョブのトピック分布との類似度を計算する。
【０１１３】
［ステップＳ１１９］ＬＤＡ予測値計算部１５０は、ステップＳ１１８の類似度の計算において、新規投入ジョブと類似する上位所定数（例えば１０個）のジョブの情報（例えばジョブＩＤ）を、ＤＢ１１０に格納する。
【０１１４】
このようにして、ＬＤＡ推定モデルと補正用ＬＤＡ推定モデルとのそれぞれに基づいてジョブ間の類似度が計算され、上位のジョブが抽出される。
次に重み更新処理について詳細に説明する。
【０１１５】
図１７は、重み更新処理の手順の一例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ１２１］ＬＤＡ重み更新部１７０は、新規投入ジョブの時系列電力データをＤＢ１１０から取得する。
【０１１６】
［ステップＳ１２２］ＬＤＡ重み更新部１７０は、補正用ＬＤＡ推定モデルによる類似ジョブの出力結果（類似ジョブリスト）をＤＢ１１０から取得する。
［ステップＳ１２３］ＬＤＡ重み更新部１７０は、類似ジョブの時系列電力データを、ＤＢ１１０から取得する。
【０１１７】
［ステップＳ１２４］ＬＤＡ重み更新部１７０は、新規投入ジョブと類似ジョブとの電力波形の類似度を算出する。電力波形の類似度は、例えば動的時間伸縮法（ＤＴＷ：Dynamic Time Warping）により計算することができる。
【０１１８】
ＤＴＷにより電力波形の類似度を計算する場合、ＬＤＡ重み更新部１７０は、横軸に実行時間、縦軸に電力を示すグラフ上に、比較対象の２つの電力波形を示す２つの折れ線グラフを定義する。折れ線グラフは、実行時間に応じた電力を示す点（測定点）を結ぶことで生成される。
【０１１９】
ＬＤＡ重み更新部１７０は、２つの電力波形上の時系列の各測定点の値の距離を総当りで比較していき、時系列同士の距離の値が最も小さくなるような関係（ワーピングパス）を見つける。そしてＬＤＡ重み更新部１７０は、ワーピングパスに対応する距離を、電力波形間の類似度とする。
【０１２０】
ＤＴＷは、実行時間が違うジョブ間でも評価できるという利点がある。すなわち相関係数などを用いて類似度を算出すると、実行時間が大きく異なるジョブ間の類似度が正しく評価できない。それに対して、ＤＴＷは、ジョブの実行時間が大きく異なっていても、類似度を正しく評価できる。
【０１２１】
［ステップＳ１２５］ＬＤＡ重み更新部１７０は、新規投入ジョブに対して電力波形が最も類似するジョブのトピック分布を、補正用ＬＤＡ推定モデルで計算する。
［ステップＳ１２６］ＬＤＡ重み更新部１７０は、算出されたトピック分布に示される全てのトピックの重みを大きくする。例えばＬＤＡ重み更新部１７０は、該当トピックの重みの値に「０．０１」を加算する。
【０１２２】
このように、電力波形が類似するジョブのトピック分布に含まれるトピックの重みの値を大きくすることで、該当トピックを含むジョブほど、トピック分布の類似度判定の際に類似度の値が高くなる。すなわち、新規投入ジョブと電力波形が類似するジョブについて、ＬＤＡ推定モデルでトピック分布の類似度を計算した場合より、補正用ＬＤＡ推定モデルでトピック分布の類似度を計算した場合の方が、類似度が高くなる。その結果、新規投入ジョブと類似する電力波形を有するジョブを、正しく特定することが可能となる。
【０１２３】
新規投入ジョブの電力を正確に予測できることで、ＨＰＣ運用管理サーバ２００では、例えばＨＰＣシステム３０全体の消費電力を平準化させるように、ジョブスケジューリングを行うことができる。消費電力を平準化させることで、ＨＰＣシステム３０の瞬間最大消費電力を低減することができる。これにより、例えばＨＰＣシステム３０を運用するために用意する電力設備の規模の縮小が可能となる。
【０１２４】
また、ジョブごとの消費電力を正確に予測できることで、オンデマンド料金制度に基づいて電力料金の契約をしていた場合に、ＨＰＣシステム３０の消費電力が契約電力を超えないように適切に制御することができる。
【０１２５】
図１８は、オンデマンド料金制度を説明する図である。図１８には、ＨＰＣシステム３０全体の消費電力を示す電力波形６１のグラフを示している。グラフの横軸がＨＰＣシステム３０の稼働時間であり、縦軸が消費電力である。電力波形６１で示される消費電力の時系列変化の所定期間（例えば３０分）の平均値６２が、該当期間の電力使用量となる。図１８の例では、瞬間最大消費電力は１５０ｋｗであるが、電力使用量は１００ｋｗと換算される。
【０１２６】
ここでオンデマンド料金制度では、「電気料金＝契約電力料金＋電力料金単価×１ヶ月の電力使用量」という計算式で、各月の電力料金が算出される。ＨＰＣシステム３０では膨大な電力を消費するため、契約電力料金が高額になる。契約電力料金は前年（過去１年間）で最も電力を使用した３０分間の電力使用量（最大需要電力）に応じて決定される。そのため３０分間単位の時間帯で一度でも契約電力を超過すれば、次年度の電力料金が増加する。
【０１２７】
新規投入ジョブの消費電力を正確に予測することができれば、ＨＰＣ運用管理サーバ２００は、以後の３０分の時間帯における電力使用量が、過去１年の最大需要電力を超えそうか否かを適切に判断できる。ＨＰＣ運用管理サーバ２００は、過去１年の最大需要電力を超えそうと判断した場合、新規投入ジョブの実行開始を遅らせることで、電力使用量が過去１年の最大需要電力を超えることを抑止できる。その結果、電力料金が抑えられる。
【０１２８】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、新規投入ジョブとの間のトピック分布の類似度が所定値以上のジョブについて、重み更新処理の際の電力波形の比較対象とするものである。第３の実施の形態は、類似ジョブ抽出処理の詳細が、第２の実施の形態と異なる。
【０１２９】
図１９は、第３の実施の形態における類似ジョブ抽出処理の手順の一例を示すフローチャートである。図１９に示す処理のうち、ステップＳ２０１〜Ｓ２０８は、図１６に示した第２の実施の形態の類似ジョブ抽出処理のステップＳ１１１〜Ｓ１１８と同様である。第２の実施の形態と異なるステップＳ２０９の処理は以下の通りである。
【０１３０】
［ステップＳ２０９］ＬＤＡ予測値計算部１５０は、ステップＳ２０８の類似度の計算において、新規投入ジョブとの類似度が閾値以上のジョブの情報（例えばジョブＩＤ）を、ＤＢ１１０に格納する。
【０１３１】
このようにして、新規投入ジョブとの間のトピック分布の類似度が閾値以上のジョブのジョブＩＤが、ＤＢ１１０に格納される。そして重み更新処理では、ステップＳ２０９でＤＢ１１０に格納したジョブＩＤが類似ジョブとして抽出され、該当ジョブの電力波形と新規投入ジョブの電力波形との類似度が計算される。
【０１３２】
トピック分布の類似度が閾値以上のジョブを類似ジョブとすることで、類似ジョブが多数存在した場合であっても、新規投入ジョブと類似する電力波形を有するジョブが、類似ジョブから漏れることを抑止できる。
【０１３３】
［その他の実施の形態］
第２の実施の形態ではジョブ情報の類似度を、トピックモデルを用いて計算しているが、管理サーバ１００は、他の方法で類似度を計算してもよい。例えば管理サーバ１００は、各ジョブ情報の単語の出現頻度を示すベクトル間の類似度（例えばコサイン類似度）を、ジョブ情報間の類似度とすることもできる。
【０１３４】
また第２の実施の形態では重みの値を式（２）のβに設定しているが、管理サーバ１００は他の方法で、各トピックの重みをトピック分布に反映してもよい。例えば管理サーバ１００は、トピック分布における各トピックの出現頻度を示す値に、重みの値を乗算することで、重み付けを行ってもよい。
【０１３５】
さらに第２の実施の形態では、管理サーバ１００の機能とＨＰＣ運用管理サーバ２００の機能とを分けているが、例えばＨＰＣ運用管理サーバ２００が、管理サーバ１００の機能を有していてもよい。
【０１３６】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１３７】
１  ＨＰＣシステム
２，３ａ，３ｂ，・・・  ジョブ情報
４ａ，４ｂ，・・・  消費電力情報
１０  ジョブ電力予測装置
１１  記憶部
１２  処理部
【図１】
2020129180.tif 000006
【図２】
2020129180.tif 000007
【図３】
2020129180.tif 000008
【図４】
2020129180.tif 000009
【図５】
2020129180.tif 000010
【図６】
2020129180.tif 000011
【図７】
2020129180.tif 000012
【図８】
2020129180.tif 000013
【図９】
2020129180.tif 000014
【図１０】
2020129180.tif 000015
【図１１】
2020129180.tif 000016
【図１２】
2020129180.tif 000017
【図１３】
2020129180.tif 000018
【図１４】
2020129180.tif 000019
【図１５】
2020129180.tif 000020
【図１６】
2020129180.tif 000021
【図１７】
2020129180.tif 000022
【図１８】
2020129180.tif 000023
【図１９】
2020129180.tif 000024