JP2020129314A - ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 - Google Patents

ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 Download PDF

Info

Publication number
JP2020129314A
JP2020129314A JP2019022253A JP2019022253A JP2020129314A JP 2020129314 A JP2020129314 A JP 2020129314A JP 2019022253 A JP2019022253 A JP 2019022253A JP 2019022253 A JP2019022253 A JP 2019022253A JP 2020129314 A JP2020129314 A JP 2020129314A
Authority
JP
Japan
Prior art keywords
job
power consumption
period
prediction
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019022253A
Other languages
English (en)
Other versions
JP7177350B2 (ja
Inventor
成人 鈴木
Shigeto Suzuki
成人 鈴木
美智子 白神
Michiko Shirakami
美智子 白神
晃一 白幡
Koichi Shirahata
晃一 白幡
浩史 遠藤
Hiroshi Endo
浩史 遠藤
裕幸 福田
Hiroyuki Fukuda
裕幸 福田
拓司 山本
Takuji Yamamoto
拓司 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019022253A priority Critical patent/JP7177350B2/ja
Priority to US16/752,086 priority patent/US11392475B2/en
Publication of JP2020129314A publication Critical patent/JP2020129314A/ja
Application granted granted Critical
Publication of JP7177350B2 publication Critical patent/JP7177350B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ジョブの消費電力の予測精度を向上させる。【解決手段】ジョブ電力予測装置10は、第1ジョブ2aの実行開始から終了までの時間を、複数の期間に分割する。次にジョブ電力予測装置10は、第1ジョブ2aの消費電力の実測値である第1消費電力情報3に基づいて、各期間内での消費電力の時系列変化の周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する。次にジョブ電力予測装置10は、実行中の第2ジョブ2bについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得する。そしてジョブ電力予測装置10は、第2消費電力情報に基づいて、複数の期間のうちの、第2ジョブ2bの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第2ジョブ2bの消費電力を予測する。【選択図】図1

Description

本発明は、ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置に関する。
HPC(High Performance Computing)システムなどの大規模なコンピュータシステム(以下、単にシステムと呼ぶこともある)では大量の電力を消費する。そのためシステムを安定して稼働させるには、システムの適切な消費電力管理が重要となる。例えばシステムの消費電力を一定に保つことができれば、給電設備への負荷が少なくなる。
システムの消費電力を管理するためには、システムによる電力需要を事前に予測できることが望ましい。システム全体の電力を予測する方法として、ジョブ名などを含む過去のジョブ投入情報から類似するジョブを特定し、特定したジョブの消費電力を予測値として、以後投入されたジョブの消費電力を予測する方法が考えられる。
ジョブの実行開始後は、実行中のジョブのそれまでの消費電力の時系列変化(電力波形)に基づいて、以後のジョブの消費電力を回帰により予測することも可能である。実行中の各ジョブの消費電力の予測結果を積算することで、実行中の全ジョブの合計消費電力を得ることができる。
消費電力の予測に利用可能な技術として、例えばIT(Information Technology)システムから発生する種々のデータから相関関係を検出する検出装置が提案されている。また予測の対象の時系列データの扱い方に特徴を持たせて、予測精度の向上を図ったカオス時系列短期予測装置も提案されている。
国際公開第2014/184928号 特開平9−146915号公報
ジョブの消費電力の時系列変化には周期性がある場合がある。この場合、ジョブの消費電力を予測するコンピュータが、例えば、実行中のジョブの消費電力の時系列変化の周期を適切に捉えて各周期での電力波形を計算し、周期性を考慮して消費電力を予測することで、予測精度を向上させることができる。しかし、消費電力の時系列変化の周期が期間ごとに異なる場合があり、従来は、消費電力の時系列変化の周期が期間ごとに異なる場合における期間ごとの周期を適切に判断することができない。その結果、予測精度を向上させることが困難となっている。
1つの側面では、本件は、ジョブの消費電力の予測精度を向上させることを目的とする。
1つの案では、コンピュータに以下の処理を実行させるジョブ電力予測プログラムが提供される。
コンピュータは、第1ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報に示される、第1ジョブの実行開始から終了までの時間を、複数の期間に分割する。次にコンピュータは、第1消費電力情報に基づいて、複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出する。次にコンピュータは、第1消費電力情報に基づいて、複数の期間それぞれについて、算出した周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する。次にコンピュータは、実行中の第2ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得する。次にコンピュータは、第2消費電力情報に基づいて、複数の期間のうちの、第2ジョブの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第2ジョブの消費電力を予測する。
1態様によれば、ジョブの消費電力の予測精度が向上する。
第1の実施の形態に係るジョブ電力予測方法の一例を示す図である。 周期に応じた予測モデルの生成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 管理サーバのハードウェアの一構成例を示す図である。 電力管理のための各装置の機能を示すブロック図である。 管理サーバのDBに格納される情報の一例を示す図である。 ステイタス情報の一例を示す図である。 ジョブ消費電力情報の一例を示す図である。 分類データベースの一例を示す図である。 分析結果情報の一例を示す図である。 学習結果情報の一例を示す図である。 予測モデル精度情報の一例を示す図である。 ジョブのグルーピングの一例を示す図である。 時系列電力データの分類例を示す図である。 ジョブ実行前の電力の予測例を示す図である。 消費電力の実測値と予測値との比較例を示す図である。 学習モデル生成処理の概要を示す図である。 RNNについて説明する図である。 遅れ時間に応じたRNN用の学習データセットの一例を示す図である。 予測先の時刻までの時間が異なる複数の予測モデルの例を示す図である。 複数の予測モデルによる複数の測定点の消費電力の予測例を示す図である。 予測対象時刻の電力の予測に使用可能な予測モデルが複数ある例を示す図である。 予測モデル選定テーブルの一例を示す図である。 自己相関の相関係数を用いた周期の判定例を示す図である。 期間ごとの周期の算出例を示す第1の図である。 期間ごとの周期の算出例を示す第2の図である。 周期に応じた遅れ時間の例を示す図である。 グループ内の複数のジョブの消費電力データを用いた学習例を示す図である。 実行中のジョブの以後の消費電力の予測処理を示す図である。 消費電力予測処理の手順の一例を示すフローチャートである。 予測モデル生成処理の手順の一例を示すフローチャートである。 ジョブ強制停止処理の手順の一例を示すフローチャートである。 オンデマンド料金制度を説明する図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るジョブ電力予測方法の一例を示す図である。図1には、ジョブ電力予測装置10を用いて、ジョブ電力予測方法を実施した場合の例を示している。ジョブ電力予測装置10は、例えばジョブ電力予測方法の処理手順が記述されたジョブ電力予測プログラムを実行することにより、ジョブ電力予測方法を実施することができる。
ジョブ電力予測装置10は、HPCシステム1で実行させるジョブの消費電力を予測する。ジョブ電力予測装置10は、ジョブ電力予測方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えばジョブ電力予測装置10が有するメモリ、またはストレージ装置である。処理部12は、例えばジョブ電力予測装置10が有するプロセッサ、または演算回路である。
記憶部11は、第1ジョブ2aについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報3を記憶する。なお第1ジョブ2aは、例えば消費電力の予測対象となる第2ジョブ2bと消費電力の時系列変化の挙動が類似するジョブである。例えば第1ジョブ2aと第2ジョブ2bとが同じアプリケーションプログラムを使用していれば、消費電力の時系列変化の挙動が類似するものと考えられる。また第1ジョブ2aと第2ジョブ2bとの実行要求を出したユーザが同じであれば、第2ジョブ2bは、第1ジョブ2aと同じ演算・解析などの処理のために実行されるものと予想され、消費電力の時系列変化の挙動が類似するものと考えられる。さらに第1ジョブ2aと第2ジョブ2bとで参照するライブラリが同じであれば、実行する処理も類似していることが予想でき、消費電力の時系列変化の挙動が類似するものと考えられる。
処理部12は、第1ジョブ2aについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報3に示される、第1ジョブの実行開始から終了までの時間を、複数の期間に分割する(ステップS1)。次に処理部12は、第1消費電力情報3に基づいて、複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出する(ステップS2)。さらに処理部12は、第1消費電力情報3に基づいて、複数の期間それぞれについて、算出した周期に応じた時間分(例えば1周期分)の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成する(ステップS3)。その後、処理部12は、HPCシステム1において第2ジョブ2bの実行が開始されると、実行中の第2ジョブ2bについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得する(ステップS4)。そして処理部12は、第2消費電力情報に基づいて、複数の期間のうちの、第2ジョブ2bの実行開始から現在までの経過時間を包含する期間について生成された予測モデルを用いて、以後の第2ジョブ2bの消費電力を予測する(ステップS5)。処理部12は、予測した消費電力を、例えばHPCシステム1に送信する(ステップS6)。
このように、過去に実行した第1ジョブ2aの消費電力の時系列変化の周期を期間ごとに決定し、周期に応じた期間の実測値を用いて、第2ジョブ2bの以後の消費電力を予測することで、適切な期間の実測値に基づく正確な予測が可能となる。すなわち第2ジョブ2bの消費電力の時系列変化の期間ごとの周期性を考慮した期間ごとに適切な予測モデルを用いて消費電力を予測することで、第2ジョブ2bの実行途中で消費電力の時系列変化の周期が変わっても、消費電力を高精度に予測できる。
図2は、周期に応じた予測モデルの生成例を示す図である。例えば第1消費電力情報3において、第1ジョブ2aの実行開始から90分間は15分周期で消費電力が時系列変化し、その後、30分周期で消費電力が時系列変化したことが示されているものとする。またジョブの消費電力の測定間隔が5分間隔であるものとする。
この場合、処理部12は、最初の90分間の期間に応じて、過去15分の実測値(3点)を用いて以後の電力を予測する予測モデル4を生成する。また処理部12は、90分経過後の期間に応じて、過去30分の実測値(6点)を用いて以後の電力を予測する予測モデル5を生成する。例えば処理部12は、再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)を用いた学習結果を、予測モデル4,5とすることができる。
処理部12は、第2ジョブ2bの実行開始から90分までは、予測モデル4に第2ジョブ2bの消費電力の実測値を入力することで、以後の消費電力を予測する。また処理部12は、第2ジョブ2bの実行開始から90分経過後は、予測モデル5に第2ジョブ2bの消費電力の実測値を入力することで、以後の消費電力を予測する。このように期間ごとの適切な予測モデルを用いることで、消費電力の予測精度が向上する。
しかもジョブの実行期間を複数の期間に分割し、期間ごとに周期を算出しているため、消費電力の時系列変化の周期がジョブの実行途中で変わっても、期間ごとの適切な周期に基づいて高精度な予測が可能となる。
なお第2ジョブ2bと挙動が類似するジョブは、例えばステイタス情報に基づいて判定することができる。ステイタス情報は、例えばジョブ名、ジョブの実行を依頼したユーザの名称、ジョブの実行に使用するアプリケーションプログラムの名称、ジョブの実行時に参照するライブラリの名称などを含む情報である。
例えば処理部12は、複数の第1ジョブ2aおよび第2ジョブ2bを、ジョブのステイタス情報の類似性に基づいて1以上のグループに分類する。そして処理部12は、ユーザの名称、アプリケーションプログラムの名称、およびライブラリの名称のうちの1または複数の項目が一致するジョブを、同じグループに纏める。さらに処理部12は、周期の算出および予測モデルの生成を、グループごとに行う。そして処理部12は、第2ジョブ2bが属するグループ(所属グループ)について生成された予測モデルを用いて、第2ジョブ2bの消費電力を予測する。これにより、第2ジョブ2bと挙動が類似する第1ジョブ2aを正しく検出し、その第1ジョブ2aの消費電力に関する情報に基づいて、第2ジョブ2bの消費電力を精度よく算出することができる。
また処理部12は、予測先の時刻までの時間が異なる複数の予測モデルを生成してもよい。例えば5分先、10分先、15分先、・・・それぞれの消費電力を予測する予測モデルを生成することができる。処理部12は、予測先の時刻までの時間が異なる複数の予測モデルを生成した場合、予測対象時刻における消費電力を予測可能な複数の予測モデルの予測結果のうち、過去の予測実績によって算出された予測精度に応じて決定した予測モデルの予測結果を採用する。例えば複数の予測モデルのうち最も高精度な予測モデルの予測結果が採用される。このように複数の予測モデルのうち予測精度に応じて決定した予測モデルで予測することで、予測精度をさらに向上させることができる。
なお、消費電力の時系列変化の周期が、どのような頻度で変わるのかは、第1消費電力情報3を解析するまで分からない。また得られる周期の長さも第1消費電力情報3を解析するまで分からない。第1消費電力に示される第1ジョブ2aの実行期間を、最初から短い期間に細かく分割すると、各期間の長さがその期間における消費電力の時系列変化の1周期より短くなり、周期を求められない可能性がある。そこで処理部12は、最初は粗い単位で期間を分割(例えば2分割)し、周期性の検出を行いながら、分割数を少しずつ増やしていく。
例えば処理部12は、第1ジョブ2aの実行開始から終了までの時間を、周期が未確定の周期未確定期間の初期値として設定する。次に処理部12は、周期未確定期間が設定されるごとに、分割数を初期値から増加させながら周期未確定期間を繰り返し分割する。さらに処理部12は、周期が未確定の期間が分割されるごとに、分割された期間ごとの消費電力の時系列変化の予想周期を算出する。そして処理部12は、算出した予想周期が同じ複数の期間が存在する場合、算出した予想周期を該当期間の周期に確定すると共に、該当期間を周期確定期間とし、周期確定期間以外の期間を新たな周期未確定期間として設定する。
このように最初は少ない分割数で分割し、徐々に分割数を増加させることで、各期間の周期を確実に算出することが可能となる。しかも無駄に細かく分割しすぎることがなくなり、分割数が多すぎることによる処理量の増加を抑止することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ニューラルネットワークを用いて学習した学習モデルを用いて、ジョブの消費電力を予測するものである。
図3は、第2の実施の形態のシステム構成例を示す図である。HPCシステム30は、複数の計算ノード31,32,・・・を有している。計算ノード31,32,・・・は、投入されたジョブを実行するコンピュータである。
HPCシステム30内の計算ノード31,32,・・・は、HPC運用管理サーバ200に接続されている。HPC運用管理サーバ200は、HPCシステム30の運用管理を行うコンピュータである。例えばHPC運用管理サーバ200は、ジョブ実行時の計算ノード31,32,・・・の消費電力の時系列変化を監視する。またHPC運用管理サーバ200は、実行待ちのジョブについて、管理サーバ100からのジョブの電力消費パターンの予測結果を受信し、例えばシステムの消費電力が均一化されるように、ジョブスケジューリングを行う。そしてHPC運用管理サーバ200は、作成したジョブの実行スケジュールに従って、計算ノード31,32,・・・にジョブの実行を指示する。
HPC運用管理サーバ200は、ネットワーク20を介して端末装置41,42,・・・および管理サーバ100に接続されている。端末装置41,42,・・・は、HPCシステム30によるジョブの実行を希望するユーザが使用するコンピュータである。端末装置41,42,・・・は、ユーザの入力に基づいてHPCシステム30に実行させるジョブの内容を示すジョブ情報を生成し、生成したジョブ情報を含むジョブ投入要求を、HPC運用管理サーバ200に送信する。ジョブ情報は、ジョブで使用するアプリケーションプログラム名などのステイタス情報を含む。
管理サーバ100は、HPC運用管理サーバ200によるHPCシステム30の消費電力の管理を支援するコンピュータである。管理サーバ100は、HPC運用管理サーバ200から、実行するジョブのジョブ情報および実行が終了したジョブの電力消費パターンを示す電力情報を取得する。管理サーバ100は、HPC運用管理サーバ200から取得した情報に基づいて、実行待ちのジョブの電力消費パターンを予測する。そして管理サーバ100は、HPC運用管理サーバ200に、ジョブの電力消費パターンの予測結果を送信する。
図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)などの電子回路で実現してもよい。
メモリ102は、管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
管理サーバ100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、HPC運用管理サーバ200および計算ノード31,32,・・・も、図4に示した管理サーバ100と同様のハードウェアにより実現することができる。また第1の実施の形態に示したジョブ電力予測装置10も、図4に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することも可能である。
図3に示すシステムにおいて、HPC運用管理サーバ200と管理サーバ100とが連係動作し、ジョブ単位での電力消費パターンの予測結果に基づく適切な電力管理が行われる。例えば管理サーバ100が、新たに実行する新規投入ジョブを実行した場合の消費電力の時系列変化を予測する。消費電力の時系列変化は、例えば電力波形で表される。HPC運用管理サーバ200は、新規投入ジョブの電力波形に基づいて、例えばHPCシステム30の最大消費電力が低く抑えられるように、ジョブスケジューリングを行う。
管理サーバ100は、さらに実行中のジョブにおけるそれまでの消費電力の実測値に基づいて、消費電力の予測の正確性を検証する。管理サーバ100は、予測結果と実測値との誤差が所定値以上ある場合には、該当ジョブのそれまでの消費電力の実測値に基づいて、以後の消費電力の時系列変化を予測する。
例えば管理サーバ100は、あるジョブの電力波形の自己相関により、その電力波形に現れる周期を求めることができる。管理サーバ100は、求めた周期の1周期分の期間の消費電力情報の実測値を用いて、以後のジョブの消費電力を予測する。
なお、予測対象となる消費電力情報によっては、消費電力の変動周期が、期間によって異なる場合がある。そのため管理サーバ100は、消費電力の時系列変化が予測対象のジョブに類似するジョブの消費電力情報に基づいて、ジョブの実行開始からの期間に応じた消費電力の時系列変化の周期を判定する。そして管理サーバ100は、予測対象のジョブの実行開始からの期間に応じた消費電力の時系列変化の周期における1周期分の過去の電力の実測値に基づいて、以後の消費電力を予測する。これにより、予測精度を向上させることが可能となる。
図5は、電力管理のための各装置の機能を示すブロック図である。HPC運用管理サーバ200は、DB210、タイマ部220、情報取得部230、ジョブスケジューリング部240、および制御指示部250を有する。
DB210は、実行するジョブのステイタスを示すジョブステイタス情報や、実行したジョブの消費電力の時系列変化を示すジョブ電力消費情報を記憶する。
タイマ部220は、HPCシステム30からジョブごとの電力消費情報を収集するタイミングを管理する。例えばタイマ部220は、一定の時間間隔で、ジョブ電力消費情報の収集を情報取得部230に指示する。
情報取得部230は、タイマ部220からの指示に応じて、HPCシステム30から、HPCシステム30での実行が終了したジョブの時系列電力データを取得する。情報取得部230は、取得した電力消費情報を、DB210に格納する。
なおHPCシステム30は、ジョブごとに電力を測定する機能を備えている。例えばHPCシステム30内の各計算ノード31,32,・・・は、消費電力を計測する機器を備えており、ジョブを実行していない状態での消費電力と、ジョブを実行中の消費電力との差を、そのジョブの消費電力とすることができる。また計算ノード31,32,・・・は、温度センサなどの情報を元にジョブの消費電力を予測してもよい。例えば計算ノード31,32,・・・は、CPU温度とシステムボード(SB)排気温度とを、温度センサによって収集する。計算ノード31,32,・・・は、収集した温度データに基づいて、まずCPU温度変化(Tcpu)とSB排気温度変化(Tair)とを計算する。
CPU温度変化(Tcpu)は、以下の式で算出できる。
CPU温度変化(Tcpu)=CPU温度−水冷入力温度 ・・・(1)
またシステムボードの排気温度変化(Tair)は、以下の式で算出できる。
SB排気温度変化(Tair)=SB排気温度−ラック吸気温度 ・・・(2)
計算ノード31,32,・・・は、CPUの消費電力をCPU温度変化から算出する(例えばCPUの消費電力=1.02・Tcpu)。また計算ノード31,32,・・・は、メモリの消費電力をSB排気温度から算出する(例えばメモリの消費電力=0.254・Tair)。さらに計算ノード31,32,・・・は、インターコネクトコントローラ(ICC)の消費電力は一定値であるものとする(例えばICCの消費電力=8.36)。そして計算ノード31,32,・・・は、以下の式によりジョブの電力Pを予測する。
P=1.02・Tcpu+0.254・Tair+8.36 ・・・(3)
ジョブスケジューリング部240は、新規に投入されたジョブの実行スケジュールを作成する。またジョブスケジューリング部240は、管理サーバ100から実行中のジョブの今後の消費電力の予測結果を受信すると、HPCシステム30の消費電力が、所定の閾値を超えるか否かを判断する。例えばジョブスケジューリング部240は、実行中のジョブの消費電力の合計を、HPCシステム30の消費電力とする。ジョブスケジューリング部240は、HPCシステム30の消費電力が閾値を超えると予測した場合、一部のジョブを強制停止することを決定する。
制御指示部250は、ジョブスケジューリング部240によるジョブの実行スケジュールに従って、HPCシステム30にジョブの実行を指示する。また制御指示部250は、ジョブスケジューリング部240によってジョブの強制停止が決定されると、該当ジョブの停止をHPCシステム30に指示する。
管理サーバ100は、DB110、タイマ部120、メトリクス収集部130、ジョブ分類部140、電力比較部150、周期分析部160、学習部170、予測値計算部180、および予測結果送信部190を有する。
DB110は、ジョブごとの電力消費パターンの予測に使用する情報を記憶する。タイマ部120は、未実行のジョブの電力消費パターンの予測タイミングを管理する。例えばタイマ部120は、一定の時間間隔で、HPC運用管理サーバ200からの情報収集を、メトリクス収集部130に指示する。またタイマ部120は、一定の時間間隔で、実行中のジョブの消費電力の予測を予測値計算部180に指示する。
メトリクス収集部130は、タイマ部120の指示に応じて、HPC運用管理サーバ200から情報を収集する。例えばメトリクス収集部130は、実行待ちのジョブおよび実行が終了したジョブのジョブステイタス情報と、実行が終了したジョブの電力消費パターンを示す時系列電力データとを、HPC運用管理サーバ200から取得する。メトリクス収集部130は、取得した情報をDB110に格納する。
ジョブ分類部140は、ジョブを所定の分類アルゴリズムで分類する。例えばジョブ分類部140は、ジョブの実行時に参照するライブラリ、ジョブの実行を依頼したユーザ、およびジョブに対応するアプリケーションプログラム(以下「アプリ」と呼ぶ)が共通のジョブを、同じグループに分類する。またジョブ分類部140は、新規投入ジョブについて、新規投入ジョブと同じグループのジョブの消費電力情報に基づいて、新規投入ジョブの消費電力を予測する。
電力比較部150は、ジョブの実行開始後に、実行開始前の消費電力の予測値と、実行開始後の該当ジョブの消費電力の実測値とを比較する。そして電力比較部150は、消費電力の予測値と実測値との誤差が所定値以上となった場合、実測値に基づく消費電力の予測をすることを決定する。
周期分析部160は、実行中のジョブについて、実測値に基づく消費電力の予測をすることが決定された場合、該当ジョブが属するグループの、実行が終了している他のジョブの消費電力情報に基づいて、消費電力の時系列変化の周期を分析する。例えば周期分析部160は、ジョブ分析部161と周期比較部162とを有する。ジョブ分析部161は、ジョブの消費電力情報の取得期間を所定数に分割し、分割した期間(周期判定期間)ごとの消費電力の変動周期を分析する。周期比較部162は、周期判定期間ごとの周期を比較し、所定の条件を満たした周期判定期間について周期を確定する。周期未確定の周期判定期間があれば、ジョブ分析部161が該当期間をさらに細分化して周期を求め、周期比較部162が周期を確定する。
学習部170は、ニューラルネットワークを用いて、ジョブの過去の消費電力情報から、以後の消費電力を予測する学習モデルを生成する。学習部170は、例えばジョブのグループごとに学習モデルを生成する。学習部170は、各グループの学習モデルを生成する際、該当グループにおける消費電力の変動の周期が同一の期間ごとに、学習モデルを生成する。また学習部170は、学習モデルを生成する際には、学習モデル生成対象の期間の周期に応じた遅れ時間(どの程度の期間の消費電力の実測値を予測に使用するかを示す時間)で、学習モデルを生成する。なお学習部170は、1つのグループの1つの学習モデル生成対象期間において、消費電力を予測する対象の時刻までの、現在の時刻からの時間が異なる、複数の学習モデルを生成することもできる。例えば学習部170は、5分先の消費電力を予測する学習モデルと、10分先の消費電力を予測する学習モデルとを作成することができる。
予測値計算部180は、タイマ部により指示されたタイミングで、予測モデルを用いて、実行中のジョブの以後の消費電力の時系列変化を予測する。例えば予測値計算部180は、消費電力予測対象のジョブが属するグループの、現在のジョブの実行時間に応じた期間の学習モデルを用いて、消費電力を予測する。なお予測値計算部180は、該当期間の学習モデルが複数存在する場合(どれだけ先の消費電力を予測するのかが異なる)、そのうち最も精度のよい予測モデルを使用する。
予測結果送信部190は、未実行のジョブの消費電力の予測結果、および実行中のジョブの消費電力の予測結果を、HPC運用管理サーバ200に送信する。
なお、図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図5に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
図6は、管理サーバのDBに格納される情報の一例を示す図である。図6の例では、DB110には、ステイタス情報111、ジョブ消費電力情報112、分類データベース113、分析結果情報114、学習結果情報115、および予測モデル精度情報116が格納されている。
ステイタス情報111は、ジョブごとのステイタスに関する情報である。ジョブ消費電力情報112は、実行が終了したジョブの時系列の消費電力に関する情報である。分類データベース113は、ジョブの属するグループを示すデータベースである。分析結果情報114は、ジョブのグループごとの時間帯ごとの電力波形の変動周期に関する情報である。学習結果情報115は、予測モデルの学習結果を示す情報である。予測モデル精度情報116は、生成した予測モデルの予測精度の判定結果を示す情報である。
図7は、ステイタス情報の一例を示す図である。ステイタス情報111には、HPCシステム30で実行したジョブ、および実行予定のジョブのジョブ名に対応付けて、参照ライブラリ名、ユーザ名、およびアプリ名が設定されている。参照ライブラリ名は、ジョブの実行中に参照するライブラリ(汎用性が高いプログラムの集合)の名称である。ユーザ名は、ジョブの実行を要求したユーザの名称である。アプリ名は、ジョブの実行に使用するアプリの名称である。
図8は、ジョブ消費電力情報の一例を示す図である。ジョブ消費電力情報112は、例えばジョブの経過時間を行のラベルに設定し、ジョブ名を列のラベルに設定したデータテーブルである。行と列の交わる位置に、列に示されるジョブを実行したときの、実行開始から行に示される時間だけ経過した時点での、該当ジョブの消費電力が設定されている。
図9は、分類データベースの一例を示す図である。分類データベース113には、グループ名に対応付けて、該当グループに属する1以上のジョブのジョブ名が設定されている。例えば参照ライブラリ名、ユーザ名、およびアプリ名が共通するジョブが、同じグループに設定される。分類データベース113には、新規に投入するジョブが検出されるごとに、ジョブ分類部140によってそのジョブが属するグループが判定され、該当ジョブのジョブ名が分類データベース113に登録される。
図10は、分析結果情報の一例を示す図である。分析結果情報114には、グループごとの周期情報114a,114b,・・・が含まれている。周期情報114a,114b,・・・には、対応するグループに属するジョブの実行開始からの経過時間の幅(期間)に対応付けて、該当期間における電力波形の変化の周期が設定されている。例えば「グループA」の周期情報114aには、ジョブ開始から0分〜225分の範囲内の期間では周期が15分であり、ジョブ開始から230分〜1430分の範囲内の期間では周期が30分であることが示されている。なお図10の例では、周期の判定の単位期間は5分である。
図11は、学習結果情報の一例を示す図である。学習結果情報115には、例えばグループごとの予測モデル群115a,115b,・・・が含まれている。各予測モデル群115a,115b,・・・には、対応するグループに属するジョブの消費電力の時系列変化に基づいて生成された予測モデルが含まれる。例えば「グループA」の予測モデル群115aには、分析結果情報114に示されている周期ごとの周期別予測モデル群51,52,・・・が含まれている。周期別予測モデル群51には、対応する周期に応じた遅れ時間で学習した複数の予測モデル51a,51b,・・・が含まれている。例えば予測モデル51aは、単位時間(5分)間隔に設定された予測点における1点先(5分先)の消費電力を予測するニューラルネットワークの学習モデルである。予測モデル51bは、単位時間(5分)間隔に設定された予測点における2点先(10分先)の消費電力を予測するニューラルネットワーク(例えばRNN)の学習モデルである。ニューラルネットワークにおける学習とは、ニューロンに相当するユニットに入力するデータに対する重みの適切な値を求めることである。学習結果には、学習された入力データの重みが設定される。
図12は、予測モデル精度情報の一例を示す図である。予測モデル精度情報116には、例えばグループごとの予測モデル選定テーブル群116a,116b,・・・が含まれている。各予測モデル選定テーブル群116a,116b,・・・には、対応するグループに属するジョブの消費電力の時系列変化に基づいて生成された予測モデルの精度を示す情報が含まれる。例えば「グループA」の予測モデル選定テーブル群116aには、分析結果情報114に示されている周期ごとの周期別予測モデル選定テーブル群61,62,・・・が含まれている。例えば周期別予測モデル選定テーブル群61には、予測対象の時刻ごとに、該当時刻の電力を予測する予測モデルの予測精度を示す予測モデル選定テーブル61a,61b,・・・が含まれている。予測対象の時刻は、例えば5分ごとの時刻を予測対象の時点としたときに、予測に使用する実測値の取得時刻から何点先の時刻なのかで表される。例えば予測モデル選定テーブル61aには、5分(1点)先を予測することができる複数の予測モデルそれぞれの予測精度が示されている。また予測モデル選定テーブル61bには、10分(2点)先を予測することができる複数の予測モデルそれぞれの予測精度が示されている。予測モデル選定テーブルの詳細は後述する(図23参照)。
以上のような情報を用いて、管理サーバ100においてジョブの消費電力の予測が行われる。電力を予測するために管理サーバ100は、既に実行が終了したジョブの消費電力の時系列変化に基づいて、消費電力を予測するための予測モデルを作成する。
このときステイタス情報が類似するジョブは、消費電力の時系列変化も類似しているという知見に基づいて、管理サーバ100はジョブをグルーピングする。
図13は、ジョブのグルーピングの一例を示す図である。ジョブ71,72,73,・・・には、投入時にステイタス情報が指定される。各ジョブ71,72,73,・・・のステイタス情報は、メトリクス収集部130により、HPC運用管理サーバ200から取得され、DB110に格納される。ジョブ分類部140は、DBに格納されたステイタス情報111を参照して、ジョブ71,72,73,・・・をグルーピングする。例えばジョブ分類部140は、参照ライブラリ名、ユーザ名、およびアプリ名が共通のジョブを、同じグループにグルーピングする。図13の例では、ジョブ名「JOB1」のジョブとジョブ名「JOB4」のジョブは、参照ライブラリ名、ユーザ名、およびアプリ名のいずれもが同じである。そこでジョブ分類部140は、ジョブ名「JOB1」のジョブとジョブ名「JOB4」のジョブとを、共にグループ名「グループA」のグループに分類している。そしてジョブ分類部140は、分類結果を、DB110内の分類データベース113に設定する。
さらにジョブ分類部140は、分類データベース113に基づいて、ジョブごとの消費電力の時系列変化を示すデータ(時系列電力データ)を、グループごとに分類する。
図14は、時系列電力データの分類例を示す図である。管理サーバ100のDB110には、メトリクス収集部130によりHPC運用管理サーバ200から取得された、ジョブ消費電力情報112が格納されている。ジョブ消費電力情報112の列ごとの電力値が、対応するジョブの時系列電力データ81,82,83,84,85,86,・・・である。ジョブ分類部140は、分類データベース113に基づいて、ジョブ消費電力情報112に示される各ジョブの時系列電力データ81,82,83,84,85,86,・・・を、グループごとに分類する。
ジョブ分類部140は、新規投入ジョブの実行前にそのジョブの属するグループ内の実行が終了しているジョブの時系列電力データに基づいて、新規投入ジョブの電力を実行前に予測する。
図15は、ジョブ実行前の電力の予測例を示す図である。例えば新規投入ジョブ74の参照ライブラリ名、ユーザ名、およびアプリ名が、「グループA」に属するジョブと同じであるものとする。この場合、ジョブ分類部140は、新規投入ジョブ74を、「グループA」に分類する。そしてジョブ分類部140は、例えば新規投入ジョブの実行に使用する計算ノード数(要求ノード数)に基づいて、「グループA」に属するジョブの時系列電力データ81,84,・・・の中から、電力予測時の参照元とする時系列電力データを取得する。
例えばジョブ分類部140は、新規投入ジョブの要求ノード数が「384」であり、同じ要求ノード数の実行済みのジョブの実行実績がある場合、該当ジョブの消費電力の平均値を、新規投入ジョブ74の消費電力予測値とする。図15の例では、要求ノード数が同じ2つのジョブの実行実績があり、そのジョブの実行開始からのある時点での消費電力が「0.04」と「0.05」である。この場合、ジョブ分類部140は、新規投入ジョブ74の消費電力を「0.045」と予測する。
ジョブ分類部140は、新規投入ジョブの要求ノード数が「512」であり、同じ要求ノード数の実行済みのジョブの実行実績がない場合、要求ノード数が近いジョブの消費電力を用いて補間した値を、新規投入ジョブ74の消費電力の予測値とする。例えばジョブ分類部140は、要求ノード数が「512」より少ないジョブのうち、要求ノード数が最も多いジョブの、予測対象の時点(測定点)での消費電力の平均を求める。図15の例では、要求ノード数が「384」の2つのジョブの消費電力(「0.04」と「0.05」)の平均値「0.045」が求められる。次に、ジョブ分類部140は、要求ノード数が「512」より多いジョブのうち、要求ノード数が最も少ないジョブの、予測対象の測定点での消費電力の平均を求める。図15の例では、要求ノード数が「548」の2つのジョブの消費電力(「0.05」と「0.06」)の平均値「0.055」が求められる。ジョブ分類部140は、要求ノード数を横軸、消費電力を縦軸とする座標系で、求めた2つの平均値を示す点を通る電力予測式を求める。電力P0を求める予測式は、例えば以下の式で表される。
0=a・Nnode+b ・・・(4)
nodeは、要求ノード数である。a,bは、計算によって求まる定数である。ジョブ分類部140は、式(4)のNnodeとして、新規投入ジョブ74の要求ノード数を設定することで、消費電力を予測する。例えば要求ノード数「512」の新規投入ジョブの消費電力は、式(4)に基づいて「0.053」となる。
ジョブ分類部140は、新規投入ジョブ74と同じグループに属する全ジョブから予測式を算出してもよい。例えばジョブ分類部140は、新規投入ジョブ74と同じグループに属する実行済みのジョブの消費電力の実測値に基づいて、最小二乗法により、予測対象の測定点それぞれにおける、要求ノード数と消費電力との関係を示す電力予測式を生成する。全ジョブから予測式を算出すれば、新規投入ジョブ74より要求ノード数が多い実行済みのジョブ、または新規投入ジョブ74より要求ノード数が少ない実行済みのジョブのいずれかが存在しない場合であっても、新規投入ジョブ74の消費電力を予測できる。
ジョブ分類部140は、図15に示したような消費電力の予測値を、新規投入ジョブ74の実行開始から所定の時間間隔(例えば5分間隔)の各測定点について求める。各測定点について求めた消費電力を時系列に並べることで、新規投入ジョブ74の消費電力の時系列変化を示す電力波形が得られる。
新規投入ジョブ74の消費電力の予測結果は、予測結果送信部190によって、HPC運用管理サーバ200に送信される。HPC運用管理サーバ200では、ジョブスケジューリング部240が消費電力の予測結果に基づいて、例えばHPCシステム30全体の消費電力が所定値を超えないようにジョブスケジューリングを行う。
新規投入ジョブ74は、スケジュールに従ってHPCシステム30で実行される。新規投入ジョブ74の実行が開始されると、逐次、新規投入ジョブ74の消費電力の実測値がHPCシステム30で計測される。計測された新規投入ジョブ74の消費電力は、HPC運用管理サーバ200の情報取得部230によりDB210に格納される。そして管理サーバ100のメトリクス収集部130がDB210から新規投入ジョブ74の消費電力の実装値を取得し、DB110に格納する。
管理サーバ100の電力比較部150は、新規投入ジョブ74の消費電力の実測値が得られると、消費電力の実測値をジョブ分類部140による予測値と比較する。
図16は、消費電力の実測値と予測値との比較例を示す図である。ジョブ分類部140は、ジョブの分類結果に基づき、新規投入ジョブの実行前に、新規投入ジョブの実行期間中の消費電力を予測する。予測された消費電力は、電力波形91で表される。
その後、新規投入ジョブの実行が開始され実行中ジョブとなると、その実行中ジョブの消費電力の実測値が得られる。電力比較部150は、得られた実測値に基づいて電力波形92を生成する。そして電力比較部150は、予測した電力波形91と実測された電力波形92との誤差を算出する。例えば電力比較部150は、得られた実測値ごとに、同時刻の消費電力の予測値との差を計算し、差の平均が所定値以上となるか否かを判断する。電力比較部150は、差の平均が所定値以上である場合、実行前の消費電力の予測結果が不正確であると認定し、周期分析部160に、実行中ジョブが属するグループの期間ごとの消費電力の時系列変化の周期の算出を指示する。
すると、周期分析部160、学習部170、および予測値計算部180の処理により、消費電力の実測値に基づき、回帰を用いた実行中ジョブの以後の消費電力が予測される。その結果、新たな電力波形93が得られる。
実測した消費電力に基づく以後の消費電力の予測には、例えばRNNによって学習した学習モデルが使用される。学習モデルは、学習部170によって、例えばグループごとに生成される。
図17は、学習モデル生成処理の概要を示す図である。例えば学習部170は、「グループA」に属するジョブの時系列電力データ81,84,・・・に基づいて、周期が同じ期間ごとにRNNで学習し、「グループA」の予測モデル群を生成する。また学習部170は、「グループB」に属するジョブの時系列電力データ82,85,・・・に基づいて、周期が同じ期間ごとにRNNで学習し、「グループB」の予測モデル群を生成する。さらに学習部170は、「グループC」に属するジョブの時系列電力データ83,86,・・・に基づいて、周期が同じ期間ごとにRNNで学習し、「グループC」の予測モデル群を生成する。
図18は、RNNについて説明する図である。RNN300は、ニューラルネットワークの一種であり、時系列データの学習に用いられる。RNNでは、時刻tの隠れ層の内容が、次の時刻t+1の入力として扱われる。
RNN300には、LSTM(Long Short-Term Memory Networks)やGRU(Gated Recurrent Unit)がある。
LSTMは、ゲートのメカニズムを導入することで、遠い過去のことまで覚えておくことができる。そのため、過去の情報まで参考にしないと予測できないような問題には、LSTMが有用となる。GRUは、LSTMを改良したものである。GRUは、LSTMの構造をシンプルにしたもので、忘却ゲートと入力ゲートを単一の更新ゲート301として組み合わせている。
更新ゲート301には、どの程度の過去に遡って情報を利用するのかを設定することができる。RNN300において、どの程度の過去に遡って情報を利用するのかは、遅れ時間として設定される。遅れ時間は、予測対象の測定点に対してどこまで過去の情報を使用して学習/予測を行うかを決定するハイパパラメータである。
図19は、遅れ時間に応じたRNN用の学習データセットの一例を示す図である。図19には、遅れ時間が「6」の場合の例が示されている。
ジョブの時系列電力データ311には、所定時間間隔(例えば5分間隔)で測定された、ジョブの消費電力値(実測値)が含まれる。時系列電力データ311の各矩形が実測値を表しており、矩形内の数字は、時系列上の測定順を示している。学習部170は、時系列電力データ311に基づいて、学習用データセット312を生成する。
例えば学習用データセット312の1行目には、1番目から6番目の実測値を用いて、7番目の電力を予測することが示されている。そして7番目の実測値が、予測の答えである。すなわち1番目から6番目の実測値を用いて、予測モデルにより予測した結果と、7番目の実測値との差が所定値以下であれば、予測結果は正解となる。
同様に、2番目から7番目の実測値を用いて8番目の電力が予測され、8番目の実測値が答えである。3番目から8番目の実測値を用いて9番目の電力が予測され、9番目の実測値が答えである。4番目から9番目の実測値を用いて10番目の電力が予測され、10番目の実測値が答えである。5番目から10番目の実測値を用いて11番目の電力が予測され、11番目の実測値が答えである。6番目から11番目の実測値を用いて12番目の電力が予測され、12番目の実測値が答えである。
学習部170は、図19に示すように時系列電力データ311を整形して、学習用データセット312を作成する。学習部170は、このような学習用データセット312の生成を、ジョブごとに行う。
図19では、予測に使用する実測値から、電力測定間隔において次の測定点(例えば5分後)の電力を予測する場合を想定しているが、学習部170は、さらに遠い未来の電力を予測するような予測モデルを生成することも可能である。
図20は、予測先の時刻までの時間が異なる複数の予測モデルの例を示す図である。図20の例では、3点先の測定点の電力を予測する予測モデル321、2点先の測定点の電力を予測する予測モデル322、および1点先の測定点の電力を予測する予測モデル323に示されている。
学習部170は、実行済みのジョブ電力時系列データを手前から読み込みながら予測し、実測値との誤差を学習する。例えば学習部170は、BPTT(Back-Propagation Through Time)アルゴリズムで実測値と予測値との誤差を学習する。BPTTは、ニューラルネットワークの重みの時間方向の誤差逆伝播を行うものである。
学習部170は、予測に使用するデータの取得時間帯以降の複数の測定点(例えば5,10,15,20,25,30分先)の予測モデルをそれぞれ独立に作成する。そして学習部170は、同一の過去の電力時系列データを用いて、各モデルからの予測結果をそれぞれ対応する予測先の点としてあてはめ、実測値との誤差を算出しながら、誤差逆伝播法とBPTTとを用いて学習する。
学習により、複数の予測モデルが生成されている場合、予測値計算部180は、実行中ジョブの消費電力の実測値を取得したとき、複数の測定点における該当ジョブの消費電力を予測できる。
図21は、複数の予測モデルによる複数の測定点の消費電力の予測例を示す図である。図21に示すように、予測値計算部180は、複数の予測モデル321〜323を用いて、1点先、2点先、3点先の消費電力を予測することができる。時間が経過し、1点先の消費電力の実測値が得られた場合、予測値計算部180は、複数の予測モデル321〜323を用いて、さらに1点先、2点先、3点先の消費電力を予測することができる。
予測先の時刻までの時間が異なる複数の予測モデルを生成した場合、ある測定点の電力を予測するのに使用可能な予測モデルが複数存在することにもなる。
図22は、予測対象時刻の電力の予測に使用可能な予測モデルが複数ある例を示す図である。図22では、予測に使用するデータ331を黒丸で示し、予測結果332を白丸で示している。1点先から6点先までの各測定点の電力を予測する予測モデルを生成している場合、現在の1点先を予測するモデルは6個存在することになる。
予測値計算部180は、予測対象となる測定点に対して予測モデルが複数ある場合、過去予測結果と実測結果の比較から最も良い精度の予測モデルを選択し、その予測モデルによって選択された予測結果を採用する。例えば予測値計算部180は、予測対象となる測定点を予測可能な複数の予測モデルについて、新たに予測対象となる測定点の消費電力を予測し、その予測対象となる測定点の実測値が得られるごとに、直近の所定期間の予測結果と実測値とを比較して、RMSE(RMSE:Root Mean Square Error)を算出する。そして予測値計算部180は、新たに算出した複数の予測モデルのRMSEを予測モデル選定テーブルに追加登録する。そして予測値計算部180は、更新された予測モデル選定テーブルを参照して、最も精度が高い(誤差が小さい)予測モデルを、次の予測に用いる予測モデルとして選択する。
図23は、予測モデル選定テーブルの一例を示す図である。予測モデル選定テーブル61aには、例えばRMSEを算出した時刻に対応付けて、予測モデルごとの予測値と実測値との平均二乗誤差が設定されている。RMSEの値が小さいほど、誤差が少ないことを示している。例えば予測値計算部180は、ある時刻の電力を予測する場合、該当する時刻の電力の予測に使用可能な予測モデルのうち、計算済みのRMSEの合計が最小の予測モデルの予測結果を採用する。
なお図19〜図23に示した例では遅れ時間が「6」であるが、遅れ時間はもっと長くすることも短くすることもできる。ジョブの消費電力の予測にRNN300を利用した場合、遅れ時間を長くすると、より多くの実測値を使用して予測できるので予測精度の向上が見込める。ただし、遅れ時間を長くしすぎると、現在の消費電力の挙動とは異なる挙動をしていたときの情報までも利用され、かえって予測精度が劣化することがある。また、遅れ時間を長くすると、学習および予測の計算時間が長くなるという弊害もある。そのため、ジョブの消費電力の時系列変化に周期性が認められる場合、RNNにおける遅れ時間の最適値は、電力波形の周期の1周期分であると考えられる。すなわち、電力波形が周期的に変化しているとき、その1周期分の時系列電力データを用いれば、繰り返される電力の時系列変化を的確に予測できる。そこで周期分析部160は、グループごとの電力の時系列変化の周期を判定する。周期の判定には、自己相関の相関係数を用いることができる。
図24は、自己相関の相関係数を用いた周期の判定例を示す図である。自己相関の相関係数とは、元の電力波形341に対して時刻軸方向に所定時間シフトし、元の電力波形341のデータと時刻軸方向にずらした電力波形342のデータとの相関係数である。自己相関の相関係数rxyは、元の電力波形341を表す電力値のデータ点数をn(nは1以上の整数)とすると、以下の式で算出することができる。
Figure 2020129314
iは、元の電力波形341を表すi番目の電力値のデータである(i=1,2,・・・,n)。yiは、時刻軸方向にずらした電力波形342を表すi番目の電力値のデータである。オーバーライン付きのxは、xiの相加平均である。オーバーライン付きのyは、yiの相加平均である。
図24の上のグラフでは、同じような形が3回繰り返されており、電力変化に周期性が見られる。ジョブ分析部161は、元の電力波形341から時刻軸方向に所定量ずらした電力波形342を生成し、元の電力波形341とずらした電力波形342との相関係数を算出する。なお、時刻軸方向のずらし量はラグと呼ばれる。ジョブ分析部161は、例えばラグを少しずつ増やしながら、その都度、自己相関の相関係数を差出する。すると、コレログラム343を生成することができる。コレログラム343は、元データからのずらした量(ラグ)を横軸にとり、計算した相関係数を縦軸に取るグラフである。コレログラム343を参照すると、相関係数がピーク(局所的最大値)となる位置が、所定間隔で現れている。ジョブ分析部161は、相関係数がピークとなる位置の間隔を、電力波形の周期と判定する。なおジョブ分析部161は、例えば、あるラグの値の相関係数が、前後の相関係数よりも高い場合、そのラグの値をピークの位置とする。
なお、ジョブによっては、コレログラム343のピークの間隔の平均値で消費電力の時系列変化の周期を求めると、正しい周期の検出が困難な場合がある。例えば、部分的に周期性がある場合や、途中で周期が変化する場合に、適切な周期の検出が困難となる。誤った周期を検出し、その周期に基づいて消費電力を予測すると、予測精度が劣化する。
そこで周期分析部160は、ある時系列電力データを時刻軸方向にN個(Nは2以上の整数)に分割し、分割された期間それぞれの自己相関の相関係数を計算する。周期分析部160は、分割数Nの初期値を2とし、分割された期間ごとの周期が一致するか否かの判定、分割数の増加を繰り返す。周期分析部160は、分割数Nを増加させるごとに、分割された期間ごとの自己相関の相関係数の計算による周期の判定と、各期間の周期の比較とを実施する。これにより、時系列電力データで表される電力波形の、分割された期間ごとの適切な周期を算出できる。
図25は、期間ごとの周期の算出例を示す第1の図である。ジョブの消費電力の時系列変化を示す電力波形351には、ジョブの実行開始から所定の期間は15分周期で電力が変動し、その後、30分周期で電力が変動したことが示されている。このような期間ごとに異なる周期を算出するために、周期分析部160のジョブ分析部161は、ジョブの実行期間全体を、第1期間と第2期間とに2分割する。そしてジョブ分析部161は、第1期間と第2期間とのそれぞれのコレログラムを算出し、ピークの平均間隔から周期を求める。周期比較部162は、期間ごとに求められた周期を比較する。この場合、第1期間では、最初の15分周期の期間を含んでいるため、得られる周期が30分よりも短い値となる。その結果、第1期間と第2期間との周期は不一致となる。
そこでジョブ分析部161は、ジョブの実行期間全体を、第1期間と第2期間と第3期間に3分割する。そしてジョブ分析部161は、第1期間と第2期間と第3期間それぞれのコレログラムを算出し、ピークの平均間隔から周期を求める。周期比較部162は、期間ごとに求められた周期を比較する。この場合、第1期間では、最初の15分周期の期間を含んでいるため、得られる周期が30分よりも短い値となる。他方、第2期間と第3期間は、ともに30分周期となる。その結果、第1期間は他の期間と周期が一致しないが、第2期間と第3期間とは周期が一致する。
ジョブ分析部161は、周期が一致した期間については、算出された周期を、その期間の周期として確定する。そしてジョブ分析部161と周期比較部162とは、周期が未確定の期間について、同様の処理を繰り返す。
図26は、期間ごとの周期の算出例を示す第2の図である。周期が一致した期間は同一周期期間として、以後の周期判定の対象から除外される。そこで、ジョブ分析部161は、周期が未確定の期間(図25に示した3分割時の第1期間)を2分割して周期を算出する。そして周期比較部162は、期間ごとの周期を比較する。図26の例では、第2周期は、同一周期期間と周期が一致する。そこでジョブ分析部161は、第2周期期間を同一周期期間に含める。第1期間は、他の期間と周期が一致せず、周期未確定の期間として残る。
その後、ジョブ分析部161と周期比較部162とにより、周期未確定の期間について、分割数を初期値から徐々に増やしながら、周期の計算と比較とが繰り返される。最終的に、15分周期の同一周期期間と30分周期の同一周期期間とが得られる。
電力波形351に表される消費電力の時系列変化の周期が正しく判定できることで、期間ごとの予測モデルにおける遅れ時間を正しく設定することができる。
図27は、周期に応じた遅れ時間の例を示す図である。例えば電力予測の時間間隔が5分の場合、学習部170は、15分周期の期間については、遅れ時間「3」(15分)によって予測モデルを生成する。この場合、過去3点の測定点の電力の実測値に基づいて以後の電力を予測する予測モデルが生成される。また学習部170は、30分周期の期間については、遅れ時間「6」(30分)によって予測モデルを生成する。この場合、過去6点の測定点の電力の実測値に基づいて以後の電力を予測する予測モデルが生成される。
なお、期間ごとの周期の判定は実行が終了したジョブごとに行われるが、同じグループに属する複数のジョブは、消費電力の時系列変化について同じような周期性を有していることが多い。そこで学習部170は、同一グループの同一周期期間ごとに、該当期間について決定された遅れ時間を設定して予測モデルの学習を実施する。
図28は、グループ内の複数のジョブの消費電力データを用いた学習例を示す図である。学習部170は、同一グループの同一の周期の期間ごとに学習を行い、期間ごとに予測モデルを生成する。図28には、「グループA」に属する複数のジョブの電力波形352〜354を示している。各ジョブの電力波形352〜354を示す消費電力データのうちの、0分〜90分の期間のデータに基づいて予測モデルが生成され、95分〜1420分の期間について別の予測モデルが生成される。
予測値計算部180は、予測対象の時刻までのジョブの実行開始からの経過時間に基づいて、どの期間に該当するのかを判断し、該当する期間の予測モデルを用いて、実行中のジョブの以後の消費電力を予測する。
図29は、実行中のジョブの以後の消費電力の予測処理を示す図である。例えば実行中ジョブ361の現在までの消費電力データ362を取得した場合、ジョブ分類部140は、実行中ジョブ361のステイタス情報に基づいて、実行中ジョブを分類する。図29の例では、「グループA」に分類されたものとする。この場合、予測値計算部180は、「グループA」の予測モデル群115aの中から、消費電力の予測に用いる予測モデルを選択する。すなわち、予測値計算部180は、予測対象の時刻までのジョブの実行開始からの経過時間に基づいて、どの期間に該当するのかを判断する。そして予測値計算部180は、該当する期間の周期に対応する予測モデルに、実測値として得られた消費電力データ362を入力することで、以後の消費電力を予測する。なお、図22に示したように、予測対象となる測定点に対して予測モデルが複数ある場合もある。この場合、予測値計算部180は、図23に示したような予測モデル選定テーブルを参照して、最も良い精度の予測モデルを選択し、その予測モデルによる予測結果363を採用する。これにより予測精度が向上する。
以下、管理サーバ100における消費電力の予測のための処理手順を、フローチャートを参照して説明する。
図30は、消費電力予測処理の手順の一例を示すフローチャートである。以下、図30に示す処理をステップ番号に沿って説明する。
[ステップS101]メトリクス収集部130は、HPC運用管理サーバ200から情報を収集する。例えばメトリクス収集部130は、タイマ部120から所定の時間間隔で出力される情報取得指示に応じて、情報を取得する。取得する情報には、ジョブのステイタス情報や実行中のジョブの消費電力の実測値が含まれる。ジョブのステイタス情報には、ジョブ名、参照ライブラリ名、ユーザ名、アプリ名などが含まれる。またジョブのステイタス情報には、例えば該当ジョブが実行前の新規投入ジョブなのか、実行中のジョブなのか、実行が終了したジョブなのかといった情報も含まれる。メトリクス収集部130は、取得した情報をDB110に格納する。
[ステップS102]ジョブ分類部140は、ジョブのステイタス情報に基づいて、各ジョブを複数のグループに分類する。例えばジョブ分類部140は、新たなジョブが投入された場合に、収集したジョブそれぞれのステイタス情報から、ジョブを複数のグループに分類し、分類結果を分類データベース113に保存する。なお同じグループに属するジョブは、挙動の似ているジョブのものと推定され、消費電力の時系列変化も類似していることが予測される。
[ステップS103]ジョブ分類部140は、新規投入ジョブの電力を、同じグループの実行が終了しているジョブの消費電力データに基づいて予測する。ジョブ分類部140は、予測結果を、電力比較部150に送信する。またジョブ分類部140は、予測結果を予測結果送信部190に送信してもよい。予測結果送信部190は、新規投入ジョブの消費電力の予測結果を、HPC運用管理サーバ200に送信する。すると、HPC運用管理サーバ200のジョブスケジューリング部240が、例えばHPCシステム30全体の消費電力が所定値を超えないように、ジョブスケジューリングを行う。
[ステップS104]メトリクス収集部130は、実行中ジョブの消費電力の情報を取得する。例えばメトリクス収集部130は、タイマ部120から所定の時間間隔で出力される消費電力取得指示に応じて、消費電力の情報を取得する。メトリクス収集部130は、取得した消費電力の情報を、DB110のジョブ消費電力情報112に追加格納する。
[ステップS105]ジョブ分類部140は、メトリクス収集部130が収集した情報に基づいて、処理の終了条件が満たされたか否かを判断する。終了条件は、例えば実行中のすべてのジョブの実行が終了したことである。ジョブ分類部140は、実行中のジョブが終了したか否かは、例えば該当ジョブの消費電力時系列データの最新の電力値が取得できたか否かによって判断できる。またジョブ分類部140は、ステップS101における次回の情報収集タイミングになった場合にも、現在実行中の消費電力予測処理の終了条件を満たすと判断してもよい。ジョブ分類部140は、終了条件が満たされた場合、消費電力予測処理を終了する。またジョブ分類部140は、終了条件が満たされていなければ、処理をステップS106に進める。
[ステップS106]電力比較部150は、実行中のジョブの消費電力の予測値と実測値との誤差が閾値を超過するか否かを判断する。なお誤差の閾値は、例えばHPCシステム30で許容される消費電力の予測精度に応じて予め設定される。電力比較部150は、誤差が閾値を超えている場合、処理をステップS107に進める。また電力比較部150は、誤差が閾値を超えていなければ、処理をステップS104に進める。
[ステップS107]周期分析部160と学習部170とが連係動作し、実行中のジョブの消費電力を予測するための予測モデルを生成する。予測モデル生成処理の手順の詳細は後述する(図31参照)。
[ステップS108]予測値計算部180は、生成された予測モデルに基づいて、実行中のジョブの今後の消費電力の予測値を算出する。
[ステップS109]予測値計算部180は、予測モデルが複数存在する場合、予測精度が最も高い予測モデルを選択し、該当予測モデルを用いた予測結果を、実行中のジョブの消費電力の予測結果として採用する。例えば予測値計算部180は、予測対象の測定点の電力を予測可能な予測モデルそれぞれを用いて、既に実測値が得られている所定数の測定点の電力の予測値を計算する。予測値の計算には、例えば現在予測対象となっている実行中ジョブの過去の実測値を用いることができる。予測値計算部180は、予測モデルごとに計算した所定数の測定点の予測値とその測定点の実測値とを比較して、各予測モデルのRMSEを算出する。予測値計算部180は、例えば算出したRMSEの値が最も小さい予測モデルの予測結果を、実行中のジョブの消費電力の予測結果として採用する。また予測値計算部180は、過去に複数回算出したRMSEの値の合計が最も小さい予測モデルの予測結果を、実行中のジョブの消費電力の予測結果として採用してもよい。
[ステップS110]予測結果送信部190は、採用された予測結果を、実行中のジョブの消費電力の予測結果としてHPC運用管理サーバ200に送信する。HPC運用管理サーバ200では、予測結果に基づいて、ジョブスケジューリング部240によって、HPCシステム30の消費電力が所定値を超えることになるか否かを判断し、超える場合には、ジョブの強制停止処理を行う。その後、処理がステップS104に進められる。
次に、予測モデル生成処理の詳細について説明する。
図31は、予測モデル生成処理の手順の一例を示すフローチャートである。以下、図31に示す処理をステップ番号に沿って説明する。
[ステップS121]周期分析部160のジョブ分析部161は、実行中のジョブと同じグループのジョブを分析対象として選択する。
[ステップS122]ジョブ分析部161は、周期未確定期間の分割数Nを初期値「2」に設定する(N=2)。
[ステップS123]ジョブ分析部161は、周期未確定期間内に、分析対象のジョブの消費電力の実装値のデータ点数が十分にあるか否かを判断する。例えばジョブ分析部161は、周期未確定期間の分析対象のジョブのデータ点数が所定数(例えば30点)以上ある場合、データ点数が十分であると判断する。ジョブ分析部161は、データ点数が十分であれば、処理をステップS124に進める。またジョブ分析部161は、データ点数が十分でなければ、処理をステップS130に進める。
[ステップS124]ジョブ分析部161は、分析対象のジョブの消費電力データを時刻軸でN分割し、分割された期間ごとにコレログラムを生成する。
[ステップS125]ジョブ分析部161は、期間ごとに生成したコレログラムのピーク(局所的最大値)を算出し、ピーク位置の平均間隔により期間ごとの周期を算出する。ジョブ分析部161は、ピークか否かについては、例えば検討対象のラグ値の相関係数が、そのラグ値の両側のラグ値の相関係数よりも大きいかまたは等しい場合、検討対象のラグ値の相関係数をピークと判定し、ピークのラグ値をピークの位置と判定する。ジョブ分析部161は、ピークとして複数のラグ値が存在する場合(ピークが平坦な場合)、最小のラグ値をピークの位置とする。
[ステップS126]周期比較部162は、分割した期間(周期確定期間を含む)の周期を比較し、周期が一致する期間があるか否かを判断する。なお周期比較部162は、周期の差が、許容誤差の範囲内の場合、一致すると判定してもよい。周期比較部162は、周期が一致するか否かを、隣接する期間においてのみ比較してもよい。周期比較部162は、周期が一致する期間がある場合、処理をステップS128に進める。また周期比較部162は、周期が一致する期間がない場合、処理をステップS127に進める。
[ステップS127]ジョブ分析部161は、周期未確定期間の分割数Nの値を1だけ増加させ(N=N+1)、処理をステップS123に進める。
[ステップS128]ジョブ分析部161は、周期一致期間の周期を、算出された周期に確定する。周期が確定した期間は、以後、周期確定期間として扱われる。ジョブ分析部161は、周期が確定した期間の範囲と周期とを、分析結果情報114に登録する。
[ステップS129]ジョブ分析部161は、ジョブ分析情報において周期が一致する隣接期間がある場合、それらの期間をマージする。期間をマージするとは、隣接期間の各レコードを、両方の期間を包含する1つの期間を設定した1つのレコードに置き換えることである。その後、ジョブ分析部161は、処理をステップS122に進める。
[ステップS130]学習部170は、周期が確定した期間ごとに、実行中のジョブと同じグループの実行が終了したジョブの時系列電力データに基づいて、周期に応じた遅れ時間で予測モデルを学習する。
このようにして適切な遅れ時間により予測モデルを学習することができ、その結果、予測モデルを用いた予測値の計算精度が向上する。
次に、HPC運用管理サーバ200によるジョブの強制停止処理の手順について説明する。
図32は、ジョブ強制停止処理の手順の一例を示すフローチャートである。以下、図32に示す処理をステップ番号に沿って説明する。
[ステップS141]ジョブスケジューリング部240は、ジョブの専有ノード数と最大時間に基づいて、ジョブのスケジューリングを行う。スケジューリング結果は、制御指示部250に送信される。制御指示部250は、スケジュールに従ってHPCシステム30にジョブの実行を指示する。
[ステップS142]ジョブスケジューリング部240は、実行中のジョブの消費電力の予測結果を受信すると、その予測結果に基づいて、今後のHPCシステム30の全電力の時系列変化を計算する。例えばジョブスケジューリング部240は、ジョブごとの電力波形を積算し、積算結果をHPCシステム30の電力とする。
[ステップS143]ジョブスケジューリング部240は、HPCシステム30の電力が最大供給電力を超過するか否かを判断する。ジョブスケジューリング部240は、消費電力が最大供給電力を超過する時間がある場合、処理をステップS144に進める。ジョブスケジューリング部240は、消費電力が最大供給電力を超過しなければ、処理を終了する。
[ステップS144]ジョブスケジューリング部240は、実行中のジョブの1つを強制停止する。例えばジョブスケジューリング部240は、実行中のジョブのうち、最も消費電力が大きいジョブを強制停止する。その後、ジョブスケジューリング部240は、処理をステップS143に進める。
このようにして、実行中のジョブの消費電力の予測結果に基づいて、HPCシステム30の消費電力が最大供給電力を超えないように制御することが可能となる。実行中のジョブの消費電力の予測結果が正確であることにより、無駄にジョブを強制停止させることがなくなり、ジョブの実行効率が向上する。また、実行中のジョブの消費電力の予測結果が正確であることで、予測に反してHPCシステム30の消費電力が最大供給電力を超えてしまう事態の発生を抑止でき、HPCシステム30の安定性が向上する。
また、ジョブごとの消費電力を正確に予測できることで、オンデマンド料金制度に基づいて電力料金の契約をしていた場合に、HPCシステム30の消費電力が契約電力を超えないように適切に制御することができる。
図33は、オンデマンド料金制度を説明する図である。図33には、HPCシステム30全体の消費電力を示す電力波形341のグラフを示している。グラフの横軸がHPCシステムの稼働時間であり、縦軸が消費電力である。電力波形341で示される消費電力の時系列変化の所定期間(例えば30分)の平均電力342が、該当期間の電力使用量となる。図33の例では、瞬間最大消費電力は150kwであるが、電力使用量は100kwと換算される。
ここでオンデマンド料金制度では、「電気料金=契約電力料金+電力料金単価×1ヶ月の電力使用量」という計算式で、各月の電力料金が算出される。HPCシステム30では膨大な電力を消費するため、契約電力料金が高額になる。契約電力料金は前年(過去1年間)で最も電力を使用した30分間の電力使用量(最大需要電力)に応じて決定される。そのため30分間単位の時間帯で一度でも契約電力を超過すれば、次年度の電力料金が増加する。
新規投入ジョブの消費電力を正確に予測することができれば、HPC運用管理サーバ200は、以後の30分の時間帯における電力使用量が、過去1年の最大需要電力を超えそうか否かを適切に判断できる。HPC運用管理サーバ200は、過去1年の最大需要電力を超えそうと判断した場合、新規投入ジョブの実行開始を遅らせたり、実行中のジョブを強制停止したりすることで、電力使用量が過去1年の最大需要電力を超えることを抑止できる。その結果、電力料金が抑えられる。
〔その他の実施の形態〕
第2の実施の形態では、算出した周期の1周期分の時間を遅れ時間としているが、管理サーバ100は、周期の整数倍の時間を遅れ時間としてもよい。例えば管理サーバ100は、2周期分の時間を遅れ時間としてもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 HPCシステム
2a 第1ジョブ
2b 第2ジョブ
3 第1消費電力情報
10 ジョブ電力予測装置
11 記憶部
12 処理部

Claims (6)

  1. コンピュータに、
    第1ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報に示される、前記第1ジョブの実行開始から終了までの時間を、複数の期間に分割し、
    前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、
    前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、
    実行中の第2ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得し、
    前記第2消費電力情報に基づいて、前記複数の期間のうちの、前記第2ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第2ジョブの消費電力を予測する、
    処理を実行させるジョブ電力予測プログラム。
  2. 前記コンピュータに、さらに、
    複数の前記第1ジョブおよび前記第2ジョブを、ジョブのステイタス情報の類似性に基づいて1以上のグループに分類する処理を実行させ、
    前記周期の算出および前記予測モデルの生成を、前記グループごとに行い、
    前記第2ジョブの消費電力の予測では、前記第2ジョブが属する所属グループについて生成された前記予測モデルを用いて、前記第2ジョブの消費電力を予測する、
    請求項1記載のジョブ電力予測プログラム。
  3. 前記予測モデルの生成では、予測先の時刻までの時間が異なる複数の前記予測モデルを生成し、
    前記第2ジョブの消費電力の予測では、予測対象時刻における消費電力を予測可能な複数の前記予測モデルの予測結果のうち、過去の予測実績によって算出された予測精度に応じて決定した前記予測モデルの予測結果を採用する、
    請求項1または2記載のジョブ電力予測プログラム。
  4. 前記複数の期間への分割および前記周期の算出では、
    前記第1ジョブの実行開始から終了までの時間を、前記周期が未確定の周期未確定期間の初期値として設定し、
    前記周期未確定期間が設定されるごとに、分割数を初期値から増加させながら前記周期未確定期間を繰り返し分割し、
    前記周期が未確定の期間が分割されるごとに、分割された期間ごとの消費電力の時系列変化の予想周期を算出し、
    算出した前記予想周期が同じ複数の期間が存在する場合、算出した前記予想周期を該当期間の前記周期に確定すると共に、該当期間を周期確定期間とし、前記周期確定期間以外の期間を新たな前記周期未確定期間として設定する、
    請求項1ないし3のいずれかに記載のジョブ電力予測プログラム。
  5. コンピュータが、
    第1ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報に示される、前記第1ジョブの実行開始から終了までの時間を、複数の期間に分割し、
    前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、
    前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、
    実行中の第2ジョブについての実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得し、
    前記第2消費電力情報に基づいて、前記複数の期間のうちの、前記第2ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第2ジョブの消費電力を予測する、
    ジョブ電力予測方法。
  6. 第1ジョブについての実行開始からの経過時間に応じた消費電力の実測値である第1消費電力情報を記憶する記憶部と、
    前記第1消費電力情報に示される、前記第1ジョブの実行開始から終了までの時間を、複数の期間に分割し、前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、期間内での消費電力の時系列変化の周期を算出し、前記第1消費電力情報に基づいて、前記複数の期間それぞれについて、算出した前記周期に応じた時間分の消費電力の実測値を用いて所定時間先の消費電力を予測する予測モデルを生成し、実行中の第2ジョブについての、実行開始からの経過時間に応じた消費電力の現在までの実測値である第2消費電力情報を取得し、前記第2消費電力情報に基づいて、前記複数の期間のうちの、前記第2ジョブの実行開始から現在までの経過時間を包含する期間について生成された前記予測モデルを用いて、以後の前記第2ジョブの消費電力を予測する処理部と、
    を有するジョブ電力予測装置。
JP2019022253A 2019-02-12 2019-02-12 ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 Active JP7177350B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019022253A JP7177350B2 (ja) 2019-02-12 2019-02-12 ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
US16/752,086 US11392475B2 (en) 2019-02-12 2020-01-24 Job power predicting method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019022253A JP7177350B2 (ja) 2019-02-12 2019-02-12 ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置

Publications (2)

Publication Number Publication Date
JP2020129314A true JP2020129314A (ja) 2020-08-27
JP7177350B2 JP7177350B2 (ja) 2022-11-24

Family

ID=71946021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019022253A Active JP7177350B2 (ja) 2019-02-12 2019-02-12 ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置

Country Status (2)

Country Link
US (1) US11392475B2 (ja)
JP (1) JP7177350B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3979021A1 (en) * 2020-09-30 2022-04-06 Ricoh Company, Ltd. Scheduling system, scheduling method, and carrier means
US11984334B2 (en) * 2021-04-13 2024-05-14 Accenture Global Solutions Limited Anomaly detection method and system for manufacturing processes
JP2023076063A (ja) * 2021-11-22 2023-06-01 富士通株式会社 制御プログラム、情報処理装置および制御方法
CN115471145B (zh) * 2022-11-15 2024-06-04 碳管家智能云平台有限公司 一种企业能耗双控管理方法、设备及介质
CN116069143B (zh) * 2023-04-06 2023-07-18 山东省计算中心(国家超级计算济南中心) 一种基于作业相似性判断功耗预测的节能方法及系统
CN117421131B (zh) * 2023-12-18 2024-03-26 武汉泽塔云科技股份有限公司 一种监控服务器功耗负载的智能调度方法及系统
CN117667606B (zh) * 2024-02-02 2024-05-24 山东省计算中心(国家超级计算济南中心) 基于用户行为的高性能计算集群能耗预测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014184928A1 (ja) * 2013-05-16 2014-11-20 株式会社日立製作所 検出装置、検出方法、および記録媒体
WO2017217466A1 (ja) * 2016-06-17 2017-12-21 パナソニックIpマネジメント株式会社 電力管理システム
JP2018010651A (ja) * 2013-07-18 2018-01-18 株式会社Nttファシリティーズ 節電支援システム、及び節電支援装置
JP2018026050A (ja) * 2016-08-12 2018-02-15 富士通株式会社 並列処理装置、ジョブ管理プログラムおよびジョブ管理方法
JP2018084907A (ja) * 2016-11-22 2018-05-31 富士通株式会社 ジョブ消費電力推定プログラム、並列処理装置およびジョブ消費電力推定方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146915A (ja) 1995-11-20 1997-06-06 Meidensha Corp カオス時系列短期予測装置
KR102615227B1 (ko) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014184928A1 (ja) * 2013-05-16 2014-11-20 株式会社日立製作所 検出装置、検出方法、および記録媒体
JP2018010651A (ja) * 2013-07-18 2018-01-18 株式会社Nttファシリティーズ 節電支援システム、及び節電支援装置
WO2017217466A1 (ja) * 2016-06-17 2017-12-21 パナソニックIpマネジメント株式会社 電力管理システム
JP2018026050A (ja) * 2016-08-12 2018-02-15 富士通株式会社 並列処理装置、ジョブ管理プログラムおよびジョブ管理方法
JP2018084907A (ja) * 2016-11-22 2018-05-31 富士通株式会社 ジョブ消費電力推定プログラム、並列処理装置およびジョブ消費電力推定方法

Also Published As

Publication number Publication date
US11392475B2 (en) 2022-07-19
US20200257605A1 (en) 2020-08-13
JP7177350B2 (ja) 2022-11-24

Similar Documents

Publication Publication Date Title
JP7177350B2 (ja) ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
Smalter Hall et al. Macroeconomic indicator forecasting with deep neural networks
CN111309479B (zh) 一种任务并行处理的实现方法、装置、设备和介质
Liu et al. A novel statistical time-series pattern based interval forecasting strategy for activity durations in workflow systems
Wu et al. Adaptive workload prediction of grid performance in confidence windows
US8078913B2 (en) Automated identification of performance crisis
US20210359514A1 (en) Information processing apparatus and job scheduling method
Battle et al. Database benchmarking for supporting real-time interactive querying of large data
Koushanfar et al. Sleeping coordination for comprehensive sensing using isotonic regression and domatic partitions
Ipek et al. Efficient architectural design space exploration via predictive modeling
Huang et al. A framework for scalable bilevel optimization: Identifying and utilizing the interactions between upper-level and lower-level variables
WO2017161646A1 (zh) 大数据量预测的三层联合动态选择最优模型方法
Patel et al. MAG-D: A multivariate attention network based approach for cloud workload forecasting
US11402889B2 (en) Storage medium, job power estimation method, and job power estimating device
CN114417733A (zh) 构建功耗预测模型的方法、装置、电子设备及存储介质
CN109558952A (zh) 数据处理方法、系统、设备及存储介质
Zou et al. Indicator-directed dynamic power management for iterative workloads on GPU-accelerated systems
US20220027758A1 (en) Information processing apparatus and information processing method
JP7235960B2 (ja) ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
Meulemeester et al. How sustainable is “common” data science in terms of power consumption?
Tripp et al. Measuring the Energy Consumption and Efficiency of Deep Neural Networks: An Empirical Analysis and Design Recommendations
Volpe et al. A Deep Reinforcement Learning Approach for Competitive Task Assignment in Enterprise Blockchain
Yik et al. NeuroBench: A Framework for Benchmarking Neuromorphic Computing Algorithms and Systems
KR102388579B1 (ko) 에너지 관리 장치 및 그 방법
Pal et al. An Integrated Job Monitor, Analyzer and Predictor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211109

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20211111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211111

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221024

R150 Certificate of patent or registration of utility model

Ref document number: 7177350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150