(57)【要約】【課題】システムの消費電力を精度良く予測すること。【解決手段】ジョブスケジューラは、システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、ジョブを複数のグループに分類する。ジョブスケジューラは、分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築する。ジョブスケジューラは、所定間隔ごとに、分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測する。ジョブスケジューラは、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測した電力波形とを比較し、類似する時系列予測モデルを特定する。ジョブスケジューラは、特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を予測する。ジョブスケジューラは、予測した消費電力からジョブの実行を制御する。【選択図】図１１
2020160622.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、前記ジョブを複数のグループに分類し、
前記分類する処理が分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築し、
所定間隔ごとに、前記分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測し、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測した電力波形とを比較し、類似する時系列予測モデルを特定し、
特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を予測し、
予測した消費電力からジョブの実行を制御する
処理を実行させることを特徴とするジョブスケジューラ。
【請求項２】
前記特定する処理は、さらに、第１のジョブの全区間にわたる電力波形と最も類似する第１の時系列予測モデルを特定し、前記第１のジョブの実行ユーザと同一のユーザによって第２のジョブが実行される場合、当該第２のジョブの最初の所定区間の時系列予測モデルとして前記第１の時系列予測モデルを特定することを特徴とする請求項１に記載のジョブスケジューラ。
【請求項３】
前記分類したグループに含まれるジョブの投入時に設定される投入時情報が各グループに分類されるように投入時情報の各情報の重みを決定し、
電力予測対象の投入時情報に決定した各情報に重みを付与した結果に応じて、前記投入時情報をグループに分類し、
分類したグループの時系列予測モデルから消費電力を予測する
処理をさらに実行させることを特徴とする請求項１又は２に記載のジョブスケジューラ。
【請求項４】
システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、前記ジョブを複数のグループに分類し、
前記分類する処理が分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築し、
所定間隔ごとに、前記分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測し、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測した電力波形とを比較し、類似する時系列予測モデルを特定し、
特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を予測し、
予測した消費電力からジョブの実行を制御する
処理をコンピュータが実行することを特徴とするジョブスケジュール制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスケジューラ及びジョブスケジュール制御方法に関する。
【背景技術】
【０００２】
ＨＰＣ（high-performance  computing）システムの電力料金は、ある一定の時間区間における消費電力の平均値の、月間の最大値によって決定される。このため、各時間区間で消費電力が平準化されているほど電力料金は低く抑えられる。そこで、平準化のためにＨＰＣシステムの消費電力を予測する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−７６０９１号公報
【特許文献２】特開２０００−２７６４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、システムの消費電力を精度良く予測することが難しい場合があるという問題がある。例えば、システムにおいてジョブを実行する際に、ある時点までの消費電力の時系列パタンを基に当該時点以降の消費電力を予測することが考えられる。一方で、時系列パタンの周期性が小さい場合、同様の時系列パタンが繰り返し現れるとは限らないので、上記の方法では予測精度が低下する場合がある。
【０００５】
１つの側面では、システムの消費電力を精度良く予測することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様において、ジョブスケジューラは、コンピュータに、システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、ジョブを複数のグループに分類する処理を実行させる。ジョブスケジューラは、コンピュータに、分類する処理が分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築する処理を実行させる。ジョブスケジューラは、コンピュータに、所定間隔ごとに、分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測する処理を実行させる。ジョブスケジューラは、コンピュータに、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測した電力波形とを比較し、類似する時系列予測モデルを特定する処理を実行させる。ジョブスケジューラは、コンピュータに、特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を推定する処理を実行させる。ジョブスケジューラは、コンピュータに、予測した消費電力からジョブの実行を制御する処理を実行させる。
【発明の効果】
【０００７】
１つの側面では、システムの消費電力を精度良く予測することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、ジョブの実行スケジュールについて説明するための図である。
【図２】図２は、消費電力の予測について説明するための図である。
【図３】図３は、実施例に係る学習装置の機能構成の一例を示す図である。
【図４】図４は、実行時間が異なるジョブについて説明するための図である。
【図５】図５は、距離の計算方法を説明するための図である。
【図６】図６は、分類モデルの学習処理を説明するための図である。
【図７】図７は、予測モデルの学習処理を説明するための図である。
【図８】図８は、実施例に係る制御装置の機能構成の一例を示す図である。
【図９】図９は、分類処理を説明するための図である。
【図１０】図１０は、予測処理を説明するための図である。
【図１１】図１１は、制御処理を説明するための図である。
【図１２】図１２は、予測モデルの学習処理の流れを示すフローチャートである。
【図１３】図１３は、分類モデルの学習処理の流れを示すフローチャートである。
【図１４】図１４は、制御処理の流れを示すフローチャートである。
【図１５】図１５は、予測処理の流れを示すフローチャートである。
【図１６】図１６は、実行時間のずれについて説明するための図である。
【図１７】図１７は、対象区間のスライドについて説明するための図である。
【図１８】図１８は、予測処理の流れを示すフローチャートである。
【図１９】図１９は、対象区間の伸長について説明するための図である。
【図２０】図２０は、実施例の効果を示す図である。
【図２１】図２１は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係るジョブスケジューラ及びジョブスケジュール制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１０】
実施例１に係るジョブスケジューラは、ジョブを実行するジョブ実行システムの消費電力を予測し、消費電力が平準化されるようにジョブのスケジューリングを行うためのプログラムである。例えば、ジョブ実行システムはＨＰＣシステムである。ここで、実施例１において前提となるジョブの実行スケジュール及び電力料金の課金について説明する。
【００１１】
図１は、ジョブの実行スケジュールについて説明するための図である。図１に示すように、ジョブ実行システムにはあらかじめ複数のノードが用意されているものとする。ジョブは、１つ以上のノードに割り当てられる。また、ノードに割り当てられたジョブは、実行開始時刻までキュー内で待機する。図１の例では、ジョブＪ０１は、現在時刻より以前の過去実行区間で実行済みのジョブである。また、ジョブＪ０２及びジョブＪ０３は、現在実行中のジョブである。また、ジョブＪ０４及びジョブＪ０５は、キュー内で実行を待機しているジョブである。
【００１２】
ここで、ジョブ実行システムの電力料金は、ある一定の時間区間における消費電力の平均値の、所定期間の最大値によって決定される。例えば、３０分ごとの消費電力の平均値の１か月間の最大値が大きいほど、当該月の電力料金は高くなる。さらに、当該平均値があらかじめ設定された契約電力を超えた場合、莫大な追加料金が発生する場合がある。
【００１３】
図２は、消費電力の予測について説明するための図である。図２に示すように、ジョブスケジューラは、現在時刻以降の消費電力を予測する。そして、例えば、ジョブスケジューラは、予測結果に基づき、消費電力が契約電力を超えないようにジョブの実行スケジュールを組み直すことができる。
【００１４】
ここで、実施例における学習装置及び制御装置の構成を説明する。学習装置は、制御装置によって用いられる各モデルの学習を行うための装置である。また、制御装置は、ジョブ実行システムを制御するための装置である。ジョブスケジューラは、学習装置及び制御装置に各処理を実行させるプログラムである。なお、学習装置及び制御装置は１つの装置として実現されてもよい。例えば、学習装置と制御装置の両方の機能を持つ装置によってジョブスケジューラが実行される。
【００１５】
図３は、実施例に係る学習装置の機能構成の一例を示す図である。図３に示すように、学習装置１０は、入出力部１１、記憶部１２及び制御部１３を有する。入出力部１１は、データの入出力を行うためのインタフェースである。
【００１６】
記憶部１２は、データや制御部１３が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部１２は、電力履歴ＤＢ１２１、分類モデル情報１２２及び予測モデル情報１２３を記憶する。
【００１７】
電力履歴ＤＢ１２１は、ジョブ実行システムの消費電力の履歴である。例えば、電力履歴ＤＢ１２１は、実行されたジョブの投入時情報と時刻ごとの消費電力を対応付けた情報である。投入時情報は、ジョブを実行するためのスクリプト、ジョブの実行ユーザを識別する情報、ジョブを識別する情報、使用するノード、使用するＩＯインタフェースを識別する情報等を含む。また、電力履歴ＤＢ１２１は、一定時間ごとの消費電力の平均値を含んでいてもよい。
【００１８】
分類モデル情報１２２は、キュー内にあるジョブの投入時情報をグループに分類するための分類モデルを構築するための情報である。例えば、分類モデル情報１２２は、電力履歴ＤＢ１２１のデータを教師データとする学習により生成される。例えば、分類モデル情報１２２は、投入時情報に含まれる各情報に付与する重みである。
【００１９】
予測モデル情報１２３は、過去の消費電力の波形から、未来の消費電力の波形を予測するための予測モデルを構築するための情報である。予測モデル情報１２３は、あらかじめ設定された複数のグループのそれぞれに対応する予測モデルごとに情報を記憶する。
【００２０】
分類モデルは、例えば教師ありＬＤＡ（Latent  Dirichlet  Allocation、トピック分類）及びランダムフォレスト等である。また、分類モデルにおいて、各情報はtf-idfによってベクトル化されてもよい。また、予測モデルは、ＲＮＮ（Recurrent  Neural  Network）、ＧＰ（ガウス過程回帰）、ＳＶＲ（サポートベクトルマシン回帰）及び決定木（Decision  Tree）等である。
【００２１】
制御部１３は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）、ＧＰＵ（Graphics  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１３は、分類部１３１、決定部１３２及び構築部１３３を有する。
【００２２】
分類部１３１は、第１の分類を行う。第１の分類では、分類部１３１は、システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、ジョブを複数のグループに分類する。ここで、図４に示すように、ジョブ間で消費電力の波形が類似していても、実行時間が異なる場合がある。図４の実線の曲線及び破線の曲線は、それぞれ異なるジョブの消費電力の波形を示している。図４に示すように、一方のジョブはある時刻に実行を終了し、電力を消費しないようになる。
【００２３】
このため、分類部１３１は、ジョブ間の類似度を、時間方向の差を含めて計算する。具体的には、分類部１３１は、図５に示すように、一方の波形の各時刻に対応するデータポイントから、他方の波形の最も距離が近いデータポイントまでの距離の総和を類似度として計算する。図５は、距離の計算方法を説明するための図である。
【００２４】
分類部１３１は、例えば以下の手順でジョブを分類する。なお、各ジョブには通し番号が付与されているものとする。まず、分類部１３１は、１番目のジョブに対する他の全てのジョブの類似度を計算する。次に、分類部１３１は、１番目のジョブに対し、類似度が閾値α以下であるジョブをクラスタリングする。さらに、分類部１３１は、同様の処理を各ジョブについて繰り返す。
【００２５】
その際、分類部１３１は、あるジョブのクラスタに含まれるジョブに付与された通し番号がβ以下であるものをマージする。例えば、分類部１３１は、５番目のジョブに対しクラスタリングされたジョブのうち、通し番号がβ以下であって、既に１番目から４番目のいずれかのジョブに対しクラスタリング済みのジョブを、５番目のジョブのクラスタから除外する。そして、分類部１３１は、最終的に残ったクラスタをグループとする。
【００２６】
さらに、分類部１３１は第２の分類を行う。第２の分類では、分類部１３１は、分類モデル情報１２２から構築される分類モデルを用いて、投入時情報を基にジョブをグループに分類する。ここで、グループは、分類部１３１による第１の分類において決定されているものとする。第２の分類では、分類部１３１は、電力予測対象の投入時情報に決定した各情報に重みを付与した結果に応じて、投入時情報をグループに分類する。
【００２７】
決定部１３２は、第２の分類において分類したグループに含まれるジョブの投入時に設定される投入時情報が各グループに分類されるように投入時情報の各情報の重みを決定する。つまり、決定部１３２は、分類モデルの学習を行う。決定部１３２は、分類部１３１がジョブを既知の正解のグループに分類するように、分類モデルにおける重みを決定し、決定した重みにしたがい分類モデル情報１２２を最適化する。
【００２８】
図６は、分類モデルの学習処理を説明するための図である。ここでは、分類部１３１の第１の分類により、過去に実行されたジョブが、グループＡ、グループＢ及びグループＣに分類されているものとする。例えば、ジョブＪ１１、ジョブＪ１２等がグループＡに分類されている。分類モデルの学習処理においては、第１の分類における分類結果が教師データである。
【００２９】
分類部１３１は、第２の分類において、投入時情報を分類モデルに入力し、各ジョブの分類結果を得る。決定部１３２は、このとき得られた分類結果が教師データと一致するように、分類モデルを最適化する。
【００３０】
構築部１３３は、分類部１３１が第１の分類において分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築する。つまり、構築部１３３は予測モデルの学習を行う。構築部１３３は、構築した予測モデルの情報を予測モデル情報１２３として記憶部１２に格納する。
【００３１】
図７は、予測モデルの学習処理を説明するための図である。予測モデルの学習処理においては、過去に実行されたジョブの消費電力の波形が教師データである。構築部１３３は、例えば、各グループの波形に合うようなＲＮＮを構築する。
【００３２】
図８は、実施例に係る制御装置の機能構成の一例を示す図である。図８に示すように、制御装置２０は、入出力部２１、記憶部２２及び制御部２３を有する。入出力部２１は、データの入出力を行うためのインタフェースである。
【００３３】
記憶部２２は、データや制御部２３が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部２２は、ユーザ情報２２１、分類モデル情報２２２及び予測モデル情報２２３を記憶する。
【００３４】
ユーザ情報２２１は、ジョブの実行ユーザを識別する情報とグループとを対応付けた情報である。
【００３５】
分類モデル情報２２２は、投入時情報をグループに分類するための分類モデルを構築するための情報である。例えば、分類モデル情報２２２は、学習装置１０において学習済みの分類モデル情報１２２である。
【００３６】
予測モデル情報２２３は、過去の消費電力の波形から、未来の消費電力の波形を予測するための予測モデルを構築するための情報である。例えば、予測モデル情報２２３は、学習装置１０において学習済みの予測モデル情報１２３である。
【００３７】
制御部２３は、例えば、ＣＰＵ、ＭＰＵ、ＧＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。制御部２３は、スケジュール制御部２３１、分類部２３２、予測部２３３、測定部２３４及び特定部２３５を有する。
【００３８】
スケジュール制御部２３１は、予測部２３３による消費電力の予測結果に基づき、ジョブ実行システム３０で実行されるジョブのスケジュールを調整する。例えば、スケジュール制御部２３１は、ジョブの実行開始時刻を変更したり、ジョブを実行するノードを変更したりすることにより、消費電力が契約電力を超えないようにする。
【００３９】
分類部１３１は、電力予測対象の投入時情報に決定した各情報に重みを付与した結果に応じて、投入時情報をグループに分類する。つまり、分類部１３１は、分類モデル情報２２２から構築される分類モデルを用いて、投入時情報に基づきキュー内のジョブをグループに分類する。
【００４０】
図９は、分類処理を説明するための図である。図９に示すように、グループが未知のキュー内のジョブの投入時情報を分類モデルに入力し、ジョブの分類結果を得る。例えば、分類部１３１は、キュー内のジョブをグループＡ、グループＢ及びグループＣのいずれかに分類する。
【００４１】
予測部２３３は、予測モデル情報２２３から構築される予測モデルを用いて、消費電力を予測する。予測部２３３は、キュー内のジョブについて、分類部１３１が分類したグループの時系列予測モデルから消費電力を予測する。また、予測部２３３は、実行中のジョブについて、特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を予測する。なお、時系列予測モデルの特定は、特定部２３５によって行われる。所定間隔は、例えば３０分等の所定の長さの時間区間である。
【００４２】
なお、各時間区間において、予測部２３３は１つのジョブにつき１つの予測モデルを使って消費電力を予測した結果を出力する。一方で、予測部２３３は、各時間区間において、出力の対象としない予測モデルを使った予測も行う。出力の対象としない予測モデルを使った予測の結果は、次の所定区間で出力の対象とする予測モデルを特定するために用いられる。
【００４３】
測定部２３４は、ジョブ実行システム３０の消費電力を測定する。測定部２３４による測定の結果は、特定部２３５による予測モデルの特定に用いられる。また、学習装置１０は、測定部２３４によって測定された消費電力を取得し、電力履歴ＤＢ１２１を作成してもよい。
【００４４】
特定部２３５は、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測部２３３が予測した電力波形とを比較し、類似する時系列予測モデルを特定する。ここで、予測部２３３は、所定間隔ごとに、分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測するものとする。
【００４５】
特定部２３５は、さらに、第１のジョブの全区間にわたる電力波形と最も類似する第１の時系列予測モデルを特定する。このとき、特定部２３５は特定した第１の時系列予測モデルに対応するグループと、第１のジョブの実行ユーザとを対応付けてユーザ情報２２１を作成する。そして、特定部２３５は、第１のジョブの実行ユーザと同一のユーザによって第２のジョブが実行される場合、当該第２のジョブの最初の所定区間の時系列予測モデルとして第１の時系列予測モデルを特定する。このとき、予測部２３３は、当該最初の所定区間の消費電力を、第１の時系列予測モデルを用いて予測する。
【００４６】
図１０は、予測処理を説明するための図である。図１０に示すように、予測部２３３は、ある時間区間の消費電力を、グループＡの予測モデル、グループＢの予測モデル、グループＣの予測モデルを使って予測する。そして、特定部２３５は、予測部２３３が予測した波形のうち、実行中のジョブの実際の波形との類似度が最も高い波形に対応する予測モデルを、次の時間区間の予測モデルとして特定する。これにより、時間区間ごとに予測結果を出力する予測モデルが最適なものに変更されていく。
【００４７】
ここで、図１１を用いて、制御装置２０による制御処理の流れを説明する。図１１は、制御処理を説明するための図である。まず、図１１に示すように、予測部２３３は、分類部２３２によって分類されたグループに対応する予測モデルを使って、キュー内のジョブの消費電力を予測する（ステップＳ１）。スケジュール制御部２３１は、消費電力の予測結果を基にジョブ実行のスケジュールを制御する（ステップＳ２）。
【００４８】
さらに、予測部２３３は、実行中のジョブの消費電力を予測する（ステップＳ３）。このとき、測定部２３４は、実行中のジョブの実際の消費電力を測定する（ステップＳ４）。そして、特定部２３５は、予測部２３３が予測した消費電力と測定部２３４が測定した消費電力とを比較し、次に使用する予測モデルを特定する（ステップＳ５）。
【００４９】
予測部２３３は、実行中の全ジョブの消費電力を予測し（ステップＳ６）、予測結果に基づいて制御対象のジョブをスケジュール制御部２３１に対して指定する（ステップＳ７）。例えば、予測部２３３は、全体の消費電力が契約電力を超えることが予想される時刻に実行されている予定のジョブを指定する。
【００５０】
［処理の流れ］
図１２を用いて、学習装置１０による予測モデルの学習処理の流れを説明する。図１２は、予測モデルの学習処理の流れを示すフローチャートである。図１２に示すように、まず、学習装置１０は、ジョブの消費電力の波形をグループに分類する（ステップＳ１１）。そして、学習装置１０は、消費電力の波形を基にグループごとの予測モデルを構築する（ステップＳ１２）。
【００５１】
図１３を用いて、学習装置１０による分類モデルの学習処理の流れを説明する。図１３は、分類モデルの学習処理の流れを示すフローチャートである。図１３に示すように、まず、学習装置１０は、分類モデルを用いて、グループが既知であるジョブを、投入時情報を基に分類する（ステップＳ２１）。そして、学習装置１０は、分類結果に基づいて分類モデルを最適化する（ステップＳ２２）。
【００５２】
図１４を用いて、制御装置２０による制御処理の流れを説明する。図１４は、制御処理の流れを示すフローチャートである。図１４に示すように、まず、制御装置２０は、分類モデルを用いて投入時情報を基にジョブを分類する（ステップＳ３１）。
【００５３】
次に、制御装置２０は、キュー内のジョブの消費電力を予測する（ステップＳ３２）。制御装置２０は、予測結果に基づきジョブのスケジューリングを行う（ステップＳ３３）。そして、制御装置２０は、実行中のジョブの消費電力を予測し、ジョブのスケジューリングを行う（ステップＳ３４）。
【００５４】
ここで、ステップ３４の予測処理の例を２通り説明する。以降の説明では、予測部２３３からスケジュール制御部２３１に出力され、スケジューリングに利用される消費電力の予測値を電力推定値と呼ぶ。
【００５５】
図１５を用いて、予測処理の第１の例について説明する。図１５は、予測処理の流れを示すフローチャートである。図１５に示すように、まず、制御装置２０は、初期電力予測モデルの予測値を電力推定値として出力する（ステップＳ３４１ａ）。ここで、初期電力予測モデルとは、最初の区間の電力推定値を予測するための予測モデルである。例えば、初期電力予測モデルは、ユーザ情報２２１において、ジョブの実行ユーザに対応付けられた予測モデルである。
【００５６】
次に、制御装置２０は、全Ｍ個の予測モデルに対して時刻ｔ０にて過去ΔＴ区間の実測値と予測値のユークリッド距離ｄＭを計算する（ステップＳ３４２ａ）。そして、制御装置２０は、ｄＭが最も小さい予測値を電力推定値として出力する（ステップＳ３４３ａ）。
【００５７】
制御装置２０は、予測結果に基づきスケジューリングを行う（ステップＳ３４４ａ）。Δｔ秒経過後（ステップＳ３４５ａ、Ｙｅｓ）、ジョブが終了していない場合（ステップＳ３４６ａ、Ｎｏ）、制御装置２０は、ステップＳ３４２ａに戻り処理を繰り返す。
【００５８】
一方、Δｔ秒経過後（ステップＳ３４５ａ、Ｙｅｓ）、ジョブが終了している場合（ステップＳ３４６ａ、Ｙｅｓ）、制御装置２０は、次の処理へ進む。制御装置２０は、全Ｍ個の予測モデルに対して全区間の実測値と予測値のユークリッド距離ｄａｌｌＭを計算する（ステップＳ３４７ａ）。
【００５９】
制御装置２０は、ｄａｌｌＭが最も小さい予測値を出力した予測モデルを、そのジョブの正しい予測モデルとしてログに出力する（ステップＳ３４８ａ）。例えば、制御装置２０は、ユーザ情報２２１を介して、ログの情報を同じユーザの次のジョブの初期電力予測モデルに設定する。
【００６０】
図１６は、実行時間のずれについて説明するための図である。図１６に示すように、各ジョブの電力波形はいくつかのパタンから構成され、予測値が一部のパタンと合致すれば予測が可能になる。図１７は、対象区間のスライドについて説明するための図である。予測処理の第１の例では、図１７のように、対象区間をスライドさせつつ予測を行う。このため、予測処理の第１の例によれば、一定の計算量で予測を行うことができる。
【００６１】
図１８を用いて、予測処理の第２の例について説明する。図１８は、予測処理の流れを示すフローチャートである。図１８に示すように、まず、制御装置２０は、初期電力予測モデルの予測値を電力推定値として出力する（ステップＳ３４１ｂ）。
【００６２】
次に、制御装置２０は、全Ｍ個の予測モデルに対して時刻ｔ０にて過去の実行区間全ての実測値と予測値のユークリッド距離ｄＭを計算する（ステップＳ３４２ｂ）。そして、制御装置２０は、ｄＭが最も小さい予測値を電力推定値として出力する（ステップＳ３４３ｂ）。
【００６３】
制御装置２０は、予測結果に基づきスケジューリングを行う（ステップＳ３４４ｂ）。Δｔ秒経過後（ステップＳ３４５ｂ、Ｙｅｓ）、ジョブが終了していない場合（ステップＳ３４６ｂ、Ｎｏ）、制御装置２０は、ステップＳ３４２ｂに戻り処理を繰り返す。
【００６４】
一方、Δｔ秒経過後（ステップＳ３４５ｂ、Ｙｅｓ）、ジョブが終了している場合（ステップＳ３４６ｂ、Ｙｅｓ）、制御装置２０は、次の処理へ進む。制御装置２０は、全Ｍ個の予測モデルに対して全区間の実測値と予測値のユークリッド距離ｄａｌｌＭを計算する（ステップＳ３４７ｂ）。
【００６５】
制御装置２０は、ｄａｌｌＭが最も小さい予測値を出力した予測モデルを、そのジョブの正しい予測モデルとしてログに出力する（ステップＳ３４８ｂ）。例えば、制御装置２０は、ユーザ情報２２１を介して、ログの情報を同じユーザの次のジョブの初期電力予測モデルに設定する。
【００６６】
図１９は、対象区間の伸長について説明するための図である。予測処理の第２の例では、図１９のように、時刻が進むにしたがい対象区間が伸びていく。このため、予測処理の第２の例によれば、時刻がある程度進んだときの予測の精度が向上する。
【００６７】
［効果］
これまで説明したように、分類部１３１は、システムで実行されたジョブの実行時間と消費電力の情報の類似性に基づいて、ジョブを複数のグループに分類する。構築部１３３は、分類部１３１が分類したグループごとに、各グループに含まれる電力波形を教師データにして時系列予測モデルを構築する。予測部２３３は、所定間隔ごとに、分類したグループごとに構築した時系列予測モデルから現在の時刻を含む所定間隔の電力波形を予測する。特定部２３５は、電力予測対象の実行中ジョブについて、入手した現在の時刻を含む所定間隔の電力波形と予測した電力波形とを比較し、類似する時系列予測モデルを特定する。予測部２３３は、特定した時系列予測モデルに基づいて電力予測対象のジョブについての次の所定間隔の消費電力を予測する。スケジュール制御部２３１は、予測した消費電力からジョブの実行を制御する。このように、ジョブスケジューラは、実行中のジョブの電力消費パタンが時間経過とともに変化する場合であっても、変化にあわせた予測モデルを用いて消費電力を予測することができる。このため、実施例１によれば、システムの消費電力を精度良く予測することができる。
【００６８】
特定部２３５は、さらに、第１のジョブの全区間にわたる電力波形と最も類似する第１の時系列予測モデルを特定し、第１のジョブの実行ユーザと同一のユーザによって第２のジョブが実行される場合、当該第２のジョブの最初の所定区間の時系列予測モデルとして第１の時系列予測モデルを特定する。同一のユーザは電力消費パタンが類似したジョブを実行する場合がある。このため、実施例１によれば、最初の区間であっても精度の高い予測が可能になる。
【００６９】
決定部１３２は、分類したグループに含まれるジョブの投入時に設定される投入時情報が各グループに分類されるように投入時情報の各情報の重みを決定する。分類部１３１は、電力予測対象の投入時情報に決定した各情報に重みを付与した結果に応じて、投入時情報をグループに分類する。予測部２３３は、分類したグループの時系列予測モデルから消費電力を予測する。このように、ジョブスケジューラは、キュー内のジョブの消費電力パタンを投入時情報から予測することができる。このため、このため、実施例１によれば、システムの消費電力を精度良く予測することができる。
【００７０】
図２０は、実施例の効果を示す図である。図２０に示すように、実施例では、同一グループに属する複数のジョブの過去の電力波形を基に予測を行うため、従来と比較して実績値と予測値のかい離を小さく抑えることができるようになる。
【００７１】
なお、上記の実施例では、学習装置１０と制御装置２０を異なる装置として説明したが、学習装置１０の学習機能は制御装置２０の機能に含まれていてもよい。また、予測部２３３は、分類モデルによって分類されたグループの予測モデルを初期電力予測モデルとして用いてもよい。
【００７２】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
【００７３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７４】
［ハードウェア］
図２１は、ハードウェア構成例を説明する図である。図２１に示すように、制御装置２０は、通信インタフェース２０ａ、ＨＤＤ（Hard  Disk  Drive）２０ｂ、メモリ２０ｃ、プロセッサ２０ｄを有する。また、図２１に示した各部は、バス等で相互に接続される。なお、学習装置１０も制御装置２０と同様のハードウェア構成により実現される。
【００７５】
通信インタフェース２０ａは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。ＨＤＤ２０ｂは、ジョブスケジューラやＤＢを記憶する。
【００７６】
プロセッサ２０ｄは、図８に示した各処理部と同様の処理を実行するプログラム（ジョブスケジューラ）をＨＤＤ２０ｂ等から読み出してメモリ２０ｃに展開することで、図８等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、制御装置２０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ２０ｄは、スケジュール制御部２３１、分類部２３２、予測部２３３、測定部２３４及び特定部２３５と同様の機能を有するプログラムをＨＤＤ２０ｂ等から読み出す。そして、プロセッサ２０ｄは、スケジュール制御部２３１、分類部２３２、予測部２３３、測定部２３４及び特定部２３５等と同様の処理を実行するプロセスを実行する。プロセッサ２０ｄは、例えば、ＣＰＵ、ＭＰＵ、ＡＳＩＣ等のハードウェア回路である。
【００７７】
このように制御装置２０は、プログラムを読み出して実行することで分類方法を実行する情報処理装置として動作する。また、制御装置２０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、制御装置２０によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００７８】
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００７９】
１０  学習装置
１１、２１  入出力部
１２、２２  記憶部
１３、２３  制御部
２０  制御装置
３０  ジョブ実行システム
１２１  電力履歴ＤＢ
１２２、２２２  分類モデル情報
１２３、２２３  予測モデル情報
１３１、２３２  分類部
１３２  決定部
１３３  構築部
２２１  ユーザ情報
２３１  スケジュール制御部
２３３  予測部
２３４  測定部
２３５  特定部
【図１】
2020160622.tif 000003
【図２】
2020160622.tif 000004
【図３】
2020160622.tif 000005
【図４】
2020160622.tif 000006
【図５】
2020160622.tif 000007
【図６】
2020160622.tif 000008
【図７】
2020160622.tif 000009
【図８】
2020160622.tif 000010
【図９】
2020160622.tif 000011
【図１０】
2020160622.tif 000012
【図１１】
2020160622.tif 000013
【図１２】
2020160622.tif 000014
【図１３】
2020160622.tif 000015
【図１４】
2020160622.tif 000016
【図１５】
2020160622.tif 000017
【図１６】
2020160622.tif 000018
【図１７】
2020160622.tif 000019
【図１８】
2020160622.tif 000020
【図１９】
2020160622.tif 000021
【図２０】
2020160622.tif 000022
【図２１】
2020160622.tif 000023