IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7235960ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
<>
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図1
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図2
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図3
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図4
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図5
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図6
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図7
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図8
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図9
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図10
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図11
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図12
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図13
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図14
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図15
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図16
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図17
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図18
  • 特許-ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-01
(45)【発行日】2023-03-09
(54)【発明の名称】ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
(51)【国際特許分類】
   G06F 16/33 20190101AFI20230302BHJP
   G06F 1/28 20060101ALI20230302BHJP
   G16Z 99/00 20190101ALI20230302BHJP
   G06F 9/44 20180101ALI20230302BHJP
【FI】
G06F16/33
G06F1/28
G16Z99/00
G06F9/44
【請求項の数】 6
(21)【出願番号】P 2019020579
(22)【出願日】2019-02-07
(65)【公開番号】P2020129180
(43)【公開日】2020-08-27
【審査請求日】2021-11-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】鈴木 成人
(72)【発明者】
【氏名】白神 美智子
(72)【発明者】
【氏名】遠藤 浩史
(72)【発明者】
【氏名】白石 崇
(72)【発明者】
【氏名】土肥 義康
(72)【発明者】
【氏名】福田 裕幸
(72)【発明者】
【氏名】山本 拓司
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2018-084907(JP,A)
【文献】米国特許出願公開第2016/0048413(US,A1)
【文献】宇野 篤也,消費電力の変動を考慮したジョブスケジューリングの検討,情報処理学会 研究報告 ハイパフォーマンスコンピューティング(HPC) 2017-HPC-161 [online] ,情報処理学会,2017年09月12日,Internet<URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=183560&file_id=1&file_no=1>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
G16Z 99/00
G06F 1/28
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
新規に投入する第1ジョブおよび実行が終了した複数の第2ジョブそれぞれに関連する事項が示された、前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報に基づいて、前記第1ジョブおよび前記複数の第2ジョブそれぞれの前記ジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算し
トピックごとに重みが設定され、重みの値が大きいトピックを含む前記ジョブ情報ほど類似度が高くなる計算式を用いて、前記第1ジョブと前記複数の第2ジョブそれぞれとのトピック分布の類似度を示す、前記複数の第2ジョブそれぞれの第1類似度を計算し、
前記複数の第2ジョブそれぞれについて計算した前記第1類似度に基づいて、ジョブ情報類似の第2ジョブを特定し、
前記複数の第2ジョブを実行したことで消費した電力が示された、前記複数の第2ジョブそれぞれの消費電力情報に基づいて、前記ジョブ情報類似の第2ジョブの前記消費電力情報に示されている消費電力を、前記第1ジョブを実行することによる消費電力と予測し、
前記第1ジョブの実行終了後に、前記第1ジョブを実行したことで消費した電力が示された第1ジョブ消費電力情報を取得し、
前記第1ジョブ消費電力情報と前記複数の第2ジョブの前記消費電力情報とに基づいて、前記第1ジョブと前記複数の第2ジョブの少なくとも一部との第2類似度を計算し、
前記複数の第2ジョブの少なくとも一部について計算した前記第2類似度に基づいて、消費電力類似の第2ジョブを特定し、
前記計算式に設定されているトピックの重みのうち、前記消費電力類似の第2ジョブの前記ジョブ情報に含まれるトピックの重みの値を増加させる
処理を実行させるジョブ電力予測プログラム。
【請求項2】
前記第1類似度の計算では、前記第1ジョブの前記ジョブ情報に含まれるトピックの重みに応じて、トピックごとの重みを用いた前記計算式によって前記第1類似度を計算するのか、トピックごとの重みを用いない補正無し計算式によって前記第1類似度を計算するのかを判定し、判定結果に応じて、前記計算式または前記補正無し計算式を用いて前記第1類似度を計算する、
請求項記載のジョブ電力予測プログラム。
【請求項3】
前記第2類似度の計算では、前記第1ジョブとの前記第1類似度が高い方から所定数の第2ジョブについて、前記第2類似度を計算する、
請求項1または2に記載のジョブ電力予測プログラム。
【請求項4】
前記第2類似度の計算では、前記第1ジョブとの前記第1類似度が閾値以上の第2ジョブについて、前記第2類似度を計算する、
請求項1または2に記載のジョブ電力予測プログラム。
【請求項5】
コンピュータが、
新規に投入する第1ジョブおよび実行が終了した複数の第2ジョブそれぞれに関連する事項が示された、前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報に基づいて、前記第1ジョブおよび前記複数の第2ジョブそれぞれの前記ジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算し
トピックごとに重みが設定され、重みの値が大きいトピックを含む前記ジョブ情報ほど類似度が高くなる計算式を用いて、前記第1ジョブと前記複数の第2ジョブそれぞれとのトピック分布の類似度を示す、前記複数の第2ジョブそれぞれの第1類似度を計算し、
前記複数の第2ジョブそれぞれについて計算した前記第1類似度に基づいて、ジョブ情報類似の第2ジョブを特定し、
前記複数の第2ジョブを実行したことで消費した電力が示された、前記複数の第2ジョブそれぞれの消費電力情報に基づいて、前記ジョブ情報類似の第2ジョブの前記消費電力情報に示されている消費電力を、前記第1ジョブを実行することによる消費電力と予測し、
前記第1ジョブの実行終了後に、前記第1ジョブを実行したことで消費した電力が示された第1ジョブ消費電力情報を取得し、
前記第1ジョブ消費電力情報と前記複数の第2ジョブの前記消費電力情報とに基づいて、前記第1ジョブと前記複数の第2ジョブの少なくとも一部との第2類似度を計算し、
前記複数の第2ジョブの少なくとも一部について計算した前記第2類似度に基づいて、消費電力類似の第2ジョブを特定し、
前記計算式に設定されているトピックの重みのうち、前記消費電力類似の第2ジョブの前記ジョブ情報に含まれるトピックの重みの値を増加させる
ジョブ電力予測方法。
【請求項6】
新規に投入する第1ジョブおよび実行が終了した複数の第2ジョブそれぞれに関連する事項が示された、前記第1ジョブおよび前記複数の第2ジョブそれぞれのジョブ情報と、前記複数の第2ジョブを実行したことで消費した電力が示された、前記複数の第2ジョブそれぞれの消費電力情報とを記憶する記憶部と、
前記第1ジョブおよび前記複数の第2ジョブそれぞれの前記ジョブ情報に基づいて、前記第1ジョブおよび前記複数の第2ジョブそれぞれの前記ジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算し、トピックごとに重みが設定され、重みの値が大きいトピックを含む前記ジョブ情報ほど類似度が高くなる計算式を用いて、前記第1ジョブと前記複数の第2ジョブそれぞれとのトピック分布の類似度を示す、前記複数の第2ジョブそれぞれの第1類似度を計算し、前記複数の第2ジョブそれぞれについて計算した前記第1類似度に基づいて、ジョブ情報類似の第2ジョブを特定し、前記複数の第2ジョブそれぞれの前記消費電力情報に基づいて、前記ジョブ情報類似の第2ジョブの前記消費電力情報に示されている消費電力を、前記第1ジョブを実行することによる消費電力と予測し、前記第1ジョブの実行終了後に、前記第1ジョブを実行したことで消費した電力が示された第1ジョブ消費電力情報を取得し、前記第1ジョブ消費電力情報と前記複数の第2ジョブの前記消費電力情報とに基づいて、前記第1ジョブと前記複数の第2ジョブの少なくとも一部との第2類似度を計算し、前記複数の第2ジョブの少なくとも一部について計算した前記第2類似度に基づいて、消費電力類似の第2ジョブを特定し、前記計算式に設定されているトピックの重みのうち、前記消費電力類似の第2ジョブの前記ジョブ情報に含まれるトピックの重みの値を増加させる処理部と、
を有するジョブ電力予測装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置に関する。
【背景技術】
【0002】
HPC(High Performance Computing)システムなどの大規模なコンピュータシステム(以下、単にシステムと呼ぶこともある)では大量の電力を消費する。そのためシステムを安定して稼働させるには、システムの適切な消費電力管理が重要となる。例えばシステムの消費電力を一定に保つことができれば、給電設備への負荷が少なくなる。
【0003】
システムの消費電力を管理するためには、システムによる電力需要を事前に予測できることが望ましい。システム全体の電力を予測する方法として、ジョブ名などを含む過去のジョブ投入情報から類似するジョブを特定し、特定したジョブの消費電力を予測値として、投入されたジョブの消費電力を予測する方法が考えられる。
【0004】
ジョブの消費電力の予測に利用可能な技術として、例えば同一の事象が記述された2種類のテキストを用いて、特定のトピックに対する単語の出現度合いを推定するための統計的モデルを生成する、情報分析装置が提案されている。
【0005】
またユーザの好みを反映させることで、快適性を損なわずに機器を自動制御する情報処理装置が提案されている。この情報処理装置は、第1の期間の機器毎の消費電力の実績値に基づいて、次の第2の期間の機器毎の消費電力を予測する。そして情報処理装置は、次期間消費電力予測部と、第2の期間の機器毎の消費電力の統計値と、予め設定されている目標値とを比較して、目標値に近づける方向に機器の状態を変更する。
【0006】
さらにジョブスケジューリングによってHPCシステムの消費電力の上限の制約を満たす技術も提案されている。
【先行技術文献】
【特許文献】
【0007】
【文献】国際公開第2010/150464号
【文献】国際公開第2014/175041号
【非特許文献】
【0008】
【文献】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
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、ジョブ投入情報が類似していても、電力消費パターンも類似するとは限らない。そのため、新たに投入するジョブの電力消費パターンが、そのジョブとジョブ投入情報が類似する過去に実行したジョブの電力消費パターンと同じになると予測すると、実測値と予測値とに大きな誤差が生じる可能性がある。ジョブの予測値に大きな誤差があると、システムの総電力の予測ではさらに大きな誤差が生じ、予測結果が不正確となる。
【0010】
1つの側面では、本件は、ジョブの消費電力の予測精度を向上させることを目的とする。
【課題を解決するための手段】
【0011】
1つの案では、コンピュータに以下の処理を実行させるジョブ電力予測プログラムが提供される。
コンピュータは、新規に投入する第1ジョブおよび実行が終了した複数の第2ジョブそれぞれに関連する事項が示された、第1ジョブおよび複数の第2ジョブそれぞれのジョブ情報に基づいて、第1ジョブと複数の第2ジョブそれぞれとの第1類似度を、所定の計算式を用いて計算する。次にコンピュータは、複数の第2ジョブそれぞれについて計算した第1類似度に基づいて、ジョブ情報類似の第2ジョブを特定する。次にコンピュータは、複数の第2ジョブを実行したことで消費した電力が示された、複数の第2ジョブそれぞれの消費電力情報に基づいて、ジョブ情報類似の第2ジョブの消費電力情報に示されている消費電力を、第1ジョブを実行することによる消費電力と予測する。次にコンピュータは、第1ジョブの実行終了後に、第1ジョブを実行したことで消費した電力が示された第1ジョブ消費電力情報を取得する。次にコンピュータは、第1ジョブ消費電力情報と複数の第2ジョブの消費電力情報とに基づいて、第1ジョブと複数の第2ジョブの少なくとも一部との第2類似度を計算する。次にコンピュータは、複数の第2ジョブの少なくとも一部について計算した第2類似度に基づいて、消費電力類似の第2ジョブを特定する。そしてコンピュータは、第1ジョブと消費電力類似の第2ジョブとの第1類似度が補正前よりも高くなるように、計算式を補正する。
【発明の効果】
【0012】
1態様によれば、ジョブの消費電力の予測精度を向上させることができる。
【図面の簡単な説明】
【0013】
図1】第1の実施の形態に係るジョブ電力予測方法の一例を示す図である。
図2】トピックごとに重み付けを行う計算式の補正例を示す図である。
図3】第2の実施の形態のシステム構成例を示す図である。
図4】管理サーバのハードウェアの一構成例を示す図である。
図5】類似度の算出例を示す図である。
図6】ジョブステイタス情報が類似するジョブそれぞれの電力波形の一例を示す図である。
図7】電力管理のための各装置の機能を示すブロック図である。
図8】管理サーバのDBに格納される情報の一例を示す図である。
図9】ジョブ情報の一例を示す図である。
図10】ジョブ消費電力情報の一例を示す図である。
図11】学習結果情報の一例を示す図である。
図12】トピック重み情報の一例を示す図である。
図13】類似ジョブ情報の一例を示す図である。
図14】LDA推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法の一例を示す図である。
図15】消費電力予測処理の手順の一例を示すフローチャートである。
図16】類似ジョブ抽出処理の手順の一例を示すフローチャートである。
図17】重み更新処理の手順の一例を示すフローチャートである。
図18】オンデマンド料金制度を説明する図である。
図19】第3の実施の形態における類似ジョブ抽出処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
【0015】
図1は、第1の実施の形態に係るジョブ電力予測方法の一例を示す図である。図1には、ジョブ電力予測方法を、ジョブ電力予測装置10を用いて実施した場合の例を示している。ジョブ電力予測装置10は、例えばジョブ電力予測方法の処理手順が記述されたジョブ電力予測プログラムを実行することにより、ジョブ電力予測方法を実施することができる。
【0016】
ジョブ電力予測装置10は、ジョブ電力予測方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えばジョブ電力予測装置10が有するメモリ、またはストレージ装置である。処理部12は、例えばジョブ電力予測装置10が有するプロセッサ、または演算回路である。
【0017】
ジョブ電力予測装置10は、例えばHPCシステム1に接続されている。ジョブ電力予測装置10は、HPCシステム1において新規に投入された未実行のジョブの消費電力を予測し、予測結果をHPCシステム1に通知する。HPCシステム1は、例えばジョブの消費電力の予測値を用いて、システム全体の消費電力の最大値を低減するように、ジョブスケジューリングを行う。
【0018】
ジョブ電力予測装置10の記憶部11は、例えば新規に投入する第1ジョブおよび実行が終了した複数の第2ジョブそれぞれに関連する事項が示された、第1ジョブおよび複数の第2ジョブそれぞれのジョブ情報2,3a,3b,・・・を記憶する。ジョブ情報2,3a,3b,・・・には、例えばジョブの投入を指示したユーザに関する情報(ユーザID、グループIDなど)、ジョブの実行条件(並列実行するノード数、実行時間など)が含まれる。また記憶部11は、複数の第2ジョブを実行したことで消費した電力が示された、複数の第2ジョブそれぞれの消費電力情報4a,4b,・・・を記憶する。消費電力情報4a,4b,・・・には、例えばジョブを実行することでHPCシステム1が消費した電力の時系列変化が電力波形で示される。
【0019】
処理部12は、例えば新規に投入する第1ジョブがあることを検知すると、その第1ジョブの消費電力を、以下の手順で予測する。
まず処理部12は、第1ジョブおよび複数の第2ジョブそれぞれのジョブ情報2,3a,3b,・・・に基づいて、第1ジョブと複数の第2ジョブそれぞれとのジョブ情報の類似度(第1類似度)を、所定の計算式を用いて計算する(ステップS1)。次に処理部12は、複数の第2ジョブそれぞれについて計算したジョブ情報の類似度に基づいて、ジョブ情報類似の第2ジョブを特定する(ステップS2)。次に処理部12は、複数の第2ジョブそれぞれの消費電力情報に基づいて、ジョブ情報類似の第2ジョブの消費電力情報に示される消費電力を、第1ジョブを実行することによる消費電力と予測する(ステップS3)。そして処理部12は、予測結果をHPCシステム1に送信する(ステップS4)。
【0020】
その後、処理部12は、HPCシステム1による第1ジョブの実行終了後に、第1ジョブを実行したことで消費した電力が示された消費電力情報(第1ジョブ消費電力情報)を、HPCシステム1から取得する(ステップS5)。次に処理部12は、第1ジョブの消費電力情報と複数の第2ジョブのそれぞれの消費電力情報に基づいて、第1ジョブと複数の第2ジョブの少なくとも一部との消費電力の類似度(第2類似度)を計算する(ステップS6)。次に処理部12は、複数の第2ジョブの少なくとも一部についての消費電力の類似度に基づいて、消費電力類似の第2ジョブを特定する(ステップS7)。そして処理部12は、第1ジョブと消費電力類似の第2ジョブとのジョブ情報の類似度が補正前よりも高くなるように、計算式を補正する(ステップS8)。
【0021】
このように、ジョブ情報の類似度を計算するための計算式を、実行したジョブの消費電力情報に基づいて補正することで、消費電力が類似するジョブ間のジョブ情報の類似度を高めることができる。このような補正を繰り返せば、新規に投入するジョブのジョブ情報に基づいて、そのジョブと消費電力が類似するジョブを正確に特定できるようになる。その結果、ジョブの消費電力の予測精度が向上する。
【0022】
なお、ジョブ情報2,3a,3b,・・・は、例えばテキストデータである。この場合、処理部12におけるジョブ情報の類似度の計算では、トピックモデルを用いることができる。トピックモデルとは、テキストデータ中で扱われている話題を推定する統計的手法である。トピックモデルを用いる場合、処理部12は、第1ジョブおよび複数の第2ジョブそれぞれのジョブ情報に含まれるトピックの出現確率を示すトピック分布を計算する。そして処理部12は、第1ジョブと複数の第2ジョブそれぞれとのトピック分布の類似度を、第1ジョブと複数の第2ジョブそれぞれとのジョブ情報の類似度とする。
【0023】
また処理部12は、トピックモデルを用いた場合、トピックごとに重み付けを行うことで、計算式を補正することができる。例えば処理部12は、ジョブ情報の類似度の計算において、トピックごとの重みを用い、重みの値が大きいトピックを含むジョブ情報ほど類似度が高くなる計算式によって、ジョブ情報の類似度を計算する。さらに処理部12は、計算式の補正において、消費電力類似の第2ジョブのジョブ情報に含まれるトピックの重みの値を増加させる。
【0024】
図2は、トピックごとに重み付けを行う計算式の補正例を示す図である。例えばジョブXが新たに投入される場合を想定する。ジョブXが、図1の説明における第1ジョブである。既に実行が終了しているジョブとして、ジョブAとジョブBがある。ジョブAとジョブBが、図1の説明における第2ジョブである。
【0025】
処理部12は、各ジョブのジョブ情報に基づいて、トピック分布を計算する。トピック分布には、ジョブ情報におけるトピックの出現確率が数値で示される。ジョブXのトピック分布には、出現確率が高い順に、トピックa、トピックb、トピックcであることが示されている。ジョブAのトピック分布には、出現確率が高い順に、トピックa、トピックb、トピックdであることが示されている。ジョブBのトピック分布には、出現確率が高い順に、トピックa、トピックe、トピックcであることが示されている。
【0026】
この時点では、各トピックの重みが同じであるものとする。ジョブXとジョブAとのトピック分布は、トピックaとトピックbが共通である。ジョブXとジョブBとのトピック分布は、トピックaとトピックcが共通である。ジョブXとジョブAとにおけるトピックbの出現確率を示す値は、ジョブXとジョブBとにおけるトピックcの出現確率を示す値よりも大きい。そのため、ジョブXとジョブAとの類似度の方が、ジョブXとジョブBとの類似度よりも大きくなる。
【0027】
この場合、処理部12は、ジョブの消費電力をジョブXの消費電力として予測する。その後、ジョブXが実行されると、ジョブXの消費電力の実測値(電力波形)が得られる。処理部12は、ジョブXの電力波形を、ジョブAとジョブBそれぞれの電力波形と比較する。図2の例では、ジョブBの電力波形の方が、ジョブXの電力波形に類似している。そこで処理部12は、ジョブBのトピック分布に含まれるトピックa,e,cについて、重みを増加させる。重みが増加したトピックは、トピック分布の計算において、該当トピックの出現確率を示す数値が、重みの補正前よりも大きくなる。
【0028】
その後、例えばジョブXとほぼ同じトピック分布のジョブ情報を有するジョブYが新規に投入されたものとする。例えばジョブXの実行を指示したユーザが、ジョブを実行するプログラムの微細な修正を行い、修正後のプログラムを実行するジョブYの実行を指示した場合、ジョブYのジョブ情報は、ジョブXのジョブ情報とほぼ同じとなる。
【0029】
処理部12は、各ジョブのジョブ情報に基づいて、補正後の重みを用いてトピック分布を計算する。すると各ジョブのトピック分布のうち、重みの大きなトピックの値は、重みの補正前よりも高い値となる。図2では、重みによる増加分を網掛けで示している。重みの違いが作用し、ジョブYとジョブBとにおけるトピックcの出現確率を示す値は、ジョブYとジョブAとにおけるトピックbの出現確率を示す値よりも大きくなっている。そのため、ジョブYとジョブBとの類似度の方が、ジョブYとジョブAとの類似度よりも大きくなる。
【0030】
この場合、処理部12は、ジョブBの消費電力をジョブYの消費電力として予測する。ジョブYは、ジョブXとほぼ同じ条件で実行され、ジョブYの電力波形はジョブXと同様であると考えられる。ジョブBの電力波形はジョブXの電力波形に類似しており、処理部12がジョブBの消費電力をジョブYの消費電力として予測したことで、正しい予測が行われたこととなる。このように、トピックの重みを補正することで、ジョブの消費電力の予測精度が向上する。
【0031】
なお、消費電力が類似するジョブのトピック分布に含まれるトピックの重みを増加させていくと、出現頻度の低いトピックについては重みが低いままとなる。すると新たに実行する第1ジョブのトピック分布に出現頻度の低いトピックが含まれる場合、そのトピックの存在が考慮されなくなり、電力予測の精度が低下するおそれがある。そこで処理部12は、トピックごとの重みを用いた計算式と、トピックごとの重みを用いない補正無し計算式との一方を選択して、ジョブ情報の類似度を計算してもよい。例えば処理部12は、第1ジョブのジョブ情報に含まれるトピックの重みに応じて、トピックごとの重みを用いた計算式を用いるのか、トピックごとの重みを用いない補正無し計算式を用いるのかを判定する。そして処理部12は、判定結果に応じて、重みを用いた計算式または重みを用いない補正無し計算式を用いてジョブ情報の類似度を計算する。これにより、第1ジョブのトピック分布が出現頻度の低いトピックを含む場合における電力予測の精度劣化を抑止できる。
【0032】
また処理部12は、消費電力情報の類似度を計算する際、例えば第1ジョブとのジョブ情報の類似度が高い方から所定数の第2ジョブについて、消費電力情報の類似度を計算してもよい。元々ジョブ情報の類似度が類似していない第2ジョブについては、ジョブ情報の類似度の計算式の補正の根拠として利用するには不適切である。例えばジョブ情報の類似度が類似していない第2ジョブの電力波形が第1ジョブの電力波形と類似していたとしても、電力波形が類似している要因はジョブ情報の類似性に表れていない。そのため、ジョブ情報の類似度が高い方から所定数の第2ジョブについて、消費電力情報の類似度を計算することで、計算量を減らすことができるとともに、ジョブ情報の類似度の計算式が不適切に補正されることを抑止できる。
【0033】
なお、処理部12は、第1ジョブとのジョブ情報の類似度が閾値以上の第2ジョブについて、消費電力情報の類似度を計算するようにしてもよい。類似度が閾値以上の第2ジョブについて、消費電力情報の類似度を計算することで、類似度が高い第2ジョブが多数になったときに、消費電力が最も類似の第2ジョブが、消費電力情報の類似度の計算対象から漏れてしまうことを抑止できる。
【0034】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、HPCシステムに投入するジョブの消費電力を予測し、システム全体の消費電力を適切に管理するものである。
【0035】
図3は、第2の実施の形態のシステム構成例を示す図である。HPCシステム30は、複数の計算ノード31,32,・・・を有している。計算ノード31,32,・・・は、投入されたジョブを実行するコンピュータである。
【0036】
HPCシステム30内の計算ノード31,32,・・・は、HPC運用管理サーバ200に接続されている。HPC運用管理サーバ200は、HPCシステム30の運用管理を行うコンピュータである。例えばHPC運用管理サーバ200は、ジョブ実行時の計算ノード31,32,・・・の消費電力の時系列変化を監視する。またHPC運用管理サーバ200は、実行待ちのジョブについて、管理サーバ100からのジョブの電力消費パターンの予測結果を受信し、例えばシステムの消費電力が均一化されるように、ジョブスケジューリングを行う。そしてHPC運用管理サーバ200は、作成したジョブの実行スケジュールに従って、計算ノード31,32,・・・にジョブの実行を指示する。
【0037】
HPC運用管理サーバ200は、ネットワーク20を介して端末装置41,42,・・・および管理サーバ100に接続されている。端末装置41,42,・・・は、HPCシステム30によるジョブの実行を希望するユーザが使用するコンピュータである。端末装置41,42,・・・は、ユーザの入力に基づいてHPCシステム30に実行させるジョブの内容を示すジョブ情報を生成し、生成したジョブ情報を含むジョブ投入要求を、HPC運用管理サーバ200に送信する。
【0038】
管理サーバ100は、HPC運用管理サーバ200によるHPCシステム30の消費電力の管理を支援するコンピュータである。管理サーバ100は、HPC運用管理サーバ200から、実行するジョブのジョブ情報および実行が終了したジョブの電力消費パターンを示す電力情報を取得する。管理サーバ100は、HPC運用管理サーバ200から取得した情報に基づいて、実行待ちのジョブの電力消費パターンを予測する。そして管理サーバ100は、HPC運用管理サーバ200に、ジョブの電力消費パターンの予測結果を送信する。
【0039】
図4は、管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0040】
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0041】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0042】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0043】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0044】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0045】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0046】
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0047】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0048】
管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。計算ノード31,32,・・・、HPC運用管理サーバ200、および端末装置41,42,・・・も、管理サーバ100と同様のハードウェアで実現できる。なお計算ノード31,32,・・・は、計算ノード31,32,・・・同士で高速通信を行うためのインターコネクト用インタフェースをさらに有している。図1に示した第1の実施の形態のジョブ電力予測装置10も、図4に示した管理サーバ100と同様のハードウェアにより実現することができる。
【0049】
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0050】
図3に示すシステムにおいて、HPC運用管理サーバ200と管理サーバ100とが連係動作し、ジョブ単位での電力消費パターンの予測結果に基づく適切な電力管理が行われる。例えば管理サーバ100が、新たに実行する新規投入ジョブを実行した場合の消費電力の時系列変化を予測する。消費電力の時系列変化は、例えば電力波形で表される。HPC運用管理サーバ200は、新規投入ジョブの電力波形に基づいて、例えばHPCシステム30の最大消費電力が低く抑えられるように、ジョブスケジューリングを行う。
【0051】
管理サーバ100は、実行済みのジョブのうちの新規投入ジョブに類似するジョブの電力波形を、新規投入ジョブの電力波形と予測することができる。そのために、管理サーバ100は、まず例えば新規投入ジョブに類似するジョブを特定する。ジョブ間の類似度は、ジョブの実行要求を入力したユーザのユーザID、ジョブの種別、ジョブ実行時の並列度(何台の計算ノードで並列実行させるか)などの、ジョブのステイタスを示す情報(以下、ジョブステイタス情報と呼ぶ)の類似度で表すことができる。ジョブステイタス情報は、第1の実施の形態で説明したジョブ情報の一例である。
【0052】
各ジョブのジョブステイタス情報は、ジョブのステイタスに関する項目の項目名とその項目の値との組を複数含む文書である。文書間の類似度の算出に利用可能な技術として、潜在的ディリクレ配分法(LDA:Latent Dirichlet Allocation)推定モデルがある。例えば管理サーバ100は、LDA推定モデルを用いて、各ジョブのジョブステイタス情報に表されるトピック分布を算出し、ジョブ間のトピック分布の類似度をジョブの類似度とする。
【0053】
LDA推定モデルは、トピックモデルの一種である。トピックモデルは、文書が複数の潜在的なトピックから確率的に生成される(文書内の各単語はあるトピックが持つ確率分布に従って出現する)と仮定したモデルである。LDA推定モデルを用いると、分析対象となる文書データの集合から、各文書に表されているトピックの混合比率を推定することができる。
【0054】
各文書のトピック分布の生成には、多項分布の共役事前分布であるディリクレ分布(dirichlet distribution)が利用される。なお、ディリクレ分布は、以下の式で表される。
【0055】
【数1】
【0056】
式(1)は、パラメータであるベクトルαの元で、ベクトルxが生じる確率を示している。Γはガンマ関数である。ベクトルxは、確率変数を示す実数ベクトルである。Kはトピック数である。kはトピックのインデックスである。
【0057】
管理サーバ100は、トレーニングデータセットであるジョブステイタス情報群から、各文章(ジョブステイタス情報)にどんな単語が出現するかをそれぞれ調べる。そして管理サーバ100は、同じ文章内にどの単語が多く出現するかカウントすることで、同じ文章内に出現する確立が高い単語をグルーピングし、これをトピックとする。
【0058】
具体的には、管理サーバ100は、各文書および各単語について以下の式(2)により、確率を計算する。
【0059】
【数2】
【0060】
Nは文書集合の全単語数である。Vは全語彙数(全文書集合に含まれる単語の種類数)である。dは文書のインデックスである。nは単語のインデックスである。vは語彙のインデックスである。wはある1つの単語である。zはある1つのトピックである。バックスラッシュは、集合からの差を示す。βは、単語分布のパラメータである。式(2)は、文書dにおける単語wd,nについてのトピックzd,nのサンプリング式である。
【0061】
管理サーバ100は、式(2)で得られる確率が高い(例えば所定値以上の)単語の組み合わせをトピックとする。すなわち管理サーバ100は、LDA推定モデルを用いた学習の結果、トピックに属する単語の集合を得る。
【0062】
管理サーバ100は、各ジョブのジョブステイタス情報に含まれる単語が属するトピックに基づいて、ジョブステイタス情報のトピック分布を計算する。管理サーバ100は、各ジョブのジョブステイタス情報に基づいて生成されたトピック分布をジョブ間で比較して、ジョブ間の類似度を算出することができる。
【0063】
例えば管理サーバ100は、新規投入ジョブに類似するジョブを、トピック分布の類似度によって推定する。例えば管理サーバ100は、トピック分布間のコサイン類似度を計算することで、ジョブの類似度を算出する。
【0064】
図5は、類似度の算出例を示す図である。管理サーバ100は、ジョブごとにトピック分布を算出する。トピック分布は、トピックのインデックスを要素番号とし、文書(ジョブステイタス情報)内での該当トピックの出現頻度の値を要素とするベクトルで表すことができる。管理サーバ100は、新規投入ジョブのトピック分布を示すベクトルと、実行が終了しているジョブのトピック分布を示すベクトルとのコサイン類似度を算出し、ジョブ間の類似度とする。これにより、比較対象のジョブそれぞれのトピック分布に共通のトピックが多く含まれるほど、類似度が高くなる。
【0065】
なお管理サーバ100は、新規投入ジョブのトピック分布に含まれる各トピックと、実行が終了しているジョブのトピック分布に含まれる各トピックとの類似度を算出し、トピック間の類似度に基づいて、ジョブ分布間の類似度を算出してもよい。例えば管理サーバ100は、比較対象のトピック分布それぞれに含まれるトピック間の類似度の合計を、トピック分布の類似度とする。
【0066】
管理サーバ100は、トピック間の類似度Skk'を、例えばベクトル空間法で計測することができる。ベクトル空間法は,語彙空間Vにおけるトピックごとの語彙の出現頻度ベクトルの余弦で定義される。k番目のトピックとk’番目のトピック間の類似度を式で表すと、以下の式で表される。
【0067】
【数3】
【0068】
kは、k番目のトピックの出現頻度ベクトルである。nk'は、k’番目のトピックの出現頻度ベクトルnkである。
このように、LDA推定モデルを用いて各ジョブのトピック分布を計算し、トピック分布間の類似度によって、ジョブの類似度を算出することができる。そして、管理サーバ100は、すでに実行が終了しているジョブのうち、新規投入ジョブに最も類似するジョブの電力波形を、新規投入ジョブの電力波形として予測することができる。
【0069】
ただし、新規投入ジョブの実際の電力波形が、トピック分布が最も類似するジョブの電力波形と異なる場合がある。
図6は、ジョブステイタス情報が類似するジョブそれぞれの電力波形の一例を示す図である。図6の例には、ジョブID「6960998」のジョブと、ジョブID「6958268」のジョブとの比較結果が示されている。
【0070】
ジョブID「6960998」のジョブのジョブステイタス情報91と、ジョブID「6958268」のジョブのジョブステイタス情報92とは、多くの単語が共通しており、互いに類似する。すなわちLDA推定モデルを用いてトピック分布を生成すると、類似度の高いトピック分布が生成される。
【0071】
各ジョブを実行した場合の消費電力の電力波形93,94を比較すると、大きく異なる。すなわちジョブID「6958268」のジョブは、実行終了に30秒を要し、最大で50kw程度の電力を消費している。それに対して、ジョブID「6960998」のジョブは、5秒以内に実行が終了しており、その間の消費電力も2kw程度と少ない。
【0072】
このように、単純にLDA推定モデルだけを用いると、ジョブステイタス情報は類似するものの、電力波形は異なるジョブがある場合に、誤った電力波形の予測を行う可能性がある。そこで管理サーバ100は、新規投入ジョブとトピック分布が類似する上位所定数のジョブの電力波形と、新規投入ジョブの実行後に採取した電力波形とを比較する。そして管理サーバ100は、新規投入ジョブと類似する電力波形を有するジョブのトピック分布を用いて、電力波形が類似するジョブの類似度を上げるように修正した補正用LDA推定モデルを生成する。例えば管理サーバ100は、式(2)を用いた計算において、電力波形が類似するジョブのトピック分布に示されるトピックの重みを大きくするように、重み付けを行う。例えば管理サーバ100は、各トピックに関する単語の生成確率の計算時に、式(2)のβの値を該当トピックの重みに応じて変更する。βの値を大きくすることで、該当トピックに関する各単語の生成確率が増加し、該当トピックを表す単語の量が増える。すると、各文書のトピック分布を生成した際に、該当トピックの値が大きくなる。
【0073】
以下、補正用LDAモデルを用いたジョブの消費電力を予測し、ジョブの消費電力に基づいたHPCの電力管理方法について詳細に説明する。
図7は、電力管理のための各装置の機能を示すブロック図である。HPC運用管理サーバ200は、DB210、タイマ部220、情報取得部230、ジョブスケジューリング部240、および制御指示部250を有する。
【0074】
DB210は、実行するジョブのステイタスを示すジョブステイタス情報や、実行したジョブの消費電力の時系列変化を示すジョブ電力消費情報を記憶する。
タイマ部220は、HPCシステム30からジョブごとの電力消費情報を収集するタイミングを管理する。例えばタイマ部220は、一定の時間間隔で、ジョブ電力消費情報の収集を情報取得部230に指示する。
【0075】
情報取得部230は、タイマ部220からの指示に応じて、HPCシステム30から、HPCシステム30での実行が終了したジョブの時系列電力データを取得する。情報取得部230は、取得した電力消費情報を、DB210に格納する。
【0076】
管理サーバ100は、DB110、タイマ部120、メトリクス収集部130、LDA学習部140、LDA予測値計算部150、予測結果送信部160、およびLDA重み更新部170を有する。
【0077】
DB110は、ジョブごとの電力消費パターンの予測に使用する情報を記憶する。タイマ部120は、未実行のジョブの電力消費パターンの予測タイミングを管理する。例えばタイマ部120は、一定の時間間隔で、HPC運用管理サーバ200からの情報収集を、メトリクス収集部130に指示する。またタイマ部120は、一定の時間間隔で、電力消費パターンの予測を、LDA予測値計算部150に指示する。
【0078】
メトリクス収集部130は、タイマ部120の指示に応じて、HPC運用管理サーバ200から情報を収集する。例えばメトリクス収集部130は、実行待ちのジョブおよび実行が終了したジョブのジョブステイタス情報と、実行が終了したジョブの電力消費パターンを示す時系列電力データとを、HPC運用管理サーバ200から取得する。メトリクス収集部130は、取得した情報をDB110に格納する。
【0079】
LDA学習部140は、ジョブ情報に基づいて、LDA推定モデルを生成する。例えばLDA学習部140は、複数のジョブのジョブ情報に含まれる単語を解析し、トピックごとのグループに単語を分類する。LDA学習部140は、学習結果をDB110に格納する。
【0080】
LDA予測値計算部150は、LDA推定モデルに基づいて、実行待ちのジョブの電力消費パターンを予測する。例えばLDA予測値計算部150は、予測対象のジョブとジョブ情報が類似する、すでに実行が終了したジョブを特定し、特定したジョブの電力消費パターンを、予測対象のジョブの電力消費パターンとして予測する。LDA予測値計算部150は、例えば予測結果をDB110に格納する。
【0081】
予測結果送信部160は、実行待ちのジョブの電力消費パターンの予測結果を、HPC運用管理サーバ200に送信する。
LDA重み更新部170は、LDA推定モデルの生成時に使用するトピックごとの重みを更新する。例えばLDA重み更新部170は、新たに実行が終了したジョブを対象ジョブとし、対象ジョブとジョブ情報の類似する一定数の類似ジョブのうち、電力消費パターンが対象ジョブと最も類似する類似ジョブを特定する。そしてLDA重み更新部170は、特定した類似ジョブのジョブ情報に基づくトピック分布を求め、そのトピック分布に示されるトピックの重みを大きくする。LDA重み更新部170は、更新後の各トピックの重みをDB110に格納する。
【0082】
なお、図7に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図7に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0083】
図8は、管理サーバのDBに格納される情報の一例を示す図である。図8の例では、DB110には、ジョブ情報111、ジョブ消費電力情報112、学習結果情報113、トピック重み情報114、および類似ジョブ情報115が格納されている。
【0084】
ジョブ情報111は、ジョブごとのジョブ名などのジョブステイタス情報である。ジョブ消費電力情報112は、実行が終了したジョブの時系列の消費電力に関する情報である。学習結果情報113は、LDAによる学習結果を示す情報である。トピック重み情報114は、トピックごとの重み値を示す情報である。類似ジョブ情報115は、消費電力予測対象のジョブに類似するジョブを示す情報である。
【0085】
図9は、ジョブ情報の一例を示す図である。ジョブ情報111には、例えばジョブごとのジョブステイタス情報111a,111b,・・・が含まれている。ジョブステイタス情報111a,111b,・・・には、ジョブID、ジョブの名称、ジョブの実行を要求しているユーザのユーザ名、該当ユーザが属するグループのグループIDなど、ジョブの実行に関連する各種情報が含まれる。
【0086】
図10は、ジョブ消費電力情報の一例を示す図である。ジョブ消費電力情報112には、例えば実行が終了したジョブごとの時系列電力データ112a,112b,・・・が格納されている。時系列電力データ112a,112b,・・・には、例えばジョブIDに対応づけて、実行時間ごとの消費電力が示されている。実行時間は、電力測定時における、ジョブの実行を開始してからの経過時間である。電力測定は、例えば所定の時間間隔で各計算ノードにより行われる。消費電力は、ジョブの実行による、計算ノードの消費電力の増加量である。
【0087】
図11は、学習結果情報の一例を示す図である。学習結果情報113には、例えば、ジョブ情報に含まれる単語を複数のトピックに分類するための推定モデルごとの学習結果113a,113bが含まれている。学習結果113aは、LDA推定モデルによる学習結果である。学習結果113bは、補正用LDA推定モデルによる学習結果である。補正用LDA推定モデルは、LDA推定モデルにトピックごとの重み付けを行ったものである。学習結果113a,113bには、トピックを示すトピック番号に対応づけて、そのトピックに属する単語が登録されている。
【0088】
図12は、トピック重み情報の一例を示す図である。トピック重み情報114には、トピックを示すトピック番号ごとに、そのトピックの重みが設定されている。トピックの重みは、例えば、LDA重み更新部170によって、新たなジョブの実行が終了するごとに更新される。各トピックの重みは、例えば該当トピックに関する式(2)の計算時のβの値として用いられる。
【0089】
図13は、類似ジョブ情報の一例を示す図である。例えば類似ジョブ情報115には、推定モデルごとの学習結果113a,113bに基づいて判定された、消費電力の予測対象である対象ジョブに対する類似ジョブ115aまたは類似ジョブリスト115bが含まれる。例えば類似ジョブ115aには、LDA推定モデルの学習結果113aに基づいて判定された、対象ジョブに最も類似する1つのジョブのジョブIDが示される。また類似ジョブリスト115bには、補正用LDA推定モデルの学習結果113aに基づいて判定された、対象ジョブに類似する所定数のジョブのジョブIDが示される。
【0090】
次に、LDA推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法について、具体的に説明する。
図14は、LDA推定モデルと補正用推定モデルとを用いたジョブの消費電力予測方法の一例を示す図である。管理サーバ100は、新規投入ジョブ51を検知すると、新規投入ジョブ51のジョブ情報に示されるトピックの出現頻度に応じて、LDA推定モデルまたは補正用LDA推定モデルの学習結果に基づいて、実行が終了したジョブの中から類似ジョブを特定する。例えば管理サーバ100は、新規投入ジョブ51のトピックの、ジョブ全体における出現頻度が所定値以上の場合、補正用LDA推定モデルの学習結果を用いる。また管理サーバ100は、新規投入ジョブ51のトピックの、ジョブ全体における出現頻度が所定値未満の場合、LDA推定モデルの学習結果を用いる。
【0091】
管理サーバ100は、新規投入ジョブ51に最も類似するジョブを特定し、そのジョブの消費電力を示す電力波形を、新規投入ジョブ51の消費電力の電力波形として予測する。また管理サーバ100は、補正用LDA推定モデルの学習結果を用いて類似ジョブを判定した場合、新規投入ジョブ51の実行終了後に、その新規投入ジョブ51の時系列電力データを取得し、電力波形を生成する。次に管理サーバ100は、新規投入ジョブ51に類似する所定数のジョブそれぞれの電力波形と、新規投入ジョブ51の電力波形とを比較する。
【0092】
そして、管理サーバ100は、電力波形が最も類似するジョブを特定し、該当ジョブのトピックに基づいて、トピックの重みを更新する。例えば管理サーバ100は、特定したジョブのジョブ情報に示されるトピックの重みの値を所定量だけ増加させる。
【0093】
このように管理サーバ100は、ジョブ実行終了後に出力されるそのジョブの電力波形と、ジョブ情報が類似する所定数のジョブの電力波形とを比較し、最も近い電力波形を持つジョブ情報のトピックを元に、トピックの重みを変更する。これにより、補正用LDA推定モデルの学習結果を用いた類似ジョブの予測精度が向上する。
【0094】
なお、補正用LDA推定モデルでは、新規投入ジョブ51と電力波形が類似するジョブのトピックの重みが増加する。この処理が繰り返されると、出現頻度が高いトピックの重みの値が大きくなっていき、出現頻度が低いトピックの重みとの差が大きくなる。その結果、新規投入ジョブ51のトピックとして出現頻度の低いトピックが含まれていた場合、類似判断においてそのトピックの影響が適切に反映されなくなってしまい、類似判断の精度の劣化を招く。そこで、管理サーバ100は、新規投入ジョブに含まれるトピックの出現頻度が低い場合には、LDA推定モデルの学習結果を用いて類似ジョブを判断する。これにより、出現頻度が低いトピックを有するジョブに関する予測精度の劣化を抑止することができる。
【0095】
以下、ジョブの消費電力予測処理の手順について、詳細に説明する。
図15は、消費電力予測処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
【0096】
[ステップS101]タイマ部120は、前回の消費電力予測処理の実行からの経過時間を計測し、所定時間が経過した場合、情報収集の開始をメトリクス収集部130に指示する。メトリクス収集部130は、HPC運用管理サーバ200から情報を収集する。例えばメトリクス収集部130は、HPC運用管理サーバ200内のDB210から、各ジョブのジョブステイタス情報と実行が終了した各ジョブの時系列電力データとを取得する。例えばジョブステイタス情報には、該当ジョブが実行待ちの新規投入ジョブなのか否かを示す情報が含まれる。メトリクス収集部130は、取得した情報をDB110に格納する。
【0097】
[ステップS102]LDA学習部140は、取得したジョブステイタス情報に示されるジョブのうち新規投入ジョブを識別する。例えばLDA学習部140は、新規投入ジョブのジョブIDを、消費電力予測対象として抽出する。
【0098】
[ステップS103]LDA学習部140とLDA予測値計算部150が連携して、新規投入ジョブのジョブ情報に類似するジョブ情報を有するジョブ(類似ジョブ)を抽出する。類似ジョブ抽出処理の詳細については後述する(図16参照)。
【0099】
[ステップS104]LDA予測値計算部150は、新規投入ジョブのトピック分布に示されるトピックの重みを加味した値の平均を算出する。例えばLDA予測値計算部150は、補正用LDA推定モデルに基づいて、新規投入ジョブのトピック分布を算出する。トピック分布には、新規投入モデルのジョブ情報に示される複数のトピックについて、該当トピックの情報がどの程度含まれるかが数値で示される。算出された数値には、トピックごとの重みが反映されており、重みが大きいトピックほど高い数値となる。
【0100】
[ステップS105]LDA予測値計算部150は、すべてのジョブのトピック分布に示されるトピックの重みを加味した値の平均を算出する(すべてのジョブのすべてのトピックの平均)。
【0101】
[ステップS106]LDA予測値計算部150は、ステップS104で算出した新規投入ジョブについての平均値と、ステップS105で算出したすべてのジョブについての平均値とを比較する。そしてLDA予測値計算部150は、新規投入ジョブについての平均値がすべてのジョブについての平均値より大きければ、処理をステップS108に進める。またLDA予測値計算部150は、新規投入ジョブについての平均値がすべてのジョブについての平均値以下であれば、処理をステップS107に進める。
【0102】
[ステップS107]LDA予測値計算部150は、LDA推定モデルに基づいて、新規投入ジョブのトピック分布と最も類似するトピック分布を有するジョブを特定する。そしてLDA予測値計算部150は、特定したジョブの電力波形を、新規投入ジョブの電力波形の予測結果として出力する。予測結果送信部160は、LDA予測値計算部150が出力した予測結果を、HPC運用管理サーバ200に送信する。LDA予測値計算部150は、その後、処理をステップS109に進める。
【0103】
[ステップS108]LDA予測値計算部150は、補正用LDA推定モデルに基づいて、新規投入ジョブのトピック分布と最も類似するトピック分布を有するジョブを特定する。そしてLDA予測値計算部150は、特定したジョブの電力波形を、新規投入ジョブの電力波形の予測結果として出力する。予測結果送信部160は、LDA予測値計算部150が出力した予測結果を、HPC運用管理サーバ200に送信する。
【0104】
[ステップS109]LDA重み更新部170は、重み更新処理を行う。重み更新処理の詳細は後述する(図17参照)。
このようにして、LDA推定モデルまたは補正用LDA推定モデルに基づいて新規投入ジョブの消費電力を予測できると共に、補正用LDA推定モデルに適用するトピックごとの重みを更新することができる。
【0105】
次に、類似ジョブの抽出処理について詳細に説明する。
図16は、類似ジョブ抽出処理の手順の一例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
【0106】
[ステップS111]LDA学習部140は、すべてのジョブのジョブステイタス情報内の出現単語を抽出する。
[ステップS112]LDA学習部140は、LDA推定モデルを用いて単語をトピックに分類する。すなわちLDA学習部140は、前述の式(2)を用いて、共通のジョブステイタス情報に出現する確率の高い単語同士を同じグループにグルーピングし、生成されたグループをトピックとする。LDA学習部140は、生成したトピックと、各トピックに属する単語のリストとを、学習結果としてDB110に格納する。
【0107】
[ステップS113]LDA予測値計算部150は、LDA推定モデルによる学習結果に基づいて、すべてのジョブについて、該当ジョブのジョブステイタス情報に含まれるトピック分布を算出する。
【0108】
[ステップS114]LDA予測値計算部150は、LDA推定モデルによる学習結果から得られたトピック分布に基づいて、新規投入ジョブのトピック分布と、既に実行が終了している他のジョブのトピック分布との類似度を計算する。
【0109】
[ステップS115]LDA予測値計算部150は、ステップS114の類似度の計算において、新規投入ジョブと最も類似するジョブの情報(例えばジョブID)を、DB110に格納する。
【0110】
[ステップS116]LDA学習部140は、補正用LDA推定モデルを用いて単語をトピックに分類する。すなわちLDA学習部140は、トピックに応じて単語の生成確率を得る際に、前述の式(2)のβの値にトピックごとの重みを設定する。そしてLDA学習部140は、共通のジョブステイタス情報に出現する確率の高い単語同士を同じグループにグルーピングし、生成されたグループをトピックとする。LDA学習部140は、生成したトピックと、各トピックに属する単語のリストとを、学習結果としてDB110に格納する。
【0111】
[ステップS117]LDA予測値計算部150は、補正用LDA推定モデルによる学習結果に基づいて、すべてのジョブについて、該当ジョブのジョブステイタス情報に含まれるトピック分布を算出する。
【0112】
[ステップS118]LDA予測値計算部150は、補正用LDA推定モデルによる学習結果から得られたトピック分布に基づいて、新規投入ジョブのトピック分布と、既に実行が終了している他のジョブのトピック分布との類似度を計算する。
【0113】
[ステップS119]LDA予測値計算部150は、ステップS118の類似度の計算において、新規投入ジョブと類似する上位所定数(例えば10個)のジョブの情報(例えばジョブID)を、DB110に格納する。
【0114】
このようにして、LDA推定モデルと補正用LDA推定モデルとのそれぞれに基づいてジョブ間の類似度が計算され、上位のジョブが抽出される。
次に重み更新処理について詳細に説明する。
【0115】
図17は、重み更新処理の手順の一例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS121]LDA重み更新部170は、新規投入ジョブの時系列電力データをDB110から取得する。
【0116】
[ステップS122]LDA重み更新部170は、補正用LDA推定モデルによる類似ジョブの出力結果(類似ジョブリスト)をDB110から取得する。
[ステップS123]LDA重み更新部170は、類似ジョブの時系列電力データを、DB110から取得する。
【0117】
[ステップS124]LDA重み更新部170は、新規投入ジョブと類似ジョブとの電力波形の類似度を算出する。電力波形の類似度は、例えば動的時間伸縮法(DTW:Dynamic Time Warping)により計算することができる。
【0118】
DTWにより電力波形の類似度を計算する場合、LDA重み更新部170は、横軸に実行時間、縦軸に電力を示すグラフ上に、比較対象の2つの電力波形を示す2つの折れ線グラフを定義する。折れ線グラフは、実行時間に応じた電力を示す点(測定点)を結ぶことで生成される。
【0119】
LDA重み更新部170は、2つの電力波形上の時系列の各測定点の値の距離を総当りで比較していき、時系列同士の距離の値が最も小さくなるような関係(ワーピングパス)を見つける。そしてLDA重み更新部170は、ワーピングパスに対応する距離を、電力波形間の類似度とする。
【0120】
DTWは、実行時間が違うジョブ間でも評価できるという利点がある。すなわち相関係数などを用いて類似度を算出すると、実行時間が大きく異なるジョブ間の類似度が正しく評価できない。それに対して、DTWは、ジョブの実行時間が大きく異なっていても、類似度を正しく評価できる。
【0121】
[ステップS125]LDA重み更新部170は、新規投入ジョブに対して電力波形が最も類似するジョブのトピック分布を、補正用LDA推定モデルで計算する。
[ステップS126]LDA重み更新部170は、算出されたトピック分布に示される全てのトピックの重みを大きくする。例えばLDA重み更新部170は、該当トピックの重みの値に「0.01」を加算する。
【0122】
このように、電力波形が類似するジョブのトピック分布に含まれるトピックの重みの値を大きくすることで、該当トピックを含むジョブほど、トピック分布の類似度判定の際に類似度の値が高くなる。すなわち、新規投入ジョブと電力波形が類似するジョブについて、LDA推定モデルでトピック分布の類似度を計算した場合より、補正用LDA推定モデルでトピック分布の類似度を計算した場合の方が、類似度が高くなる。その結果、新規投入ジョブと類似する電力波形を有するジョブを、正しく特定することが可能となる。
【0123】
新規投入ジョブの電力を正確に予測できることで、HPC運用管理サーバ200では、例えばHPCシステム30全体の消費電力を平準化させるように、ジョブスケジューリングを行うことができる。消費電力を平準化させることで、HPCシステム30の瞬間最大消費電力を低減することができる。これにより、例えばHPCシステム30を運用するために用意する電力設備の規模の縮小が可能となる。
【0124】
また、ジョブごとの消費電力を正確に予測できることで、オンデマンド料金制度に基づいて電力料金の契約をしていた場合に、HPCシステム30の消費電力が契約電力を超えないように適切に制御することができる。
【0125】
図18は、オンデマンド料金制度を説明する図である。図18には、HPCシステム30全体の消費電力を示す電力波形61のグラフを示している。グラフの横軸がHPCシステム30の稼働時間であり、縦軸が消費電力である。電力波形61で示される消費電力の時系列変化の所定期間(例えば30分)の平均値62が、該当期間の電力使用量となる。図18の例では、瞬間最大消費電力は150kwであるが、電力使用量は100kwと換算される。
【0126】
ここでオンデマンド料金制度では、「電気料金=契約電力料金+電力料金単価×1ヶ月の電力使用量」という計算式で、各月の電力料金が算出される。HPCシステム30では膨大な電力を消費するため、契約電力料金が高額になる。契約電力料金は前年(過去1年間)で最も電力を使用した30分間の電力使用量(最大需要電力)に応じて決定される。そのため30分間単位の時間帯で一度でも契約電力を超過すれば、次年度の電力料金が増加する。
【0127】
新規投入ジョブの消費電力を正確に予測することができれば、HPC運用管理サーバ200は、以後の30分の時間帯における電力使用量が、過去1年の最大需要電力を超えそうか否かを適切に判断できる。HPC運用管理サーバ200は、過去1年の最大需要電力を超えそうと判断した場合、新規投入ジョブの実行開始を遅らせることで、電力使用量が過去1年の最大需要電力を超えることを抑止できる。その結果、電力料金が抑えられる。
【0128】
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、新規投入ジョブとの間のトピック分布の類似度が所定値以上のジョブについて、重み更新処理の際の電力波形の比較対象とするものである。第3の実施の形態は、類似ジョブ抽出処理の詳細が、第2の実施の形態と異なる。
【0129】
図19は、第3の実施の形態における類似ジョブ抽出処理の手順の一例を示すフローチャートである。図19に示す処理のうち、ステップS201~S208は、図16に示した第2の実施の形態の類似ジョブ抽出処理のステップS111~S118と同様である。第2の実施の形態と異なるステップS209の処理は以下の通りである。
【0130】
[ステップS209]LDA予測値計算部150は、ステップS208の類似度の計算において、新規投入ジョブとの類似度が閾値以上のジョブの情報(例えばジョブID)を、DB110に格納する。
【0131】
このようにして、新規投入ジョブとの間のトピック分布の類似度が閾値以上のジョブのジョブIDが、DB110に格納される。そして重み更新処理では、ステップS209でDB110に格納したジョブIDが類似ジョブとして抽出され、該当ジョブの電力波形と新規投入ジョブの電力波形との類似度が計算される。
【0132】
トピック分布の類似度が閾値以上のジョブを類似ジョブとすることで、類似ジョブが多数存在した場合であっても、新規投入ジョブと類似する電力波形を有するジョブが、類似ジョブから漏れることを抑止できる。
【0133】
[その他の実施の形態]
第2の実施の形態ではジョブ情報の類似度を、トピックモデルを用いて計算しているが、管理サーバ100は、他の方法で類似度を計算してもよい。例えば管理サーバ100は、各ジョブ情報の単語の出現頻度を示すベクトル間の類似度(例えばコサイン類似度)を、ジョブ情報間の類似度とすることもできる。
【0134】
また第2の実施の形態では重みの値を式(2)のβに設定しているが、管理サーバ100は他の方法で、各トピックの重みをトピック分布に反映してもよい。例えば管理サーバ100は、トピック分布における各トピックの出現頻度を示す値に、重みの値を乗算することで、重み付けを行ってもよい。
【0135】
さらに第2の実施の形態では、管理サーバ100の機能とHPC運用管理サーバ200の機能とを分けているが、例えばHPC運用管理サーバ200が、管理サーバ100の機能を有していてもよい。
【0136】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0137】
1 HPCシステム
2,3a,3b,・・・ ジョブ情報
4a,4b,・・・ 消費電力情報
10 ジョブ電力予測装置
11 記憶部
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19