JP2022023420A - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents
情報処理装置、情報処理方法および情報処理プログラム Download PDFInfo
- Publication number
- JP2022023420A JP2022023420A JP2020126357A JP2020126357A JP2022023420A JP 2022023420 A JP2022023420 A JP 2022023420A JP 2020126357 A JP2020126357 A JP 2020126357A JP 2020126357 A JP2020126357 A JP 2020126357A JP 2022023420 A JP2022023420 A JP 2022023420A
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- samples
- clusters
- power consumption
- training data
- 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.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims description 47
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012549 training Methods 0.000 claims abstract description 113
- 238000005259 measurement Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 22
- 238000013528 artificial neural network Methods 0.000 claims description 15
- 239000000284 extract Substances 0.000 claims description 12
- 238000010801 machine learning Methods 0.000 description 101
- 238000000034 method Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 230000000306 recurrent effect Effects 0.000 description 8
- 230000015654 memory Effects 0.000 description 7
- 230000002950 deficient Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000010248 power generation Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】消費電力予測モデルの生成に使用する訓練データの品質を向上させる。【解決手段】それぞれ消費電力の時系列の測定値を含む複数のサンプルに対して第1のクラスタリングを実行することで、複数の第1のクラスタを生成する。複数の第1のクラスタを、サンプル間の相関値の分散が第1の閾値未満であることと相関値の平均が第2の閾値を超えることの少なくとも一方を含む判定条件を満たす第2のクラスタと、判定条件を満たさない第3のクラスタとに分類する。第3のクラスタに含まれるサンプルに対して第2のクラスタリングを実行することで、第3のクラスタを複数の第4のクラスタに分割する。第2のクラスタと複数の第4のクラスタの少なくとも一部とに基づいて、消費電力を予測するためのモデルの生成に使用する訓練データを生成する。【選択図】図1
Description
本発明は情報処理装置、情報処理方法および情報処理プログラムに関する。
HPC(High Performance Computing)システムなどの大規模情報処理システムは、全体として非常に大きな電力を消費することがある。そのため、運用コストや環境負荷の観点から、大規模情報処理システムは、単位時間当たりの全体の消費電力が閾値を超えないという運用目標を設定していることがある。一方、大規模情報処理システムは、複数のジョブを並列に実行する。それら複数のジョブの間では、プロセッサ使用率、ストレージアクセス頻度、通信頻度などのリソース使用パターンが異なることがある。そのため、単位時間当たりの消費電力がジョブによって異なることがある。
そこで、大規模情報処理システムは、ジョブ毎に消費電力を予測し、ジョブ毎の消費電力の予測値を合算して全体の消費電力を予測することがある。全体の消費電力がこのままでは閾値を超える可能性があると予測した場合、大規模情報処理システムは、消費電力を考慮してジョブのスケジューリングを行うことがある。例えば、大規模情報処理システムは、消費電力が大きい一部のジョブを中断することがある。
なお、ニューラルネットワークを用いて太陽光発電の発電量を予測する予測装置が提案されている。提案の予測装置は、訓練データを複数のクラスタに分割し、クラスタ毎に機械学習によってニューラルネットワークを生成する。予測装置は、入力データを受け付けると、入力データに最も近似するクラスタを特定し、特定したクラスタに対応するニューラルネットワークを用いて発電量を予測する。
また、HPCシステムの合計消費電量が基準量を超えないように、各ジョブの消費電力の上限および各ジョブが使用するノードのプロセッサ周波数を制御するジョブスケジューラが提案されている。また、機械装置が実行したプロセスの種類を推定する管理装置が提案されている。提案の管理装置は、機械装置の消費電力の時間変化を示す時系列データを取得し、時系列データを複数のクラスの何れか1つに分類する。管理装置は、分類先のクラスに応じて、機械装置で実行されたプロセスの種類を推定する。
深層学習によって生成される多層ニューラルネットワークなど、機械学習によって生成されるモデルを用いて、ジョブの消費電力を予測する方法が考えられる。消費電力予測モデルを生成する機械学習には、過去に実行されたジョブの消費電力の時間変化を示すサンプルを訓練データとして使用することが考えられる。
ただし、大規模情報処理システムからは大量のサンプルが収集される一方、それら大量のサンプルの中には類似する消費電力を示すサンプルも含まれている。このため、収集される全てのサンプルを訓練データとして使用することは非効率である。そこで、サンプルの集合に対してクラスタリングを行い、クラスタリングの結果に基づいて、訓練データのサイズを削減する方法が考えられる。しかし、k平均法などの一般的なクラスタリングアルゴリズムでは、消費電力の時間変化を示すサンプルの分類精度が高くないことがある。その結果、訓練データの品質が低くなり、訓練データから生成される消費電力予測モデルの予測精度が低くなることがあるという問題がある。
1つの側面では、本発明は、消費電力予測モデルの生成に使用する訓練データの品質を向上させる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。記憶部は、それぞれ消費電力の時系列の測定値を含む複数のサンプルを記憶する。処理部は、複数のサンプルに対して第1のクラスタリングを実行することで、それぞれ2以上のサンプルを含む複数の第1のクラスタを生成する。処理部は、複数の第1のクラスタを、2以上のサンプル間の相関値の分散が第1の閾値未満であることと相関値の平均が第2の閾値を超えることの少なくとも一方を含む判定条件を満たす第2のクラスタと、判定条件を満たさない第3のクラスタとに分類する。処理部は、第3のクラスタに含まれる2以上のサンプルに対して第2のクラスタリングを実行することで、第3のクラスタを複数の第4のクラスタに分割する。処理部は、第2のクラスタと複数の第4のクラスタの少なくとも一部とに基づいて、消費電力を予測するためのモデルの生成に使用する訓練データを生成する。
また、1つの態様では、コンピュータが実行する情報処理方法が提供される。また、1つの態様では、コンピュータに実行させる情報処理プログラムが提供される。
1つの側面では、消費電力予測モデルの生成に使用する訓練データの品質が向上する。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、機械学習に用いられる訓練データを生成する。情報処理装置10が、訓練データを用いて機械学習を実行してモデルを生成してもよい。また、情報処理装置10が、生成されたモデルを用いて予測を実行してもよい。機械学習によって、消費電力を予測するためのモデルが生成される。
第1の実施の形態の情報処理装置10は、機械学習に用いられる訓練データを生成する。情報処理装置10が、訓練データを用いて機械学習を実行してモデルを生成してもよい。また、情報処理装置10が、生成されたモデルを用いて予測を実行してもよい。機械学習によって、消費電力を予測するためのモデルが生成される。
モデルは、深層学習によって生成される多層ニューラルネットワークであってもよい。生成されるモデルは、HPCシステムなどの大規模情報処理システムで実行されるジョブの消費電力を予測するためのモデルであってもよい。生成されるモデルが、大規模情報処理システムのジョブのスケジューリングに使用されてもよい。また、生成されるモデルは、直前期間の消費電力の実績から将来の消費電力を予測するためのモデルであってもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。また、情報処理装置10が、コンピュータや機械学習装置などと呼ばれてもよい。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよい。また、記憶部11は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合が、「マルチプロセッサ」または単に「プロセッサ」と呼ばれることがある。
記憶部11は、複数のサンプルを含むサンプル集合13を記憶する。各サンプルは、消費電力の時系列の測定値を含む。サンプルが消費電力信号と呼ばれてもよい。各サンプルは、例えば、5分間隔で測定された消費電力の測定値の列である。異なるサンプルは、例えば、HPCシステムで過去に実行された異なるジョブの消費電力を示す。ジョブの消費電力は、例えば、ジョブが使用した計算ノード1台当たりの平均消費電力である。ジョブの消費電力は、プロセッサ使用率、ストレージアクセス頻度、通信頻度などのリソース使用パターンの影響を受ける。よって、演算内容によって消費電力が変化する。
処理部12は、サンプル集合13から訓練データ16を生成する。まず、処理部12は、サンプル集合13に対して第1のクラスタリングを実行する。第1のクラスタリングには、k平均法(k-means)や混合ガウスモデル(GMM:Gaussian Mixture Model)など、様々なクラスタリングアルゴリズムを使用できる。第1のクラスタリングにより、処理部12は、それぞれ2以上のサンプルを含む複数の第1のクラスタを生成する。例えば、処理部12は、クラスタ14a,14bを生成する。クラスタ14aは、サンプル#1,#2,#3を含む。クラスタ14bは、サンプル#4,#5,#6,#7を含む。
次に、処理部12は、複数の第1のクラスタを、判定条件15を満たす第2のクラスタと、判定条件15を満たさない第3のクラスタとに分類する。判定条件15は、分散条件と平均条件の少なくとも一方を含む。判定条件15は、分散条件を満たすかまたは平均条件を満たすこと(OR条件)であってもよいし、分散条件を満たしかつ平均条件を満たすこと(AND条件)であってもよい。分散条件は、同一クラスタ内のサンプル間の相関値の分散が第1の閾値未満であることである。平均条件は、同一クラスタ内のサンプル間の相関値の平均が第2の閾値を超えることである。
相関値は、例えば、複数の第1のクラスタそれぞれについて、そのクラスタ内のサンプルのペア毎に網羅的に算出される。相関値は、2つのサンプルの間の相関を示す指標値である。例えば、相関値は、2つの時系列の測定値の間の相互相関である。相関値が大きいほど、2つのサンプルが類似していることを示しており、消費電力の時間変化が類似することを意味する。相関値が小さいほど、2つのサンプルが類似していないことを示しており、消費電力の時間変化が類似しないことを意味する。
分散の閾値および平均の閾値は、固定値でもよいし、ユーザから指定されてもよい。また、分散の閾値は、複数の第1のクラスタに対して算出された分散の分布に基づいて相対的に決定されてもよい。同様に、平均の閾値は、複数の第1のクラスタに対して算出された平均の分布に基づいて相対的に決定されてもよい。なお、「分散」は、統計理論上の狭義の分散でもよいし、標準偏差など分布の広さを示す他の指標で表現されてもよい。
例えば、クラスタ14aが判定条件15を満たし、クラスタ14bが判定条件15を満たさない。そこで、処理部12は、クラスタ14aを第2のクラスタに分類し、クラスタ14bを第3のクラスタに分類する。クラスタ14aでは、サンプル#1,#2,#3の時系列の測定値が互いに類似している。一方、クラスタ14bでは、サンプル#4,#5,#6,#7の時系列の測定値が互いに類似しているとは言えない。第2のクラスタが良クラスタと呼ばれてもよく、第3のクラスタが不良クラスタと呼ばれてもよい。
次に、処理部12は、第3のクラスタに対して第2のクラスタリングを実行する。第2のクラスタリングには、第1のクラスタリングと同じクラスタリングアルゴリズムを使用してもよいし、異なるクラスタリングアルゴリズムを使用してもよい。第2のクラスタリングにより、処理部12は、各第3のクラスタを複数の第4のクラスタに分割する。例えば、処理部12は、クラスタ14bをクラスタ14c,14dに分割する。クラスタ14cは、サンプル#4,#5を含む。クラスタ14dは、サンプル#6,#7を含む。
クラスタ14cに属するサンプル#4,#5の間の類似度は高いことが期待される。よって、クラスタ14cの相関値の分散はクラスタ14bよりも小さく、クラスタ14cの相関値の平均はクラスタ14bよりも大きいことが期待される。同様に、クラスタ14dに属するサンプル#6,#7の間の類似度は高いことが期待される。よって、クラスタ14dの相関値の分散はクラスタ14bよりも小さく、クラスタ14dの相関値の平均はクラスタ14bよりも大きいことが期待される。
そして、処理部12は、第1のクラスタリングによって生成された第2のクラスタと、第2のクラスタリングによって生成された複数の第4のクラスタの少なくとも一部とを用いて、訓練データ16を生成する。このとき、処理部12は、複数の第4のクラスタのうち判定条件15を満たす第4のクラスタを使用してもよい。例えば、処理部12は、クラスタ14aとクラスタ14cとに基づいて、訓練データ16を生成する。訓練データ16は、消費電力を予測するためのモデルを生成する機械学習に使用される。
訓練データ16の生成では、例えば、処理部12は、着目するクラスタそれぞれから代表サンプルを抽出する。1個のクラスタにつき1個の代表サンプルが抽出されてもよい。代表サンプルは、着目するクラスタに属する2以上のサンプルの消費電力の時間変化の傾向を表しており、それら2以上のサンプルを近似する。代表サンプルは、着目するクラスタに属する2以上のサンプルのうちの何れか1つであってもよいし、それら2以上のサンプルから算出される新たなサンプルであってもよい。
代表サンプルは、クラスタの重心と呼ばれてもよい。例えば、代表サンプルは、着目するクラスタに含まれる2以上のサンプルの平均であってもよく、そのクラスタの分布の中心であってもよい。その場合、代表サンプルの各時刻の測定値は、それら2以上のサンプルの各時刻の測定値の平均である。また、代表サンプルは、着目するクラスタに含まれる2以上のサンプルのうち、平均に最も近いサンプルであってもよく、そのクラスタの分布の中心に最も近いサンプルであってもよい。
処理部12は、例えば、抽出した代表サンプルを訓練データ16に加える。訓練データ16は、上記の方法で抽出された代表サンプルのみを含んでもよい。訓練データ16のサイズ(サンプル数)は、サンプル集合13よりも小さいことが期待される。
第1の実施の形態の情報処理装置10によれば、サンプル集合13に対して第1段階のクラスタリングが実行される。第1段階のクラスタリングによって生成された複数のクラスタが、サンプル間の相関に基づいて、サンプルの分布が狭い良クラスタとサンプルの分布が広い不良クラスタとに分類される。不良クラスタに対して第2段階のクラスタリングが実行され、不良クラスタが複数のクラスタに細分化される。そして、第1段階のクラスタリングおよび第2段階のクラスタリングの結果から、訓練データ16が生成される。
第2段階のクラスタリングを行わない場合、サンプルの分布が広い不良クラスタが使用される可能性がある。例えば、不良クラスタから、そのクラスタに属するサンプルを近似しているとは言えない不適切な代表サンプルが抽出される可能性がある。その結果、訓練データ16の品質が低下し、訓練データ16から生成されるモデルの予測精度が低下するおそれがある。これに対して、第2段階のクラスタリングを行うことで、訓練データ16の品質が向上し、訓練データ16から生成されるモデルの予測精度が向上する。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、HPCシステム31、ジョブスケジューラ32および機械学習装置100を含む。HPCシステム31、ジョブスケジューラ32および機械学習装置100は、ネットワーク30に接続されている。ネットワーク30は、LAN(Local Area Network)などのローカルネットワークを含んでもよく、インターネットなどの広域ネットワークを含んでもよい。
HPCシステム31は、多量の計算リソースをもつ大規模情報処理システムである。HCPシステム31は、ジョブスケジューラ32から指示されるスケジュールに従って、複数のジョブを並列に実行する。HPCシステム31は、コンピュータである複数の計算ノードを含む。各計算ノードは、プロセッサ、メモリおよび通信インタフェースを有し、プログラムを実行する。複数の計算ノードは、ネットワークで接続されている。ネットワークは、例えば、メッシュ型やトーラス型などの相互結合網である。
ジョブは、1以上のプロセスを含む。各プロセスは、ユーザが作成したプログラムに基づいて起動される。ジョブが2以上のプロセスを含む場合、それら2以上のプロセスは異なる計算ノードによって並列に実行される。1つのジョブは、1以上の計算ノードを使用する。ジョブが使用する計算ノードの個数は、ユーザから指定される。HPCシステム31は、計算ノードの内部または外部に、消費電力を測定するセンサデバイスをもつ。消費電力は、プロセッサ、メモリ、通信インタフェースなどのハードウェアの使用に起因して変動する。HPCシステム31は、各計算ノードの消費電力を継続的に(例えば、5分間隔で)測定し、消費電力の測定値をジョブスケジューラ32に報告する。
ジョブスケジューラ32は、ジョブスケジューリングを行うサーバコンピュータである。ジョブスケジューラ32は、ユーザからジョブ実行要求を受け付ける。ジョブスケジューラ32は、各ジョブにHPCシステム31の計算ノードを割り当て、HPCシステム31にジョブのプログラムの実行を指示する。計算ノードの不足により全てのジョブを並列に実行できない場合、ジョブスケジューラ32は、複数のジョブの実行順序を決定し、一部のジョブを待機させて実行開始を遅延させる。
また、ジョブスケジューラ32は、HPCシステム31の全体消費電力が契約電力量を超えないように、消費電力を考慮したジョブスケジューリングを行う。ジョブスケジューラ32は、機械学習装置100から消費電力予測モデルを取得する。また、ジョブスケジューラ32は、HPCシステム31から消費電力情報を収集し、実行中のジョブそれぞれの消費電力を算出する。ジョブの消費電力として、例えば、計算ノード1台当たりの平均消費電力が算出される。ジョブスケジューラ32は、ジョブのこれまでの消費電力を消費電力予測モデルに入力し、今後(例えば、現時刻から30分間)の消費電力を予測する。
ジョブスケジューラ32は、各ジョブの消費電力の予測値に基づいて、HPCシステム31の今後の全体消費電力を予測する。全体消費電力の予測値が契約電力量を超える場合、ジョブスケジューラ32は、全体消費電力を契約電力量以下に抑えるための対応策を実行する。例えば、ジョブスケジューラ32は、一部のジョブを中断させる。例えば、ジョブスケジューラ32は、一部のジョブのプロセスを30分間停止させる。中断するジョブは、例えば、消費電力の大きいジョブである。
機械学習装置100は、機械学習によって消費電力予測モデルを生成するコンピュータである。機械学習装置100は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置100は、第1の実施の形態の情報処理装置10に対応する。機械学習装置100は、ジョブスケジューラ32から、過去に実行されたジョブの消費電力の時間変化を示すサンプルを収集する。機械学習装置100は、収集したサンプルから訓練データを生成し、訓練データを用いて消費電力予測モデルを生成する。
第2の実施の形態の消費電力予測モデルは、多層ニューラルネットワークである。消費電力予測モデルは、消費電力の測定値の列を入力データとして受け付け、消費電力の予測値の列を出力データとして出力する。機械学習装置100は、生成した消費電力予測モデルをジョブスケジューラ32に提供する。
図3は、機械学習装置のハードウェア例を示すブロック図である。
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、バスに接続されている。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。HPCシステム31に含まれるノードやジョブスケジューラ32が、同様のハードウェアを用いて実現されてもよい。
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、バスに接続されている。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。HPCシステム31に含まれるノードやジョブスケジューラ32が、同様のハードウェアを用いて実現されてもよい。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。機械学習装置100に複数種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介してジョブスケジューラ32と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
次に、ジョブの消費電力の予測について説明する。
図4は、ジョブの消費電力の予測と実績の例を示すグラフである。
曲線41は、あるジョブの消費電力の実績を示す消費電力信号である。曲線42は、消費電力予測モデルによって算出される消費電力の予測を示す消費電力信号である。曲線41,42が示す消費電力は、例えば、ジョブが使用する計算ノード1台当たりの平均消費電力である。ジョブの総消費電力は、例えば、曲線41,42が示す消費電力に計算ノードの台数を乗じた量になる。消費電力の実績は、5分間隔で測定される。よって、曲線41は、5分間隔の測定値の列で表現される。また、消費電力の予測は、5分間隔で算出される。よって、曲線42は、5分間隔の予測値の列で表現される。消費電力の予測の対象となるジョブの実行時間は、最短で35分、最長で1440分(24時間)である。よって、1つのジョブの消費電力の測定値の個数は、最小で7個、最大で288個である。
図4は、ジョブの消費電力の予測と実績の例を示すグラフである。
曲線41は、あるジョブの消費電力の実績を示す消費電力信号である。曲線42は、消費電力予測モデルによって算出される消費電力の予測を示す消費電力信号である。曲線41,42が示す消費電力は、例えば、ジョブが使用する計算ノード1台当たりの平均消費電力である。ジョブの総消費電力は、例えば、曲線41,42が示す消費電力に計算ノードの台数を乗じた量になる。消費電力の実績は、5分間隔で測定される。よって、曲線41は、5分間隔の測定値の列で表現される。また、消費電力の予測は、5分間隔で算出される。よって、曲線42は、5分間隔の予測値の列で表現される。消費電力の予測の対象となるジョブの実行時間は、最短で35分、最長で1440分(24時間)である。よって、1つのジョブの消費電力の測定値の個数は、最小で7個、最大で288個である。
消費電力予測モデルの精度は、曲線41が示す消費電力の実績と曲線42が示す消費電力の予測との間の誤差によって評価される。誤差の指標として、例えば、二乗平均平方根誤差(RMSE:Root Mean Squared Error)が使用される。ジョブ毎にRMSEが算出される。予測対象のジョブがn個存在する場合、消費電力予測モデルの精度は、n個のジョブのRMSEの平均である全体RMSEによって評価される。全体RMSEが小さいほどモデル精度が高く、全体RMSEが大きいほどモデル精度が低いことを意味する。
全体RMSEは、数式(1)によって算出される。数式(1)において、nはジョブ数、jはジョブ番号、Tは測定点(測定時刻)の個数、tは測定点の番号、yは消費電力の測定値、y^は消費電力の予測値である。例えば、T=288である。
HPCシステム31の所有者は、電力会社と大口電力供給契約を締結している。大口電力供給契約では、契約電力量が設定される。電力会社は、30分毎にHPCシステム31の平均消費電力を算出する。HPCシステム31の所有者が電力会社に支払う電気料金は、原則として固定料金である。ただし、30分間の平均消費電力が契約電力量を超えることがあると、ペナルティとして高額な追加料金が発生する。そこで、ジョブスケジューラ32は、HPCシステム31の運用コストを下げるため、消費電量が契約電力量を超えないようにジョブスケジューリングを行う。
図5は、モデルによる消費電力の予測例を示す図である。
モデル50は、機械学習装置100によって生成される消費電力予測モデルである。モデル50として再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)が使用される。再帰型ニューラルネットワークは、時系列の測定値を受け付け、時系列の予測値を出力する。再帰型ニューラルネットワークは、出力に近いノードから入力に近いノードに戻るフィードバックパスをもつ。これにより、再帰型ニューラルネットワークは、内部状態を保持する。内部状態が存在するため、時刻tの出力は、時刻tの入力だけでなく時刻t-1以前の入力にも依存する。再帰型ニューラルネットワークの一例として、LSTM(Long Short Term Memory)やGRU(Gated Recurrent Unit)が挙げられる。
モデル50は、機械学習装置100によって生成される消費電力予測モデルである。モデル50として再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)が使用される。再帰型ニューラルネットワークは、時系列の測定値を受け付け、時系列の予測値を出力する。再帰型ニューラルネットワークは、出力に近いノードから入力に近いノードに戻るフィードバックパスをもつ。これにより、再帰型ニューラルネットワークは、内部状態を保持する。内部状態が存在するため、時刻tの出力は、時刻tの入力だけでなく時刻t-1以前の入力にも依存する。再帰型ニューラルネットワークの一例として、LSTM(Long Short Term Memory)やGRU(Gated Recurrent Unit)が挙げられる。
モデル50の使用フェーズでは、モデル50に、実行中のジョブのこれまでの消費電力の測定値の列が入力される。そして、モデル50から、実行中のジョブの今後の消費電力の予測値の列が出力される。曲線43は、消費電力の時系列の測定値を示す入力信号である。曲線44は、消費電力の時系列の予測値を示す出力信号である。例えば、モデル50は、30分以上の期間の時系列の測定値、すなわち、6個以上の測定値を受け付ける。モデル50は、ジョブの実行開始から現在までの全ての測定値を受け付けてもよいし、直近の30分の測定値のみを受け付けてもよい。そして、モデル50は、入力期間に続く30分の期間の時系列の予測値、すなわち、6個の予測値を出力する。
モデル50の学習フェーズでは、曲線43に相当する時系列の測定値および曲線44に相当する時系列の測定値を含むサンプルが収集される。機械学習において、曲線43に相当する時系列の測定値が入力データとして使用され、曲線44に相当する時系列の測定値が教師データとして使用される。収集されたサンプルを用いて、誤差逆伝播法により、モデル50に含まれるパラメータの値が最適化される。
機械学習装置100は、サンプルに含まれる30分以上の期間の時系列の測定値、すなわち、6個以上の測定値をモデル50に入力する。モデル50から、入力期間に続く30分の期間の時系列の予測値、すなわち、6個の予測値が出力される。機械学習装置100は、モデル50から出力された時系列の予測値と、サンプルに含まれる入力期間に続く30分の期間の時系列の測定値との間の誤差を算出する。機械学習装置100は、誤差が小さくなるように、モデル50に含まれるパラメータの値を更新する。
次に、消費電力予測モデルの生成に使用する訓練データについて説明する。HPCシステム31は多数のジョブを実行するため、HPCシステム31からはジョブの消費電力の時間変化を示すサンプルが大量に収集される。一方、それら多数のサンプルの中には、消費電力の時間変化が類似するサンプルが存在する。このため、HPCシステム31から収集される全てのサンプルを訓練データとして採用すると、訓練データが冗長になり、訓練データのサイズが肥大化する。その結果、機械学習の実行時間が無駄に長くなるなど、機械学習が非効率になる。そこで、機械学習装置100は、訓練データを削減する。
図6は、クラスタリングによる訓練データの削減例を示す図である。
サンプル集合61は、HPCシステム31から収集されたサンプルの集合である。サンプル集合61の各サンプルは、ジョブの消費電力の時間変化を表す。サンプル集合61には、実行時間が異なるジョブのサンプルが混在している。機械学習装置100は、クラスタリングアルゴリズムにより、サンプル集合61を、それぞれ2以上のサンプルを含む複数のクラスタに分割する。クラスタリングアルゴリズムとして、例えば、k平均法が用いられる。消費電力の時間変化が類似するサンプルが、同一のクラスタに分類されることが期待される。また、クラスタリングを通じて、実行時間が大きく異なるジョブのサンプルが、異なるクラスタに分類されることが期待される。
サンプル集合61は、HPCシステム31から収集されたサンプルの集合である。サンプル集合61の各サンプルは、ジョブの消費電力の時間変化を表す。サンプル集合61には、実行時間が異なるジョブのサンプルが混在している。機械学習装置100は、クラスタリングアルゴリズムにより、サンプル集合61を、それぞれ2以上のサンプルを含む複数のクラスタに分割する。クラスタリングアルゴリズムとして、例えば、k平均法が用いられる。消費電力の時間変化が類似するサンプルが、同一のクラスタに分類されることが期待される。また、クラスタリングを通じて、実行時間が大きく異なるジョブのサンプルが、異なるクラスタに分類されることが期待される。
ここでは、機械学習装置100は、サンプル集合61を、クラスタ62,63を含む複数のクラスタに分割する。すると、機械学習装置100は、1つのクラスタにつき、そのクラスタに属する2以上のサンプルを代表する1つの代表サンプルを抽出する。代表サンプルは、そのクラスタの重心に相当するサンプルである。例えば、代表サンプルは、そのクラスタに属するサンプルの各時刻の測定値を平均化して算出される平均サンプルである。平均サンプルは、測定値の列をベクトルとみなしたときの平均ベクトルである。
ここでは、機械学習装置100は、クラスタ62から代表サンプル66を抽出し、クラスタ63から代表サンプル67を抽出する。機械学習装置100は、複数のクラスタそれぞれから抽出した代表サンプルの集合を、訓練データとして使用する。ここでは、代表サンプル66,67が訓練データに採用される。これにより、クラスタの個数に相当する代表サンプルを含む訓練データが生成される。よって、訓練データの冗長性が抑制され、サンプル集合61よりもサイズの小さい訓練データが生成される。
しかし、時系列データを含むサンプルに対してk平均法などの一般的なクラスタリングアルゴリズムを実行すると、一部のクラスタがサンプルの分布の広いクラスタになってしまうことがある。サンプルの分布の広いクラスタは、消費電力の分散が大きいクラスタであり、消費電力の時間変化の類似度が低いサンプルを包含する。例えば、図6のクラスタ62はサンプル間の類似度が高い良クラスタである一方、図6のクラスタ63はサンプル間の類似度が低い不良クラスタである。
サンプルの分布の広い不良クラスタから代表サンプルを抽出すると、不良クラスタに属する2以上のサンプルを代表サンプルが十分に近似しているとは言えなくなる。その結果、代表サンプルを含む訓練データの品質が低下し、訓練データから生成される消費電力予測モデルの予測精度が低下することがある。そこで、機械学習装置100は、クラスタリングとクラスタの評価を再帰的に実行して、訓練データの品質を向上させる。
図7は、不良クラスタの再分割の例を示す図である。
機械学習装置100は、サンプル集合61を、クラスタ62,63を含む複数のクラスタに分割する。すると、機械学習装置100は、生成した複数のクラスタを、サンプルの分布が狭い良クラスタとサンプルの分布が広い不良クラスタとに分類する。良クラスタと不良クラスタへの分類には、後述するように、同一クラスタ内でのサンプル間の相互相関に基づく指標が用いられる。サンプル間の相関が高いクラスタが良クラスタであり、サンプル間の相関が低いクラスタが不良クラスタである。ここでは、機械学習装置100は、クラスタ62を良クラスタと判定し、クラスタ63を不良クラスタと判定する。
機械学習装置100は、サンプル集合61を、クラスタ62,63を含む複数のクラスタに分割する。すると、機械学習装置100は、生成した複数のクラスタを、サンプルの分布が狭い良クラスタとサンプルの分布が広い不良クラスタとに分類する。良クラスタと不良クラスタへの分類には、後述するように、同一クラスタ内でのサンプル間の相互相関に基づく指標が用いられる。サンプル間の相関が高いクラスタが良クラスタであり、サンプル間の相関が低いクラスタが不良クラスタである。ここでは、機械学習装置100は、クラスタ62を良クラスタと判定し、クラスタ63を不良クラスタと判定する。
不良クラスタが存在する場合、機械学習装置100は、不良クラスタ毎に、その不良クラスタに属する2以上のサンプルに対してクラスタリングを再実行し、その不良クラスタを複数のクラスタに細分化する。不良クラスタを細分化するためのクラスタリングアルゴリズムは、サンプル集合61のクラスタリングと同じでもよいし異なってもよい。例えば、機械学習装置100は、k平均法により、クラスタ63をクラスタ64とクラスタ65に分割する。分割後のクラスタ64,65のサンプルの分布は、分割前のクラスタ63のサンプルの分布よりも狭くなっていることが期待される。
機械学習装置100は、再帰的に、細分化した複数のクラスタを、サンプルの分布が狭い良クラスタとサンプルの分布が広い不良クラスタとに分類する。ここでは、機械学習装置100は、クラスタ64を不良クラスタと判定し、クラスタ65を良クラスタと判定する。そして、機械学習装置100は、良クラスタのみから代表サンプルを抽出し、不良クラスタから代表サンプルを抽出しない。ここでは、機械学習装置100は、クラスタ62から代表サンプル66を抽出し、クラスタ65から代表サンプル68を抽出する。
代表サンプル66は、クラスタ62に含まれる2以上のサンプルを十分に近似している。また、代表サンプル68は、クラスタ65に含まれる2以上のサンプルを十分に近似している。一方、クラスタ64から代表サンプルを抽出しても、その代表サンプルはクラスタ64に含まれる2以上のサンプルを十分に近似しているとは言えないため、クラスタ64からは代表サンプルが抽出されない。機械学習装置100は、複数の良クラスタそれぞれから抽出した代表サンプルの集合を、訓練データとして使用する。これにより、訓練データの品質を向上させることができる。
図8は、訓練データの生成例を示す図である。
一例として、機械学習装置100は、サンプル集合71を収集する。サンプル集合71は、サンプルx1,x2,…,x20000という20000個のサンプルを含む。各サンプルは、1つのジョブの消費電力の時間変化を示す。機械学習装置100は、第1段階のクラスタリングによって、サンプル集合71からクラスタ集合72を生成する。例えば、機械学習装置100は、k平均法によってクラスタ集合72を生成する。クラスタ集合72は、クラスタ#1,#2,…,#175という175個のクラスタを含む。
一例として、機械学習装置100は、サンプル集合71を収集する。サンプル集合71は、サンプルx1,x2,…,x20000という20000個のサンプルを含む。各サンプルは、1つのジョブの消費電力の時間変化を示す。機械学習装置100は、第1段階のクラスタリングによって、サンプル集合71からクラスタ集合72を生成する。例えば、機械学習装置100は、k平均法によってクラスタ集合72を生成する。クラスタ集合72は、クラスタ#1,#2,…,#175という175個のクラスタを含む。
機械学習装置100は、クラスタ集合72に含まれる各クラスタについてサンプルの分布の良否を評価する。機械学習装置100は、175個のクラスタのうち150個のクラスタを良クラスタに分類し、25個のクラスタを不良クラスタに分類する。例えば、機械学習装置100は、クラスタ#1,#2,…,#150を良クラスタに分類し、クラスタ#151,#152,…,#175を不良クラスタに分類する。
機械学習装置100は、第2段階のクラスタリングによって、25個の不良クラスタそれぞれを二分割して、クラスタ集合73を生成する。例えば、機械学習装置100は、k平均法によってクラスタ集合73を生成する。クラスタ集合73は、クラスタ#151-1,#151-2,#152-1,#152-2,…,#175-1,#175-2という50個のクラスタを含む。クラスタ#151-1,#151-2は、クラスタ#151から生成される。クラスタ#152-1,#152-2は、クラスタ#152から生成される。クラスタ#175-1,#175-2は、クラスタ#175から生成される。
機械学習装置100は、クラスタ集合73に含まれる各クラスタを良クラスタと判定する。機械学習装置100は、クラスタ集合72に含まれる150個の良クラスタとクラスタ集合73に含まれる50個の良クラスタから、1つずつ代表サンプルを抽出する。これにより、機械学習装置100は、訓練データ74を生成する。訓練データ74は、サンプルy1,y2,…,y200という200個のサンプルを含む。
これにより、訓練データ74のサイズがサンプル集合71の100分の1に削減される。また、訓練データ74は、サンプル集合71よりも冗長性が低減されており、多様な消費電力パターンを示すサンプルを含んでいる。また、訓練データ74の各サンプルは、サンプル集合71のサブセットを近似している。
次に、良クラスタと不良クラスタの判定について説明する。
図9は、相関テーブルの例を示す図である。
機械学習装置100は、各クラスタに対して相関テーブル81を生成する。ここでは、クラスタ#1が100個のサンプルを含んでおり、機械学習装置100がクラスタ#1の良否を判定する場合を考える。クラスタ#1に対する相関テーブル81は、100個のサンプルに対応する100個の行および100個の列を含む行列である。機械学習装置100は、クラスタ#1に含まれる100個のサンプルのうちの2個のサンプル毎に、2個のサンプルの間の消費電力の相関を示す相関値を算出する。相関テーブル81は、100個のサンプルの間で網羅的に算出された10000個の相関値を含む。相関テーブル81のi行j列には、i番目のサンプルとj番目のサンプルの間の相関値が登録される。
図9は、相関テーブルの例を示す図である。
機械学習装置100は、各クラスタに対して相関テーブル81を生成する。ここでは、クラスタ#1が100個のサンプルを含んでおり、機械学習装置100がクラスタ#1の良否を判定する場合を考える。クラスタ#1に対する相関テーブル81は、100個のサンプルに対応する100個の行および100個の列を含む行列である。機械学習装置100は、クラスタ#1に含まれる100個のサンプルのうちの2個のサンプル毎に、2個のサンプルの間の消費電力の相関を示す相関値を算出する。相関テーブル81は、100個のサンプルの間で網羅的に算出された10000個の相関値を含む。相関テーブル81のi行j列には、i番目のサンプルとj番目のサンプルの間の相関値が登録される。
2つの時系列信号の間の相関値は、相互相関に基づいて算出することができる。一般的に、2つの時系列信号の間の相互相関は、数式(2)のように定義される。数式(2)において、fは一方の時系列信号、gは他方の時系列信号、mは時刻を示すインデックス、nは時系列信号fと比較される時系列信号gのシフト量(遅延量)である。相互相関は、シフト量nの関数として規定される。この点、第2の実施の形態では、2つのジョブの消費電力信号の類似度は、ジョブの実行開始時刻を揃えて評価される。このため、機械学習装置100は、n=0のときの相互相関を相関値として算出する。よって、2つのサンプルの間の相関値は、数式(3)に従って算出される。
相関テーブル81は、クラスタ#1に含まれる100個のサンプルの間の相関値の分布を示している。機械学習装置100は、相関テーブル81に含まれる10000個の相関値から、クラスタ#1のサンプルの分布の広さを示す指標値を算出する。指標値は、相関値の標準偏差と相関値の平均である。
図10は、相関値の標準偏差によるクラスタの分類例を示すグラフである。
機械学習装置100は、複数のクラスタそれぞれに対して相関値の標準偏差を算出し、それら複数のクラスタを標準偏差の大きい順にソートする。グラフ82は、18個のクラスタの相関値の標準偏差を示す。機械学習装置100は、各クラスタの標準偏差を閾値と比較する。機械学習装置100は、標準偏差が閾値以上であるクラスタを不良クラスタと判定する。一方、機械学習装置100は、標準偏差が閾値未満であるクラスタを、後述する平均条件を満たすことを条件として、良クラスタと判定する。
機械学習装置100は、複数のクラスタそれぞれに対して相関値の標準偏差を算出し、それら複数のクラスタを標準偏差の大きい順にソートする。グラフ82は、18個のクラスタの相関値の標準偏差を示す。機械学習装置100は、各クラスタの標準偏差を閾値と比較する。機械学習装置100は、標準偏差が閾値以上であるクラスタを不良クラスタと判定する。一方、機械学習装置100は、標準偏差が閾値未満であるクラスタを、後述する平均条件を満たすことを条件として、良クラスタと判定する。
図10では、標準偏差の閾値が0.09である。標準偏差の閾値は、固定値として事前に規定されていてもよいし、ユーザから指定されてもよい。また、不良クラスタの個数(例えば、25個)または不良クラスタの比率が与えられている場合、機械学習装置100は、その個数または比率を満たすように閾値を動的に決定してもよい。
図11は、相関値の平均によるクラスタの分類例を示すグラフである。
機械学習装置100は、複数のクラスタそれぞれに対して相関値の平均を算出し、それら複数のクラスタを平均の小さい順にソートする。グラフ83は、18個のクラスタの相関値の平均を示す。機械学習装置100は、各クラスタの平均を閾値と比較する。機械学習装置100は、平均が閾値以下であるクラスタを不良クラスタと判定する。一方、機械学習装置100は、平均が閾値を超えるクラスタを、図10で説明した標準偏差条件を満たすことを条件として、良クラスタと判定する。
機械学習装置100は、複数のクラスタそれぞれに対して相関値の平均を算出し、それら複数のクラスタを平均の小さい順にソートする。グラフ83は、18個のクラスタの相関値の平均を示す。機械学習装置100は、各クラスタの平均を閾値と比較する。機械学習装置100は、平均が閾値以下であるクラスタを不良クラスタと判定する。一方、機械学習装置100は、平均が閾値を超えるクラスタを、図10で説明した標準偏差条件を満たすことを条件として、良クラスタと判定する。
図11では、平均の閾値が0.86である。平均の閾値は、固定値として事前に規定されていてもよいし、ユーザから指定されてもよい。また、不良クラスタの個数(例えば、25個)または不良クラスタの比率が与えられている場合、機械学習装置100は、その個数または比率を満たすように閾値を動的に決定してもよい。
なお、第2の実施の形態では、機械学習装置100は、標準偏差条件と平均条件をAND条件として使用し、標準偏差が閾値未満かつ平均が閾値を超えるクラスタを良クラスタと判定している。これに対して、機械学習装置100は、標準偏差条件と平均条件をOR条件として使用し、標準偏差が閾値未満または平均が閾値を超えるクラスタを良クラスタと判定してもよい。また、機械学習装置100は、標準偏差条件のみでクラスタを分類してもよいし、平均条件のみでクラスタを分類してもよい。
次に、機械学習装置100の機能および処理手順について説明する。
図12は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、電力データ記憶部121、訓練データ記憶部122およびモデル記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。また、機械学習装置100は、電力データ受信部124、訓練データ生成部125、モデル生成部126およびモデル送信部127を有する。これらの処理部は、例えば、プログラムを用いて実現される。
図12は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、電力データ記憶部121、訓練データ記憶部122およびモデル記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。また、機械学習装置100は、電力データ受信部124、訓練データ生成部125、モデル生成部126およびモデル送信部127を有する。これらの処理部は、例えば、プログラムを用いて実現される。
電力データ記憶部121は、電力データとして、ジョブスケジューラ32から収集されたサンプルを記憶する。各サンプルは、ジョブの消費電力の時系列の測定値を含む。訓練データ記憶部122は、機械学習に使用する訓練データを記憶する。モデル記憶部123は、機械学習によって訓練データから生成された消費電力予測モデルを記憶する。消費電力予測モデルは、再帰型ニューラルネットワークである。
電力データ受信部124は、ジョブスケジューラ32からサンプルを受信して電力データ記憶部121に格納する。訓練データ生成部125は、電力データ記憶部121に記憶されたサンプル集合を分析して訓練データを生成し、生成した訓練データを訓練データ記憶部122に格納する。訓練データに含まれるサンプルの個数、すなわち、訓練データのサイズは、電力データ記憶部121に記憶されたサンプル集合よりも小さい。訓練データは、元のサンプル集合よりも冗長性が低減されたデータセットである。
モデル生成部126は、訓練データ記憶部122に記憶された訓練データを用いて、ジョブのこれまでの消費電力から当該ジョブの今後の消費電力を予測する消費電力予測モデルを生成する。機械学習では、モデル生成部126は、訓練データに含まれるサンプルを用いて、再帰型ニューラルネットワークに含まれるパラメータの値を最適化する。ニューラルネットワークのパラメータ最適化には、誤差逆伝播法が用いられる。モデル生成部126は、生成した消費電力予測モデルをモデル記憶部123に格納する。
モデル送信部127は、モデル記憶部123に記憶された消費電力予測モデルを、ジョブスケジューラ32に送信する。これにより、ジョブスケジューラ32は、消費電力予測モデルを用いて、HPCシステム31で実行中のジョブの今後の消費電力を予測し、全体消費電力が契約電力量を超えないようにジョブスケジューリングを行う。
図13は、消費電力テーブルの例を示す図である。
消費電力テーブル84は、電力データ記憶部121に記憶される。消費電力テーブル84の1行が1つのサンプルに相当する。消費電力テーブル84は、サンプル毎に、ジョブIDと288個の消費電力の測定値とを含む。ジョブIDは、ジョブの識別子である。ジョブの消費電力は、5分間隔で測定されている。ジョブの最短実行時間は35分であり、ジョブの最長実行時間は1440分である。288個の測定値のうち、ジョブの実行が終了した後の測定値は、0に設定される。
消費電力テーブル84は、電力データ記憶部121に記憶される。消費電力テーブル84の1行が1つのサンプルに相当する。消費電力テーブル84は、サンプル毎に、ジョブIDと288個の消費電力の測定値とを含む。ジョブIDは、ジョブの識別子である。ジョブの消費電力は、5分間隔で測定されている。ジョブの最短実行時間は35分であり、ジョブの最長実行時間は1440分である。288個の測定値のうち、ジョブの実行が終了した後の測定値は、0に設定される。
図14は、機械学習の手順例を示すフローチャートである。
(S10)電力データ受信部124は、ジョブスケジューラ32から、ジョブの消費電力の時間変化を示す消費電力データを受信する。
(S10)電力データ受信部124は、ジョブスケジューラ32から、ジョブの消費電力の時間変化を示す消費電力データを受信する。
(S11)訓練データ生成部125は、ステップS10で受信された消費電力データから訓練データを生成する。訓練データ生成の詳細は後述する。なお、訓練データ生成部125は、訓練データを表示装置111に表示してもよい。また、訓練データ生成部125は、訓練データを他の情報処理装置に送信してもよい。
(S12)モデル生成部126は、ステップS11で生成された訓練データを用いて、機械学習により消費電力予測モデルを生成する。なお、モデル生成部126は、消費電力予測モデルを表示装置111に表示してもよい。また、モデル生成部126は、消費電力予測モデルの予測精度を算出し、予測精度を表示装置111に表示してもよい。
(S13)モデル送信部127は、ステップS12で生成された消費電力予測モデルを、ジョブスケジューラ32に送信する。
図15は、訓練データ生成の手順例を示すフローチャートである。
図15は、訓練データ生成の手順例を示すフローチャートである。
訓練データ生成は、前述のステップS11で実行される。
(S20)訓練データ生成部125は、k平均法などのクラスタリングアルゴリズムにより、消費電力データのサンプルを複数のクラスタに分類する。
(S20)訓練データ生成部125は、k平均法などのクラスタリングアルゴリズムにより、消費電力データのサンプルを複数のクラスタに分類する。
(S21)訓練データ生成部125は、良否を未判定のクラスタそれぞれについて、クラスタに属するサンプル間で相関値を網羅的に算出し、相関テーブル81を生成する。
(S22)訓練データ生成部125は、良否を未判定のクラスタそれぞれについて、ステップS21で生成した相関テーブル81から、相関値の平均と標準偏差を算出する。
(S22)訓練データ生成部125は、良否を未判定のクラスタそれぞれについて、ステップS21で生成した相関テーブル81から、相関値の平均と標準偏差を算出する。
(S23)訓練データ生成部125は、良否を未判定のクラスタを1つ選択する。
(S24)訓練データ生成部125は、ステップS23で選択したクラスタについて、ステップS22で算出した標準偏差が閾値未満であるか判断する。標準偏差が閾値未満の場合はステップS25に進み、閾値以上の場合はステップS27に進む。
(S24)訓練データ生成部125は、ステップS23で選択したクラスタについて、ステップS22で算出した標準偏差が閾値未満であるか判断する。標準偏差が閾値未満の場合はステップS25に進み、閾値以上の場合はステップS27に進む。
(S25)訓練データ生成部125は、ステップS23で選択したクラスタについて、ステップS22で算出した平均が閾値を超えるか判断する。平均が閾値を超える場合はステップS26に進み、閾値以下の場合はステップS27に進む。
(S26)訓練データ生成部125は、ステップS23で選択したクラスタを良クラスタと判定する。そして、ステップS28に進む。
(S27)訓練データ生成部125は、ステップS23で選択したクラスタを不良クラスタと判定する。なお、第2の実施の形態では、訓練データ生成部125は、標準偏差が閾値未満かつ平均が閾値を超えるクラスタを良クラスタと判定しているが、判定基準を変更してもよい。例えば、訓練データ生成部125は、標準偏差が閾値未満のクラスタを良クラスタと判定してもよいし、平均が閾値を超えるクラスタを良クラスタと判定してもよいし、上記の少なくとも一方を満たすクラスタを良クラスタと判定してもよい。
(S27)訓練データ生成部125は、ステップS23で選択したクラスタを不良クラスタと判定する。なお、第2の実施の形態では、訓練データ生成部125は、標準偏差が閾値未満かつ平均が閾値を超えるクラスタを良クラスタと判定しているが、判定基準を変更してもよい。例えば、訓練データ生成部125は、標準偏差が閾値未満のクラスタを良クラスタと判定してもよいし、平均が閾値を超えるクラスタを良クラスタと判定してもよいし、上記の少なくとも一方を満たすクラスタを良クラスタと判定してもよい。
(S28)訓練データ生成部125は、ステップS23において全てのクラスタを選択したか判断する。全てのクラスタを選択した場合はステップS29に進み、未選択のクラスタがある場合はステップS23に戻る。
(S29)訓練データ生成部125は、良クラスタの個数が所要量(例えば、200個)に達したか判断する。所要量は、例えば、ユーザから指定される。所要量に達した場合はステップS31に進み、所要量に達していない場合はステップS30に進む。
(S30)訓練データ生成部125は、k平均法などのクラスタリングアルゴリズムにより、不良クラスタそれぞれについて、不良クラスタに属するサンプルを更に複数のクラスタに分類する。そして、ステップS21に戻る。
(S31)訓練データ生成部125は、良クラスタそれぞれから1つの代表サンプルを抽出する。代表サンプルは、良クラスタの重心に相当する。例えば、訓練データ生成部125は、各サンプルを測定値のベクトルとみなした場合の平均ベクトルを、代表サンプルとして算出する。訓練データ生成部125は、複数の良クラスタに対応する複数の代表サンプルを含む訓練データを生成する。
ここで、機械学習の実行例について説明する。図8で説明したように、機械学習装置100は、20000個のサンプルを収集し、サンプル集合を分析して200個のサンプルを含む訓練データを生成する。ミニバッチサイズは20である。すなわち、機械学習装置100は、消費電力予測モデルの誤差を算出してパラメータの値を更新する1回のイテレーションのために、20個のサンプルを使用する。訓練データは200個のサンプルを含むため、機械学習装置100は、異なるサンプルを使用して上記のイテレーションを10回実行することができる。エポック数は50である。すなわち、機械学習装置100は、200個のサンプルを使用した10回のイテレーションを、50セット繰り返す。
この機械学習において、図6の方法で訓練データが生成された場合、例えば、消費電力予測モデルの全体RMSEが1.80になる。一方、図7の改良された方法で訓練データが生成された場合、例えば、消費電力予測モデルの全体RMSEが1.68になる。よって、消費電力予測モデルの誤差が約7%低下する。消費電力予測モデルの予測精度が向上することで、HPCシステム31の全体消費電力が予測に反して契約電力量を超えてしまうアクシデントを抑制することができる。誤差が7%低下することにより、例えば、HPCシステム31の消費電力が年間54.4MW減少する。これにより、HPCシステム31の所有者が支払う電気料金が、例えば、年間100万円減少する。
第2の実施の形態の情報処理システムによれば、HCPシステム31からはジョブの消費電力のサンプルが大量に収集されるのに対し、訓練データのサイズが抑制される。よって、機械学習の負荷が軽減され、機械学習の実行時間が短縮される。また、クラスタリングによってサンプル集合が複数のクラスタに分割され、各クラスタから代表サンプルが抽出されて訓練データに使用される。よって、訓練データの冗長性が低減し、訓練データの品質を維持しつつ訓練データのサイズを効率的に削減することができる。
また、クラスタリングによって生成された複数のクラスタそれぞれの良否が判定され、不良クラスタに対してはクラスタリングが再帰的に実行される。そして、良クラスタのみから代表サンプルが抽出される。よって、サンプル集合のサブセットを十分に近似していると言えない不適切な代表サンプルが抽出される可能性を低減でき、訓練データの品質を向上させることができる。その結果、消費電力予測モデルの予測精度が向上する。
また、クラスタ毎にサンプル間の相関値の標準偏差および平均が算出され、相関値の標準偏差および平均に基づいて、サンプルの分布の広さが評価される。よって、クラスタの良否を客観的かつ効率的に判定することが可能となる。また、消費電力予測モデルの予測精度が向上することで、HPCシステム31の今後の全体消費電力を精度よく予測することができる。よって、全体消費電力が契約電力量を超えてしまうアクシデントを削減することができ、HPCシステム31の電気料金を削減することができる。
10 情報処理装置
11 記憶部
12 処理部
13 サンプル集合
14a,14b,14c,14d クラスタ
15 判定条件
16 訓練データ
11 記憶部
12 処理部
13 サンプル集合
14a,14b,14c,14d クラスタ
15 判定条件
16 訓練データ
Claims (9)
- それぞれ消費電力の時系列の測定値を含む複数のサンプルを記憶する記憶部と、
前記複数のサンプルに対して第1のクラスタリングを実行することで、それぞれ2以上のサンプルを含む複数の第1のクラスタを生成し、前記複数の第1のクラスタを、前記2以上のサンプル間の相関値の分散が第1の閾値未満であることと前記相関値の平均が第2の閾値を超えることの少なくとも一方を含む判定条件を満たす第2のクラスタと、前記判定条件を満たさない第3のクラスタとに分類し、前記第3のクラスタに含まれる前記2以上のサンプルに対して第2のクラスタリングを実行することで、前記第3のクラスタを複数の第4のクラスタに分割し、前記第2のクラスタと前記複数の第4のクラスタの少なくとも一部とに基づいて、消費電力を予測するためのモデルの生成に使用する訓練データを生成する処理部と、
を有する情報処理装置。 - 前記判定条件は、前記相関値の分散が前記第1の閾値未満であり、かつ、前記相関値の平均が前記第2の閾値を超えることである、
請求項1記載の情報処理装置。 - 前記複数の第1のクラスタの分類では、前記処理部は、前記複数の第1のクラスタそれぞれについて、前記相関値としてサンプルのペア毎に前記時系列の測定値の相互相関を算出し、前記相互相関の分散および平均の少なくとも一方を算出する、
請求項1記載の情報処理装置。 - 前記訓練データの生成では、前記処理部は、前記第2のクラスタと、前記複数の第4のクラスタのうち前記判定条件を満たす第4のクラスタとを使用する、
請求項1記載の情報処理装置。 - 前記訓練データの生成では、前記処理部は、前記第2のクラスタおよび前記少なくとも一部の第4のクラスタそれぞれから代表サンプルを抽出し、前記複数のサンプルよりも少ない個数の前記代表サンプルを含む前記訓練データを生成する、
請求項1記載の情報処理装置。 - 前記代表サンプルは、同一クラスタ内のサンプルの前記時系列の測定値の平均を示す、
請求項5記載の情報処理装置。 - 前記処理部は更に、前記訓練データに含まれるサンプルの前記時系列の測定値のうち、第1の期間の測定値を入力データとして使用し、前記第1の期間に続く第2の期間の測定値を教師データとして使用することで、前記第1の期間の消費電力から前記第2の期間の消費電力を予測するためのニューラルネットワークを生成する、
請求項1記載の情報処理装置。 - コンピュータが、
それぞれ消費電力の時系列の測定値を含む複数のサンプルを取得し、
前記複数のサンプルに対して第1のクラスタリングを実行することで、それぞれ2以上のサンプルを含む複数の第1のクラスタを生成し、
前記複数の第1のクラスタを、前記2以上のサンプル間の相関値の分散が第1の閾値未満であることと前記相関値の平均が第2の閾値を超えることの少なくとも一方を含む判定条件を満たす第2のクラスタと、前記判定条件を満たさない第3のクラスタとに分類し、
前記第3のクラスタに含まれる前記2以上のサンプルに対して第2のクラスタリングを実行することで、前記第3のクラスタを複数の第4のクラスタに分割し、
前記第2のクラスタと前記複数の第4のクラスタの少なくとも一部とに基づいて、消費電力を予測するためのモデルの生成に使用する訓練データを生成する、
情報処理方法。 - コンピュータに、
それぞれ消費電力の時系列の測定値を含む複数のサンプルを取得し、
前記複数のサンプルに対して第1のクラスタリングを実行することで、それぞれ2以上のサンプルを含む複数の第1のクラスタを生成し、
前記複数の第1のクラスタを、前記2以上のサンプル間の相関値の分散が第1の閾値未満であることと前記相関値の平均が第2の閾値を超えることの少なくとも一方を含む判定条件を満たす第2のクラスタと、前記判定条件を満たさない第3のクラスタとに分類し、
前記第3のクラスタに含まれる前記2以上のサンプルに対して第2のクラスタリングを実行することで、前記第3のクラスタを複数の第4のクラスタに分割し、
前記第2のクラスタと前記複数の第4のクラスタの少なくとも一部とに基づいて、消費電力を予測するためのモデルの生成に使用する訓練データを生成する、
処理を実行させる情報処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020126357A JP2022023420A (ja) | 2020-07-27 | 2020-07-27 | 情報処理装置、情報処理方法および情報処理プログラム |
US17/228,532 US20220027758A1 (en) | 2020-07-27 | 2021-04-12 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020126357A JP2022023420A (ja) | 2020-07-27 | 2020-07-27 | 情報処理装置、情報処理方法および情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022023420A true JP2022023420A (ja) | 2022-02-08 |
Family
ID=79689072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020126357A Withdrawn JP2022023420A (ja) | 2020-07-27 | 2020-07-27 | 情報処理装置、情報処理方法および情報処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220027758A1 (ja) |
JP (1) | JP2022023420A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230328121A1 (en) * | 2022-04-06 | 2023-10-12 | Cdw Llc | Modular Technologies for Servicing Telephony Systems |
-
2020
- 2020-07-27 JP JP2020126357A patent/JP2022023420A/ja not_active Withdrawn
-
2021
- 2021-04-12 US US17/228,532 patent/US20220027758A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220027758A1 (en) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tran et al. | A multivariate fuzzy time series resource forecast model for clouds using LSTM and data correlation analysis | |
Ïpek et al. | Efficiently exploring architectural design spaces via predictive modeling | |
Mandal et al. | Dynamic resource management of heterogeneous mobile platforms via imitation learning | |
Gupta et al. | Resource usage prediction of cloud workloads using deep bidirectional long short term memory networks | |
Miu et al. | Predicting the execution time of workflow activities based on their input features | |
JP7177350B2 (ja) | ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 | |
US11700210B2 (en) | Enhanced selection of cloud architecture profiles | |
US20210359514A1 (en) | Information processing apparatus and job scheduling method | |
Liang et al. | Power consumption model based on feature selection and deep learning in cloud computing scenarios | |
Patel et al. | MAG-D: A multivariate attention network based approach for cloud workload forecasting | |
Dogani et al. | Host load prediction in cloud computing with discrete wavelet transformation (dwt) and bidirectional gated recurrent unit (bigru) network | |
US20230401092A1 (en) | Runtime task scheduling using imitation learning for heterogeneous many-core systems | |
Nadeem et al. | Optimizing execution time predictions of scientific workflow applications in the grid through evolutionary programming | |
Zhang et al. | Learning-driven interference-aware workload parallelization for streaming applications in heterogeneous cluster | |
Patel et al. | Deep learning-based multivariate resource utilization prediction for hotspots and coldspots mitigation in green cloud data centers | |
Shu et al. | Resource demand prediction of cloud workloads using an attention-based GRU model | |
CN108241864A (zh) | 基于多变量分组的服务器性能预测方法 | |
JP2022023420A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
Dinesh Kumar et al. | An efficient proactive VM consolidation technique with improved LSTM network in a cloud environment | |
Iorio et al. | Transfer learning for cross-model regression in performance modeling for the cloud | |
Wang et al. | An Efficient Load Prediction-Driven Scheduling Strategy Model in Container Cloud | |
Ismaeel et al. | Real-time energy-conserving vm-provisioning framework for cloud-data centers | |
Ni et al. | Online performance and power prediction for edge TPU via comprehensive characterization | |
Abdelhafez et al. | Mirage: Machine learning-based modeling of identical replicas of the jetson agx embedded platform | |
JP2020129180A (ja) | ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230407 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20240129 |