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

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

▶ 株式会社日立製作所の特許一覧

特開2024-169214リソース最適化システム、及びリソース最適化方法
<>
  • 特開-リソース最適化システム、及びリソース最適化方法 図1
  • 特開-リソース最適化システム、及びリソース最適化方法 図2
  • 特開-リソース最適化システム、及びリソース最適化方法 図3
  • 特開-リソース最適化システム、及びリソース最適化方法 図4
  • 特開-リソース最適化システム、及びリソース最適化方法 図5
  • 特開-リソース最適化システム、及びリソース最適化方法 図6
  • 特開-リソース最適化システム、及びリソース最適化方法 図7
  • 特開-リソース最適化システム、及びリソース最適化方法 図8
  • 特開-リソース最適化システム、及びリソース最適化方法 図9
  • 特開-リソース最適化システム、及びリソース最適化方法 図10
  • 特開-リソース最適化システム、及びリソース最適化方法 図11
  • 特開-リソース最適化システム、及びリソース最適化方法 図12
  • 特開-リソース最適化システム、及びリソース最適化方法 図13
  • 特開-リソース最適化システム、及びリソース最適化方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024169214
(43)【公開日】2024-12-05
(54)【発明の名称】リソース最適化システム、及びリソース最適化方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241128BHJP
【FI】
G06F9/50 120A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023086498
(22)【出願日】2023-05-25
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】安藤 里奈
(72)【発明者】
【氏名】藪崎 仁史
(57)【要約】
【課題】スケーリングが可能な分散分析基盤を用いてタスク実行を処理の中に複数持つアプリケーションにおいて、分散分析処理をする際に、アプリケーション実行の総完了の時間及びリソースの利用効率のバランスのとれた最適なリソース量を各タスクに対して瞬時に判断する。
【解決手段】リソース最適化システムは、1以上の演算装置と、1以上のメモリリソースと、1以上の記憶装置と、を備え、前記演算装置は、アプリケーションが実行する処理を表すソースコードの中からリソース最適化処理の対象となる対象タスクを検出し、前記対象タスクに対する入力データのデータ量を測定し、測定した前記データ量、及びリソース量推定モデルに基づいて、前記対象タスクの実行時間を短縮するために最適なリソース量を推定することを特徴とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
リソース最適化システムであって、
1以上の演算装置と、1以上のメモリリソースと、1以上の記憶装置と、を備え、
前記演算装置は、
アプリケーションが実行する処理を表すソースコードの中からリソース最適化処理の対象となる対象タスクを検出し、
前記対象タスクに対する入力データのデータ量を測定し、
測定した前記データ量、及びリソース量推定モデルに基づいて、前記対象タスクの実行時間を短縮するために最適なリソース量を推定する
ことを特徴とするリソース最適化システム。
【請求項2】
請求項1に記載のリソース最適化システムであって、
前記演算装置は、
推定した前記リソース量に従い、分散分析基盤のリソース量を調整し、前記分散分析基盤に前記対象タスクを実行させる
ことを特徴とするリソース最適化システム。
【請求項3】
請求項2に記載のリソース最適化システムであって、
前記演算装置は、
前記分散分析基盤のリソース量を調整している期間、前記ソースコードに対応する処理をホールドする
ことを特徴とするリソース最適化システム。
【請求項4】
請求項2に記載のリソース最適化システムであって、
前記演算装置は、
前記分散分析基盤を監視し、監視結果を保持する
ことを特徴とするリソース最適化システム。
【請求項5】
請求項1に記載のリソース最適化システムであって、
1以上の前記対象タスクにそれぞれ対応する前記リソース量推定モデルが格納されたリソース量推定モデルデータベース、を備える
ことを特徴とするリソース最適化システム。
【請求項6】
請求項5に記載のリソース最適化システムであって、
前記演算装置は、
前記ソースコードから検出した前記対象タスクに対応する前記リソース量推定モデルを前記リソース量推定モデルデータベースの中から選定し、測定した前記データ量、及び選定した前記リソース量推定モデルに基づいて、前記対象タスクの実行時間を短縮するために最適なリソース量を推定する
ことを特徴とするリソース最適化システム。
【請求項7】
請求項2に記載のリソース最適化システムであって、
前記演算装置は、
前記分散分析基盤によって前記対象タスクを実行した際のデータ量、リソース量、及び実行時間を学習データとして前記リソース量推定モデルを再学習する
ことを特徴とするリソース最適化システム。
【請求項8】
請求項1に記載のリソース最適化システムであって、
前記演算装置は、
データ量が異なる複数のサンプル入力データと、複数のリソース量との組み合わせを適用して前記対象タスクを実行し、データ量、リソース量、及び実行時間を学習データとして前記リソース量推定モデルを生成する
ことを特徴とするリソース最適化システム。
【請求項9】
リソース最適化システムによるリソース最適化方法であって、
前記リソース最適化システムは、1以上の演算装置と、1以上のメモリリソースと、1以上の記憶装置と、を有し、
前記リソース最適化方法は、
前記演算装置が、アプリケーションが実行する処理を表すソースコードの中からリソース最適化処理の対象となる対象タスクを検出するステップと、
前記演算装置が、前記対象タスクに対する入力データのデータ量を測定するステップと、
前記演算装置が、測定した前記データ量、及びリソース量推定モデルに基づいて、前記対象タスクの実行時間を短縮するために最適なリソース量を推定するステップと、
を含むことを特徴とするリソース最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リソース最適化システム、及びリソース最適化方法に関する。
【背景技術】
【0002】
分散分析基盤のリソース量を推定する技術に関し、例えば特許文献1には「分散型システムのリソーススケジューリングの方法及び装置を開示する。この装置は、ユーザの要求に応じてタスクの総完了の時間及びコストのバランスをとり、リソース利用率向上ならびにタスク実行の加速を図る。タスクに対するユーザの処理要求に応じるため、装置にタスクが新規で入力された際、タスク処理要求を評価して優先度を付与し、その優先度に対応するスケジューリング待ち行列にタスクを割り振り、優先度が高い待ち行列から予め設定されたポリシーに従って分散ノードリソースに割り当てる。待ち行列はそれが有するタスクの待ち時間や重み係数(ユーザーの希望値)等から評価関数を算出し、他の待ち行列と評価関数を比較することで、待ち行列間で実行の優先順位が決まる。」と記載されている。
【0003】
また、非特許文献1には「クラウド指向のシステムにおいて運用コスト削減のためビッグデータ分析におけるリソース割当の最適化の方法及び装置を開示する。この装置は、処理実行の前段階にあるタスクに対するリソース割当量と性能(処理時間)の関係を表す性能特性曲線を算出し、前記タスク実行時に最適リソース割当を推定する。リソース量が多くなればなるほど性能向上の変化が逓減することより性能特性曲線は指数関数的減衰となるとみなし、学習データから近似線を見つけることで個々のタスクの性能特性を表す。学習データは、計算コスト削減のため独自のデータ拡張技術を用いてわずかな実データから十分な学習データを生成する。またここでは、処理性能の低下や待ち時間の増加等を防ぐために、ピークリソース(リソースの利用率が10割に近い、もしくは規定の制限値に近いリソース)へのタスクの割り当てを避け、リソースコストとランタイムを最適にトレードオフする、最大リソース量を最適リソース割当とする。」と記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】中国特許出願公開108345501号明細書
【非特許文献】
【0005】
【非特許文献1】Anish Pimpley, Shuo Li, Rathijit Sen, Soundararajan Srinivasan, Alekh Jindal, ”Towards Optimal Resource Allocation for Big Data Analytics”, OpenProceedings.org, ISBN: 978-3-89318-085-7, Electronic Edition, p.338-350(2022)
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1に記載の技術は、分散処理ではデータの分散に伴う転送遅延等のオーバーヘッドあり、当該オーバーヘッドは分析対象のデータ量に依存するにも拘わらず、与えるタスクは単一、且つ入力されるデータは一定の容量であると仮定している。そのため、実環境で運用する分散分析アプリケーションに適用することができない。また、分析対象のデータ量が変わる場合は適切に予測できない。加えて、分析するデータ量は本番環境でリクエストを受け付けるまで分からない。
【0007】
特許文献1に記載の技術は、現状あるリソースの中から処理を最短化するスケジューリング手法を探索するものであるため、リソース量が可変な分散分析基盤において最適なスケジュール方法を見つけることができない。
【0008】
非特許文献1に記載の技術、及び特許文献1に記載の技術は、処理の中で分散分析を複数回行うような分析アプリケーションを対象とした場合、リソースを最適化できるのは特定の分散分析に限られてしまう。
【0009】
本発明は、前述の点に鑑みてなされたものであり、スケーリングが可能な分散分析基盤を用いたタスク実行を処理の中に複数持つアプリケーションにおいて、分散分析処理をする際に、アプリケーション実行の総完了の時間及びコストのバランスをとり、最適なリソース量を各タスクに対して短時間で判断できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
本願は、前述した課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。
【0011】
前述課題を解決するため、本発明の一態様に係るリソース最適化システムは、1以上の演算装置と、1以上のメモリリソースと、1以上の記憶装置と、を備え、前記演算装置は、アプリケーションが実行する処理を表すソースコードの中からリソース最適化処理の対象となる対象タスクを検出し、前記対象タスクに対する入力データのデータ量を測定し、測定した前記データ量、及びリソース量推定モデルに基づいて、前記対象タスクの実行時間を短縮するために最適なリソース量を推定することを特徴とする。
【発明の効果】
【0012】
本発明によれば、スケーリングが可能な分散分析基盤を用いたタスク実行を処理の中に複数持つアプリケーションにおいて、分散分析処理をする際に、アプリケーション実行の総完了の時間及びリソースの利用効率のバランスのとれた最適なリソース量を各タスクに対して短時間で判断できる。これにより、分散分析基盤のリソース量を動的に増減して、アプリケーションの処理時間を短縮することができる。
【0013】
前述した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0014】
図1図1は、本発明の第1の実施形態に係るリソース最適化システムの構成例を示す図である。
図2図2は、コンピュータのハードウェア構成例を示すブロック図である。
図3図3は、リソース最適化処理の適用対象となるアプリケーションのソースコードの一例を示す図である。
図4図4は、分析データの一例を示す図である。
図5図5は、リソース量推定モデルDB(データベース)のデータ構造の一例を示す図である。
図6図6は、第1の実施形態におけるアプリケーションによるソースコード対応処理の一例を示すフローチャートである。
図7図7は、動的リソース最適化処理の一例を示すフローチャートである。
図8図8は、本発明の第2の実施形態に係るリソース最適化システムの構成例を示す図である。
図9図9は、学習データDBのデータ構造の一例を示す図である。
図10図10は、第2の実施形態におけるアプリケーションによるソースコード対応処理の一例を示すフローチャートである。
図11図11は、リソース量推定モデル更新処理の一例を示すフローチャートである。
図12図12は、本発明の第3の実施形態に係るリソース最適化システムの構成例を示す図である。
図13図13は、サンプル分析データの一例を示す図である。
図14図14は、リソース量推定モデル生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について図面に基づいて説明する。なお、実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合、及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須ではない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除しない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似又は類似するもの等を含む。
【0016】
本明細書において、リソースとは、計算処理能力を有するコンピュータを指し、リソース量とは、リソースであるコンピュータの台数を示す。当該コンピュータは、物理的コンピュータに限らず、論理的コンピュータであってもよい。
【0017】
<本発明の第1の実施形態に係るリソース最適化システム100-1>
図1は、本発明の第1の実施形態に係るリソース最適化システム100-1の構成例を示している。リソース最適化システム100-1は、分散分析基盤のリソース量を最適化して、分散分析基盤にタスクを実行させるものである。
【0018】
リソース最適化システム100-1は、リソース割当最適化対象としてのアプリケーション1、及び分散分析基盤2、並びに、リソース最適化ユニットをなすリソース量推定モデル管理装置3、及び最適リソース推定装置4を有する。
【0019】
アプリケーション1、分散分析基盤2、リソース量推定モデル管理装置3、及び最適リソース推定装置4は、ネットワークNに接続され、相互に所定の情報、データを通信可能である。ネットワークNは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、携帯電話通信網等の双方向通信網である。
【0020】
アプリケーション1、分散分析基盤2、リソース量推定モデル管理装置3、及び最適リソース推定装置4は、適宜組み合わせて、1台の物理的、又は論理的コンピュータで実現してもよい。また、アプリケーション1、及び分散分析基盤2は、2台以上の物理的、又は論理的コンピュータで実現してもよい。
【0021】
アプリケーション1、分散分析基盤2、リソース量推定モデル管理装置3、及び最適リソース推定装置4は、それぞれ分散して配置してもよい。例えば、アプリケーション1についてはローカルに配置し、分散分析基盤2、リソース量推定モデル管理装置3、及び最適リソース推定装置4については、クラウドサーバに配置してもよい。
【0022】
アプリケーション1は、大規模な分析データの入力を受け、分散分析基盤2を用いて、当該分析データの分析処理を実行する。アプリケーション1は、分散分析基盤2を少なくとも2回以上呼び出して使用するものとする。
【0023】
アプリケーション1は、対象タスク処理部11、非対象タスク処理部12、及び最適リソース推定ライブラリ13を有する。
【0024】
対象タスク処理部11は、最適なリソース量を推定する対象となる関数(対象タスク)を処理命令とともに分散分析基盤2に送信してその実行を依頼する。対象タスク処理部11が送信する関数は、アプリケーション1のソースコード内の他の関数等と区別するため特有のアノテーションを有する(後述)。
【0025】
非対象タスク処理部12は、アプリケーション1のソースコード内のうち対象タスク処理部11が分散分析基盤2に実行させる関数以外のタスクや処理等を実行する。ただし、非対象タスク処理部12は、分散分析基盤2を用いてタスクや処理を実行してもよい。
【0026】
最適リソース推定ライブラリ13は、アプリケーション内で最適リソース量の推定の際に必要な機能を備えたツール群であり、対象タスク処理部11と非対象タスク処理部12との区別、及び最適リソース量の推定時のアプリケーションの挙動制御等を行う。
【0027】
分散分析基盤2は、外部クライアント(アプリケーション1の対象タスク処理部11等)からの処理命令に応じ、その時点で分散分析基盤2内にて使用可能な計算リソースを用い、要求された処理を使用可能な計算リソースに割り振って並列に処理を実行し、処理結果を外部クライアントに出力する。
【0028】
分散分析基盤2は、分散分析処理部21、分散トレーシング収集部22、及び分散トレーシング情報DB23を有する。
【0029】
分散分析処理部21は、1台以上の物理的、または仮想的なコンピュータ等の計算リソースからなるクラスタ型の計算コンピュータリソースである。分散分析処理部21は、計算リソースの量を外部クライアントからの処理命令やその時のリソースの使用状況等に応じて増減することができる。
【0030】
分散トレーシング収集部22は、分散分析処理部21を監視し、監視情報を分散トレーシング情報DB23に格納する。また、分散トレーシング収集部22は、分散分析処理部21に処理命令が渡された際のリクエストのトランザクションの経過を監視し、分散分析処理部21内の各リソースに流れるトランザクションを観察する。分散トレーシング情報DB23には、監視情報や分散分析処理部21内の各リソースのトランザクション情報等が格納される。監視情報、及びトランザクション情報は、分散分析処理部21のリソースの最適化に利用される。
【0031】
リソース量推定モデル管理装置3は、リソース量推定モデルDB31を有する。リソース量推定モデルDB31には、アプリケーション1のソースコード内に含まれる最適リソースの推定を要求しているタスクT1~Tn(n:当該対象タスクの数を表す任意の自然数)に対応付けて、タスクT1~Tnが任意のデータ量の分析データを処理する際に最適なリソース量を推定するための関係式であるリソース量推定モデルが予め格納されている。
【0032】
最適リソース推定装置4は、タスクTi(i=1~n)にデータが入力された際に実行時間を最短にするために最適なリソース量を推定する。最適リソース推定装置4は、モデル選定部41、入力データ評価部42、最適リソース推定部43、及びリソーススケール管理部44を有する。
【0033】
モデル選定部41は、タスクTiの関数名等の識別可能な情報を用いて、リソース量推定モデルDB31から適切なリソース量推定モデルを選定し、最適リソース推定部43に出力する。
【0034】
入力データ評価部42は、タスクTiに入力された分析データについて、データセットや配列等に格納することで、タスクTiに入力された分析データのデータ量を計測し、計測結果を最適リソース推定部43に出力する。
【0035】
最適リソース推定部43は、選定されたリソース量推定モデルと、分析データのデータ量とに基づき、タスクTiを処理する際に最適なリソース量を推定する。
【0036】
リソーススケール管理部44は、最適リソース推定部43によって推定されたリソース量に従い、分散分析基盤2の分散分析処理部21に対してスケールイン、またはスケールアウト等を要求し、当該要求が問題なく実行されたことを確認する。
【0037】
<コンピュータ200のハードウェア構成例>
図2は、アプリケーション1、分散分析基盤2、リソース量推定モデル管理装置3、及び最適リソース推定装置4をそれぞれ実現するコンピュータ200のハードウェア構成例を示している。
【0038】
コンピュータ200は、CPU(Central Processing Unit)等のプロセッサ201、DRAM(Dynamic Random Access Memory)等のメモリ202、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ203、キーボードやマウス、メディアドライブ等の入力デバイス204、ディスプレイ等の出力デバイス205、及びEthernet(商標)カードやWi-Fi(商標)アダプタ等の通信モジュール206を備える。
【0039】
例えば、最適リソース推定装置4を実現するコンピュータ200は、プロセッサ201がメモリ202に格納された所定のプログラムを実行することにより、モデル選定部41、入力データ評価部42、最適リソース推定部43、及びリソーススケール管理部44を実現する。
【0040】
なお、プロセッサ201が実行する所定のプログラムは、予めメモリ202に格納しておいてもよいし、リムーバブルメディア(CD-ROM、フラッシュメモリ等)又はネットワークNを介して所定のサーバ等からダウンロードし、非一時的記憶媒体であるストレージ203に格納しておき、必要な時に、ストレージ203から読み出すようにしてもよい。このため、コンピュータ200は、リムーバブルメディアからデータを読み込むインタフェースを有するとよい。
【0041】
<アプリケーションのソースコード>
図3は、アプリケーション1が実行する処理を表すソースコードの一例を示している。
【0042】
同図の例では、ソースコードがPython言語を用いて記述されている。当該ソースコードにおいては、分散分析基盤2がPython特化型の分散並列処理のフレームワークであるRay(登録商標)を用いて構築されているものとして、2行目ではRay(登録商標)のライブラリをインポートしている。3行目ではリソース最適化システム100-1により最適リソース推定する際に必要な機能等を提供する最適リソース推定ライブラリ13をインポートしている。
【0043】
6行目以降では、処理や関数を定義している。6~8行目ではローカルで処理が実行される関数を定義している。10~13行目では関数にRay(登録商標)のデコレータ「@ray.remote()」が付いていることにより分散分析処理部21で処理が実行される関数を定義している。一方で、15~18行目と20~23行目の関数は前記の関数と同様にRay(登録商標)のデコレータ「@ray.remote()」に加えて「optimize_resource=True」のオプションが追加されている。そのため、最適リソース推定装置4によって前記関数(タスク)を実行する際に最適なリソースに分散分析処理部21が調整された後、分散分析処理部21で前記関数(タスク)が実行される。24行目以降についても、同様の規則に従ってソースコードが記述されている。
【0044】
<分析データの一例>
図4は、対象タスクに入力される分析データの一例を示している。分析データの内容については本発明に影響なく重要ではないので、その説明は省略する。
【0045】
<リソース量推定モデルDB31のデータ構造>
図5は、リソース量推定モデルDB31のデータ構成の一例を示している。リソース量推定モデルDB31には、各対象タスクについて関数名などの識別子に対応付けて、リソース量推定モデルとしての、学習データを用いて予め学習済みの、データ量に対するリソース量や実行時間等に関する相関関係式が記録されている。
【0046】
<アプリケーション1によるソースコート対応処理>
次に、図6は、リソース最適化システム100-1のアプリケーション1によるソースコード対応処理の一例を示すフローチャートである。当該ソースコード対応処理は、例えば、ユーザからの所定の開始操作に応じて開始される。
【0047】
始めに、最適リソース推定ライブラリ13が、アプリケーション1が実行する処理内容を表すソースコード、及び処理の対象となる分析データを受け付ける(ステップS1)。次に、最適リソース推定ライブラリ13が、ソースコード内で定義されている主要な処理の実行を開始する(ステップS2)。
【0048】
次に、最適リソース推定ライブラリ13が、ソースコードを読み込み、ソースコード内からリソース最適化対象のタスク(対象タスク)を検出したか否かを判定する(ステップS3)。具体的には、ソースコード内にデコレータ「@ray.remote(optimize_resource=True)」が付与された関数がある場合には対象タスクを検出したと判定する。ここで、対象タスクを検出したと判定した場合(ステップS3でYES)、次に、最適リソース推定ライブラリ13が、ソースコードに対応する処理の実行をホールドする(ステップS4)。
【0049】
次に、対象タスク処理部11が、対象タスクの識別子(関数名等)、及び対象タスクに入力される分析データを最適リソース推定装置4に送信して動的リソース最適化処理の実行を要求する(ステップS5)。当該要求に応じ、最適リソース推定装置4が分散分析基盤2の分散分析処理部21に対して動的リソース最適化処理を実行し、リソースを調整することになる。動的リソース最適化処理の詳細については後述する。
【0050】
分散分析処理部21のリソースが調整された後、次に、最適リソース推定ライブラリ13が、ステップS4における、ソースコードに対応する処理の実行のホールドを解除する(ステップS6)。次に、対象タスク処理部11が、分散分析基盤2の分散分析処理部21に対し、ステップS3で検出された、対象タスクの実行を要求する(ステップS7)。当該要求に応じ、分散分析基盤2では、分散分析処理部21が対象タスクを実行する。当該要求に対する応答を確認すると、この後、ステップS2以降が繰り返し実行される。
【0051】
なお、ステップS3において、最適リソース推定ライブラリ13が、対象タスクが検出されないと判定した場合(ステップS3でNO)、次に、非対象タスク処理部12が、ソースコードに残っている、リソース最適化対象ではないタスク(非対称タスク)を実行する(ステップS8)。以上が、アプリケーション1によるソースコード対応処理の説明である。
【0052】
<最適リソース推定装置4による動的リソース最適化処理>
図7は、最適リソース推定装置4による動的リソース最適化処理の一例を説明するフローチャートである。
【0053】
当該動的リソース最適化処理は、リソース対応処理(図6)のステップS5における対象タスク処理部11からの実行要求に応じて開始される。
【0054】
はじめに、最適リソース推定装置4のモデル選定部41が、リソース量推定モデル管理装置3のリソース量推定モデル31を参照し、対象タスク処理部11から送信されたタスクIDに対応するリソース量推定モデルを選定する(ステップS501)。
【0055】
次に、入力データ評価部42が、対象タスク処理部11から送信された、対象タスクに入力される分析データをデータセットや配列に格納する等の方法によって、そのデータ量を測定する(ステップS502)。
【0056】
次に、最適リソース推定部43が、ステップS501で選定したリソース量推定モデル、及びステップS502で測定した分析データのデータ量に基づいて最適なリソース量を推定する(ステップS503)。
【0057】
リソーススケール管理部44が、ステップS503で推定されたリソース量を用い、分散分析基盤2の分散分析処理部21に対してリソースのスケールイン、またはスケールアウトを要求し(ステップS504)、分散分析処理部21のリソース状態から要求どおりのリソース量が確保されていることを確認する(ステップS505)。
【0058】
なお、ステップS502とステップS503は順不同である。以上が、最適リソース推定装置4による動的リソース最適化処理の説明である。
【0059】
<本発明の第2の実施形態に係るリソース最適化システム100-2>
次に、図8は、本発明の第2の実施形態に係るリソース最適化システム100-2の構成例を示している。
【0060】
リソース最適化システム100-2は、リソース最適化システム100-1(図1)のリソース量推定モデル管理装置3に学習データDB32、及びモデル更新部33を追加したものである。リソース最適化システム100-2の学習データDB32、及びモデル更新部33以外の構成要素については、リソース最適化システム100-1(図1)の構成要素と同一の符号を付して、その説明を省略する。
【0061】
リソース最適化システム100-2は、リソース最適化処理後の対象タスクの実行結果を学習データとして利用し、継続的にリソース量推定モデルDB31内のリソース推定モデルを更新するようになされている。
【0062】
学習データDB32には、リソース量推定モデルを算出するために必要な学習データとして、リソース最適化処理後の対象タスクの実行結果(リソース量、データ量、実行時間等)が格納される。モデル更新部33は、学習データDB32に格納されている学習データに基づき、リソース量推定モデルを再学習し、再学習したリソース量推定モデルを上書きすることによりリソース量推定モデルDB31を更新する。
【0063】
<学習データDB32のデータ構造>
図9は、学習データDB32のデータ構造の一例を示している。学習データDB32には、対象タスク毎に、様々なデータ量に対応するリソース量とその実行時間が記録されている。同図の場合、異なるデータ量に対して割当てられたシーケンス番号(seq)に対応付けて、分散分析処理部21におけるリソース量、当該タスクに入力されるデータのデータ量、及び当該タスクの実行に要した実行時間が記録されている。実行時間は、当該タスクにデータを入力する際の伝送遅延を含む。
【0064】
<アプリケーション1によるソースコード対応処理>
図10は、リソース最適化システム100-2のアプリケーション1によるソースコード対応処理の一例を示すフローチャートである。当該ソースコード対応処理は、リソース最適化システム100-1のアプリケーション1によるソースコード対応処理(図6)のステップS7の後にステップS21を追加したものである。ステップS1~S8については、共通であるため、その説明は適宜省略する。
【0065】
ステップS7において、対象タスク処理部11が、分散分析基盤2の分散分析処理部21に対象タスクの実行を要求すると、当該要求に応じ、分散分析基盤2の分散分析処理部21が対象タスクを実行する。次に、最適リソース推定ライブラリ13が、リソース量推定モデル管理装置3のモデル更新部33に対してリソース量推定モデル更新処理の実行を要求する(ステップS21)。この要求に応じ、モデル更新部33が、リソース量推定モデル更新処理を実行する。当該対象タスクの実行要求に対する応答を確認すると、この後、ステップS2以降が繰り返し実行される。
【0066】
<モデル更新部33によるリソース量推定モデル更新処理>
図11は、モデル更新部33によるリソース量推定モデル更新処理の一例を示すフローチャートである。
【0067】
はじめに、モデル更新部33が、最適リソース推定装置4を介して分散分析基盤2から対象タスクを実行した際の結果(リソース量、データ量、実行時間等)を取得し、学習データとして学習データDB32に格納する(ステップS211)。次に、モデル更新部33が、学習データDB32に格納した学習データを基にリソース量推定モデル(関係式)を再学習する(ステップS212)。次に、モデル更新部33が、再学習したリソース量推定モデルを上書きすることによりリソース量推定モデルDB31を更新する(ステップS213)。以上が、モデル更新部33によるリソース量推定モデル更新処理の説明である。
【0068】
リソース最適化システム100-2によれば、リソース量推定モデル(関係式)を再学習したことによってリソース最適化処理の精度が向上するので、アプリケーション1によるソースコード対応処理に要する時間をより短縮することが可能となる。
【0069】
<本発明の第3の実施形態に係るリソース最適化システム100-3>
次に、図12は、本発明の第3の実施形態に係るリソース最適化システム100-3の構成例を示している。上述したリソース最適化システム100-1(図1)は、予め生成されたリソース量推測モデルがリソース量推定モデルDB31に格納されていることを前提としていたが、当該リソース最適化システム100-3は、アプリケーション1によるソースコード対応処理(図6)に先行し、リソース量推測モデルを生成するようになされている。
【0070】
リソース最適化システム100-3は、リソース最適化システム100-2(図8)のリソース量推定モデル管理装置3からモデル更新部33を削除し、サンプル分析データDB34、学習データ収集部35、及びモデル生成部36を追加したものである。リソース最適化システム100-3のサンプル分析データDB34、学習データ収集部35、及びモデル生成部36以外の構成要素については、リソース最適化システム100-1(図1),200(図8)の構成要素と同一の符号を付して、その説明を省略する。
【0071】
サンプル分析データDB34には、タスクT1~Tnに対して入力するためのサンプル分析データが格納される。学習データ収集部35は、サンプル分析データDB34に格納されているサンプル分析データを用いて分散分析基盤2によってタスクT1~Tnを実行した際に得られる、リソース量推測モデルの生成に必要な学習データを収集する。モデル生成部36は、学習データDB32に格納されている学習データに基づいてリソース量推定モデルを生成し、リソース量推定モデルDB31に格納する。
【0072】
<サンプル分析データの一例>
図13は、対象タスクに入力されるサンプル分析データの一例を示している。サンプル分析データは、各対象タスクにそれぞれ対応付けて用意されている。なお、サンプル分析データの内容については本発明に影響なく重要ではないので、その説明は省略する。
【0073】
<リソース量推定モデル管理装置3によるリソース量推定モデル生成処理>
図14は、リソース量推定モデル管理装置3によるリソース量推定モデル生成処理の一例を示すフローチャートである。リソース量推定モデル生成処理は、アプリケーション1によるソースコード対応処理(図6)に先行して実行される。
【0074】
始めに、リソース量推定モデル管理装置3が、アプリケーション1が実行するソースコードを取得する(ステップS31)。次に、学習データ収集部35が、ソースコード内からデコレータ「@ray.remote(optimize_resource=True)」が付与された関数を検出することにより、対象タスクを抽出する(ステップS32)。ここで抽出された全ての対象タスクに対して、以下に説明するステップS33~S36が実行される。
【0075】
次に、学習データ収集部35が、抽出した対象タスクに対して、サンプル分析データDB34に格納されているデータを与えながらリソース量を変化させて対象タスクを実行する(ステップS33)。なお、与えるサンプル分析データについても、データの一部を切り取る等の方法でデータ量を逐次変化させて使用する。次に、学習データ収集部35が、サンプル分析データのデータ量とリソース量との組み合わせ毎にその実行時間を計測し、学習データとして収集し、学習データDB32に格納する(ステップS34)。
【0076】
次に、モデル生成部36が、学習データDB32に格納されている学習データに基づいてリソース量推定モデルを生成する(ステップS35)。リソース量推定モデルの生成に際しては、リソース量、及びデータサイズそれぞれが大きくなるとレイテンシも増加するため、レイテンシの分だけ変化量がなくなってしまう。そのため、リソース量が多くなればなるほど実行時間の変化量は逓減するため、リソース量が増えると実行時間は指数関数的に減少するものとみなす。また、データ量が多くなればなるほど実行時間の変化量は逓増するため、データ量が増えると実行時間は指数関数的に増加するものとみなす。このような条件の元で、学習データから近似線を見つけることで各対象タスクについてリソース量とデータ量と実行時間のリソース量推定モデル(関係式)を生成する。
【0077】
次に、モデル生成部36が、生成したリソース量推定モデル(関係式)をリソース量推定モデルDB31に格納する(ステップS36)。以上が、リソース量推定モデル管理装置3によるリソース量推定モデル生成処理の説明である。
【0078】
リソース最適化システム100-3によれば、アプリケーション1によるソースコード対応処理を実行する際に前提となるリソース量推定モデルを生成できる。
【0079】
本発明は、上述した実施形態に限定されるものではなく、様々な変形が可能である。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、追加したりすることが可能である。
【0080】
また、前述の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0081】
1・・・アプリケーション
2・・・分散分析基盤
3・・・リソース量推定モデル管理装置
4・・・最適リソース推定装置
11・・・対象タスク処理部
12・・・非対象タスク処理部
13・・・最適リソース推定ライブラリ
21・・・分散分析処理部
22・・・分散トレーシング収集部
23・・・分散トレーシング情報DB
31・・・リソース量推定モデルDB
32・・・学習データDB
33・・・モデル更新部
34・・・サンプル分析データDB
35・・・学習データ収集部
36・・・モデル生成部
41・・・モデル選定部
42・・・入力データ評価部
43・・・最適リソース推定部
44・・・リソーススケール管理部
100-1~100-3・・・リソース最適化システム
200・・・コンピュータ
201・・・プロセッサ
202・・・メモリ
203・・・ストレージ
204・・・入力デバイス
205・・・出力デバイス
206・・・通信モジュール
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14