JPWO2016084327A1 - 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム - Google Patents
資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム Download PDFInfo
- Publication number
- JPWO2016084327A1 JPWO2016084327A1 JP2016561229A JP2016561229A JPWO2016084327A1 JP WO2016084327 A1 JPWO2016084327 A1 JP WO2016084327A1 JP 2016561229 A JP2016561229 A JP 2016561229A JP 2016561229 A JP2016561229 A JP 2016561229A JP WO2016084327 A1 JPWO2016084327 A1 JP WO2016084327A1
- Authority
- JP
- Japan
- Prior art keywords
- task
- resource
- processing
- prediction
- information
- 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.)
- Pending
Links
Images
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
[課題]分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる資源予測装置を提供する。[解決手段]資源予測装置20は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部22を備える。
Description
本発明は、計算機の資源における割当量を予測する装置等に関し、特に計算機クラスタ等で稼働する分散処理システムにおける処理割り当てに使用される資源予測装置等に関する。
ジョブを分割することによって生成された複数のタスクが、複数の計算機(以下、処理サーバという。)に分散される分散処理システムが開発されている。分散処理システムは、タスクを処理する処理サーバと、タスクの割り当てを制御するマスタサーバとを含む。分散処理システムでは、分散された各タスクが、各処理サーバで実行される。
タスクを実行できる状態になると、処理サーバには、分散処理システムのマスタサーバから新たなタスクが割り当てられる。割り当てられたタスクが確実に処理されるために、タスクが割り当てられた処理サーバには、タスクの処理に要する計算機資源(以下、単に「資源」と記載)を確保することが求められる。資源は、例えば、CPU(Central Processing Unit)コア、メモリ、ディスクである。資源が確保されていない場合、処理サーバのタスクの処理性能が劣化したり、タスクが途中で異常終了したりすることがある。
処理サーバがタスクの処理に要する資源を確保するために、タスクの割り当て元であるマスタサーバには、割り当て先の処理サーバがタスクの処理に要する資源量を予め把握することが求められる。しかし、通常タスクの処理に要する資源量をタスクの実行前に把握することは困難であるため、タスクの処理に要する資源量を推定する技術が求められる。
特許文献1〜3および非特許文献1〜2には、タスクの処理に要する資源量の推定に関連する技術が記載されている。
特許文献1は、過去に実行されたタスクにおいて使用された資源量のログから、資源使用量と負荷値の関係を推定する技術を開示する。
特許文献2は、プログラムが生じる負荷特性を推定するシステムを開示する。
特許文献3は、時間区間毎の物理リソースのピーク使用量を予測する予測部を含む仮想マシン配置構成制御装置を開示する。
非特許文献1は、ウェーブレット変換を用いて仮想マシンが使用した資源量の推移情報から資源量推移の基底関数を導出し、導出された基底関数を用いることによって将来の必要資源量を推定する技術を開示する。
非特許文献2は、協調フィルタリングを用いて、過去のタスク実行履歴と今後割り当てる予定のタスクの短時間試験実行の結果から、サービスレベル目標(SLO:Service Level Objective)を満たすために必要な資源量を推定する技術を開示する。
Hiep Nguyen, Zhiming Shen, Xiaohui Gu, Sethuraman Subbiah, John Wilkes. "AGILE: elastic distributed resource scaling for Infrastructure-as-a-Service." In Proc. of the 10th International Conference on Autonomic Computing (ICAC ’13), pp. 69-82, 2013.
Christina Delimitrou and Christos Kozyrakis. "Quasar: Resource-Efficient and QoS-Aware Cluster Management." In Proc. of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’14), pp.127-144, 2014.
特許文献1および特許文献2が開示する技術は、タスクが処理サーバに与える負荷を予測できるが、タスクの処理に要する資源量までは予測できない。
特許文献3が開示する技術は、仮想マシンが使用する資源量を予測の対象にしており、分散処理におけるタスクの処理に要する資源量を予測の対象にしていない。
非特許文献1が開示する技術は、仮想マシンにおいて稼働する処理サーバを対象にしており、分散処理のタスクを処理する処理サーバを対象にしていない。
非特許文献2が開示する技術は、分散処理のタスクを対象にしている。しかし、非特許文献2が開示する技術を使用した場合、資源使用量の予測のために余剰な資源が求められる。その理由は、資源使用量を予測する際、非特許文献2に記載されている技術は、サーバや分散処理のタスク等の予測の対象の属性情報を、予測の都度観測するためである。予測の対象の属性情報は、例えば、処理の実行に要するメモリ量の単位時間当たりの増加率である。
そこで、本発明は、上述した課題を解決することを目的とする。即ち、本発明は、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる資源予測装置等を提供することを目的とする。
上記課題を解決するため、本発明の第1の特徴は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部を備える資源予測装置である。
本発明の第2の特徴は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源予測方法である。
本発明の第3の特徴は、コンピュータに、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する予測処理を実行させる資源予測プログラム記録媒体である。
本発明の第4の特徴は、資源予測装置を含み、分散処理を行う分散処理システムであって、資源予測装置は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測部を含む分散処理システムである。
本発明によれば、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測することが可能となる。
<第1の実施形態>
[構成の説明]
以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、本実施形態に係る資源予測装置200を含む分散処理システム100の構成例を示すブロック図である。図1に示す分散処理システム100は、資源予測装置200と、マスタサーバ300と、ワーカマシン401〜402とを含む。
[構成の説明]
以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、本実施形態に係る資源予測装置200を含む分散処理システム100の構成例を示すブロック図である。図1に示す分散処理システム100は、資源予測装置200と、マスタサーバ300と、ワーカマシン401〜402とを含む。
本実施形態における資源予測装置200は、図1に示すように、1台以上の計算機(マスタサーバ300、ワーカマシン401〜402等)で構成された分散処理システムにおいて動作する。なお、資源予測装置200は、分散処理システムに含まれずに、対象にする分散処理システムの外部に設けられていてもよい。分散処理システムの外部に設けられている場合、資源予測装置200は、対象にする分散処理システムと通信可能に接続する。
また、本実施形態における分散処理システム100は、図1に示すように、マスタサーバ300と、複数台のワーカマシン401〜402とを含む。
マスタサーバ300は、ワーカマシン401〜402にタスクを割り当てる機能を有する。ワーカマシン401〜402は、マスタサーバ300から割り当てられたタスクを実行し、処理結果を出力する機能を有する。
なお、分散処理システム100は、マスタサーバを1台以上含んでもよい。また、分散処理システム100は、冗長化された複数台のマスタサーバを含んでもよい。また、ピアツーピア(P2P:Peer to Peer)システムのように、分散処理システム100におけるマスタサーバ300とワーカマシン401〜402は、区別されていなくてもよい。
図1に示すように、資源予測装置200は、資源使用量予測モデル生成部201と、資源使用量予測部202とを含む。
資源使用量予測モデル生成部201は、資源使用量の予測モデルを出力する機能を有する。資源使用量予測モデル生成部201は、処理の特徴を示す情報と、処理が行われた際に観測される情報とをマスタサーバ300からの入力として受け付ける。次いで、資源使用量予測モデル生成部201は、受け付けた情報に基づいて、機械学習アルゴリズム等を用いて計算を行い、資源使用量の予測モデルを生成する。
処理の特徴を示す情報は、例えば、処理対象である入力データのメタ情報と、処理プログラムの構成情報である。処理が行われた際に観測される情報は、例えば、処理に要した資源量と、処理時間等の性能値である。
入力データのメタ情報は、例えば、行列形式の入力データにおける列ラベル、行数や列数といったデータサイズに関する情報、各列の平均値、分散、最大値、最小値、濃度である。
処理プログラムの構成情報は、例えば、起動対象のプログラムに与えられる引数、設定ファイルで指定された値、プログラムコードに現れるシンボル名、呼び出される関数の種類と呼び出される回数である。
処理に要した資源量は、例えば、CPU使用率、CPUコア使用数、メモリ使用量、ディスク使用量、ディスクI/Oの発生頻度、単位時間当たりの読み書き量、通信ネットワーク送受信量、GPU(Graphics Processing Unit)等のアクセラレータの使用率である。
資源使用量予測モデル生成部201が出力する資源使用量の予測モデルは、例えば、線形結合された関数式や、分岐条件を示す式や、この二つの式が組み合わせられた式である。
資源使用量予測モデル生成部201は、予測モデルを導出する際に使用する学習アルゴリズムに様々な種類のアルゴリズムを使用できる。例えば、資源使用量予測モデル生成部201は、重回帰分析を用いて予測モデルを導出できる。また、資源使用量予測モデル生成部201は、回帰木を用いてタスクを分類し、分類により生成されたそれぞれのタスク集合に対して重回帰分析を行うことによっても予測モデルを導出できる。本実施形態は、資源使用量予測モデル生成部201が用いる機械学習アルゴリズムによって限定されない。
なお、資源使用量予測モデル生成部201は、必要に応じて、分散処理システム100の稼働中に生成した資源使用量の予測モデルを随時更新し、更新の都度予測モデルを資源使用量予測部202に出力してもよい。
資源使用量予測部202は、処理の特徴を示す情報をマスタサーバ300からの入力として受け付け、処理に要する資源量や処理時間等の性能値等、処理が行われた際に観測される指標の予測値を計算し、出力する機能を有する。資源使用量予測部202は、資源使用量予測モデル生成部201が出力した資源使用量の予測モデルを用いて、処理が行われた際に観測される指標の予測値を計算する。
なお、本実施形態の資源予測装置200は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。また、資源予測装置200は、ハードウェアによって実現されてもよい。
また、資源使用量予測モデル生成部201および資源使用量予測部202は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
[動作の説明]
以下、本実施形態の分散処理システム100の動作を、図面を参照して説明する。分散処理システム100の動作は、学習処理と、予測処理とで構成される。
以下、本実施形態の分散処理システム100の動作を、図面を参照して説明する。分散処理システム100の動作は、学習処理と、予測処理とで構成される。
学習処理は、処理の特徴を示す情報と、処理が実施された際に観測された指標値との関係を特定する処理である。予測処理は、処理の特徴を示す情報から、処理が実施された際に観測される指標値を予測する処理である。分散処理システム100は、各処理を非同期に実施できる。
最初に、図15のフローチャートを参照して、学習処理を説明する。分散処理システム100の利用者は、実行したいジョブをマスタサーバ300に送信し、マスタサーバ300がこのジョブを受信する(ステップS1)。送信されるジョブには、例えば、処理プログラムとプログラムへの入力データが含まれる。
分散処理システム100のマスタサーバ300は、分散処理システム100の利用者が送信した入力データと処理プログラムから、処理の特徴を示す情報を抽出する。次いで、マスタサーバ300は、処理が実行された際に観測された情報を収集する。
具体的には、マスタサーバ300は、利用者から与えられたジョブを複数のタスクに分割し、分割されたタスクを各ワーカマシンに割り当てる。そして、マスタサーバ300は、各ワーカマシンから、タスクを実行した際に観測された資源使用量等を受信する(ステップS2)。
マスタサーバ300は、ステップS1〜S2で取得した情報を資源使用量予測モデル生成部201に与える(ステップS3)。例えば、マスタサーバ300は、入力データのメタ情報、処理プログラムの構成情報および資源使用量の観測値を、資源使用量予測モデル生成部201に送信する。
上記のように、分散処理システム100のマスタサーバ300は、処理の特徴を示す情報の抽出や、処理が実行された際に観測された情報の収集を行う。マスタサーバ300は、取得した情報を資源使用量予測モデル生成部201に与える。なお、ステップS1〜S3における処理を行う主体は、マスタサーバ300でなくてもよい。
例えば、処理の特徴を示す情報の抽出は、分散処理システム100の利用者が行ってもよい。また、処理が実行された際に観測された情報の収集は、マスタサーバ300の代わりに、ワーカマシン401〜402が行ってもよい。その場合、ワーカマシン401〜402は、収集した情報を直接資源使用量予測モデル生成部201に送信する。
資源使用量予測モデル生成部201は、処理の特徴を示す情報と、処理が実行された際に観測された情報とを入力として受け付ける。次いで、資源使用量予測モデル生成部201は、受け付けた情報に基づいて計算を行い、資源使用量の予測モデルを生成する。
資源使用量予測モデル生成部201は、生成した資源使用量の予測モデルを資源使用量予測部202に出力する(ステップS4)。出力した後、分散処理システム100は、学習処理を終了する。
次に、図16のフローチャートを参照して、予測処理を説明する。分散処理システム100の利用者は、実行したいジョブをマスタサーバ300に送信し、マスタサーバ300がこのジョブを受信する(ステップS5)。送信されるジョブは、ステップS1で送信されたジョブと同じでなくてもよい。
マスタサーバ300は、分散処理システム100の利用者から与えられたジョブを複数のタスクに分割し、分割されたタスクを各ワーカマシンに割り当てる。ここで、分割されたタスクが割り当てられる際、マスタサーバ300がタスクの処理に要する資源量や処理の性能値等を考慮する場合を想定する。
本実施形態におけるマスタサーバ300は、利用者から実行を指示された処理(ジョブ)の特徴を示す情報を資源使用量予測部202に与える。具体的には、マスタサーバ300は、入力データのメタ情報と処理プログラムの構成情報を資源使用量予測部202に送信する(ステップS6)。
資源使用量予測部202は、処理の特徴を示す情報を入力として受け付ける。次いで、資源使用量予測部202は、資源使用量予測モデル生成部201が出力した資源使用量の予測モデルを用いて、入力情報を基に処理が行われた際に観測される指標の予測値を計算する。資源使用量予測部202は、計算した予測値をマスタサーバ300に対して送信する(ステップS7)。
マスタサーバ300は、資源使用量予測部202が送信した、使用資源量や処理時間等の、処理が実行された際に観測される指標の予測値を受信する。
マスタサーバ300は、受信した予測値に基づいて、割り当てる処理を選択し、割り当て先のワーカマシンを選択する。また、マスタサーバ300は、受信した予測値を用いて、ワーカマシンへのタスク割り当てと資源の配分を同時に実施してもよい(ステップS8)。タスク割り当て等が行われた後、分散処理システム100は、予測処理を終了する。
本実施形態における資源予測装置200は、資源使用量予測部202がタスクの処理に要する資源量を、資源使用量の予測モデルを用いて、精度よく推定することによって、タスクを処理するワーカマシンに対して割り当てられる資源量を最小の量にすることができる。余分な資源量がワーカマシンに割り当てられない場合、分散処理システム全体における資源の利用効率が向上する。従って、分散処理システムは、例えば、資源の利用効率が最大になるように各ワーカマシンに資源を割り当てることによって、同時に実行できるタスク数を増加させることができ、結果的にタスクの集合であるジョブの完了時間を早めることができる。
また、本実施形態における資源予測装置200は、余剰の資源を使用せずに資源使用量を予測できる。その理由は、資源使用量予測モデル生成部201が、タスクの属性情報と、分散処理システムでタスクが実行された際に観測された資源使用量との関係を示す予測モデルを構築し、システム稼働中に予測モデルを随時更新するためである。また、資源使用量予測部202が、構築された予測モデルを用いて資源使用量を予測するためである。すなわち、予測の際に改めて属性情報と資源使用量との関係を計算しなくてもよいため、資源予測装置200は、余剰の資源を使用しない。
(具体例1)
本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、入力データサイズおよびプログラムの種類とメモリ使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するメモリ量を予測する。
本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、入力データサイズおよびプログラムの種類とメモリ使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するメモリ量を予測する。
本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示した処理における入力データのサイズとプログラムの種類を示す情報を、マスタサーバ300等から受信する。また、本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示した処理がワーカマシンで実行された際に使用されたメモリ量の情報を、マスタサーバ300等から受信する。
最初に、本具体例における分散処理システム100による具体的な学習処理を、図2を参照して説明する。図2は、分散処理システム100による学習処理の動作を示すフローチャートである。
本具体例における資源使用量予測モデル生成部201は、受信したプログラムリストに含まれるプログラム情報を、プログラムの種類で分類する(ステップS111)。
本具体例における資源使用量予測モデル生成部201が受信するプログラム学習リストの例を図3に示す。図3は、資源使用量予測モデル生成部201が受信するプログラム学習リストの一例を示す説明図である。
図3に示すプログラム学習リストを構成する各プログラム学習情報は、プログラムの種類と、入力データのサイズと、メモリ使用量とで構成される。プログラムの種類は、学習対象になるプログラムの種類である。
入力データのサイズは、学習対象のプログラムに対して入力されたデータのサイズであり、図3に示す値はサンプル数を意味する。メモリ使用量は、学習対象のプログラムに対して入力データのサイズが示す大きさのデータが入力され、プログラムが実行された際に使用されたメモリ量であり、図3に示す値の単位はキロバイト(KB)である。
図3に示すプログラムリストには、「回帰分析A」というプログラムと、「判別分析B」というプログラムに関するプログラム情報が含まれている。プログラム情報には、サンプル数で示される入力データのサイズの情報と、メモリ使用量の情報が含まれている。
次いで、資源使用量予測モデル生成部201は、受信したプログラムリストから分類されたプログラムの種類ごとに単回帰分析を行う(ステップS113)。単回帰分析を行うことによって、資源使用量予測モデル生成部201は、入力データのサイズとメモリ使用量との関係を示す予測モデルを生成する。
例えば、図3に示すプログラムリストが受信された場合、資源使用量予測モデル生成部201が生成する回帰分析Aに関する予測モデルは、サンプル数をx、メモリ使用量をyとすると、y=5.6638x+51130になる。
資源使用量予測モデル生成部201は、受信したプログラムリストから分類された全てのプログラムの種類に対して、予測モデルを生成する(ステップS112)。全ての予測モデルを生成した場合(ステップS114における判定条件が成立)、資源使用量予測モデル生成部201は、生成した予測モデルを資源使用量予測部202に出力する。出力した後、資源使用量予測モデル生成部201は、学習処理を終了する。
次に、本具体例における分散処理システム100による具体的な予測処理を、図4を参照して説明する。図4は、分散処理システム100による予測処理の動作を示すフローチャートである。
本具体例における資源使用量予測部202は、資源使用量予測モデル生成部201が生成した予測モデルを用いて、プログラムの種類と入力データのサイズから、メモリ使用量を予測する。資源使用量予測部202は、受信したプログラム予測リストに含まれるプログラム予測情報が示すプログラムの種類に対応する予測モデルを選択する(ステップS121)。
本具体例における資源使用量予測部202が受信するプログラム予測リストの例を図5に示す。図5は、資源使用量予測部202が受信するプログラム予測リストの一例を示す説明図である。
図5に示すプログラム予測リストを構成する各プログラム予測情報は、プログラムの種類と、入力データのサイズとで構成される。プログラムの種類は、予測対象になるプログラムの種類である。入力データのサイズは、予測対象のプログラムに対して入力される予定のデータのサイズであり、図5に示す値はサンプル数を意味する。
例えば、図5に示すプログラム予測リストの最初のプログラム予測情報のプログラムの種類は回帰分析Aであるため、資源使用量予測部202は、最初のプログラム予測情報に対応する予測処理において回帰分析A用の予測モデルを選択する。
次いで、資源使用量予測部202は、予測モデルに対して入力データのサイズを与え、メモリ使用量の予測値を計算する(ステップS122)。
例えば、図5に示すプログラム予測リストの最初のプログラム予測情報の入力データのサイズxは、x=1500である。回帰分析A用の予測モデルがy=5.6638x+51130である場合、最初のプログラム予測情報に対応する処理において使用されるメモリ量yは、5.6638×1500+51130=59625.7(KB)になる。
次いで、資源使用量予測部202は、予測したメモリ使用量をマスタサーバ300に送信する。マスタサーバ300は、送信された予測値に基づいて、処理を割り当てることができるワーカマシンを選択したり、処理の実行に使用されるメモリ量を制限するように指示したりする。予測値を送信した後、資源使用量予測部202は、予測処理を終了する。
(具体例2)
本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、プログラムの処理フローの構造的特徴および入力データのメタ情報と、ディスク使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するディスク量を予測する。
本具体例における資源予測装置200では、資源使用量予測モデル生成部201が、プログラムの処理フローの構造的特徴および入力データのメタ情報と、ディスク使用量との関係を学習して数理モデルを生成する。さらに、本具体例における資源予測装置200では、資源使用量予測部202が、資源使用量予測モデル生成部201の生成した数理モデルを用いて、処理の実行に要するディスク量を予測する。
本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示したプログラムの処理フローの構造的特徴を示す情報と入力データのメタ情報を示す情報を、マスタサーバ300等から受信する。また、本具体例における資源使用量予測モデル生成部201は、ユーザが実行を指示したプログラムがワーカマシンで実行された際に使用されたディスク量の情報を、マスタサーバ300等から受信する。
最初に、本具体例における分散処理システム100による具体的な学習処理を、図6を参照して説明する。図6は、分散処理システム100による学習処理の他の動作を示すフローチャートである。
本具体例における資源使用量予測モデル生成部201は、受信した情報が示すプログラムの処理フローの構造的特徴を解釈して、処理の単位と処理対象の種類を抽出する(ステップS211)。
図7は、資源使用量予測モデル生成部201が受信する情報が示すプログラムの処理フローの構造的特徴の一例を示す説明図である。図7には、プログラムの処理フローの構造的特徴が、無閉路有向グラフで示されている。
図7に示す処理フローは、対応するプログラムにおいて、入力データの読み込み処理、対象属性として指定された列の値に対する二値展開処理、二値展開処理により生成されたデータの出力処理の順に処理が行われることを意味する。ここで、本具体例における二値展開処理は、列の値に対して、指定された値であるか否かを示すバイナリ値の列を追加する処理に相当する。
本具体例における資源使用量予測モデル生成部201は、図7に示す無閉路有向グラフの内容が含まれる情報から、プログラムの処理の単位として「データ読み込み」、「二値展開」、「結合と書き出し」の3種類があることを抽出する。また、資源使用量予測モデル生成部201は、二値展開の対象の列が「曜日」であることも抽出する。
次いで、資源使用量予測モデル生成部201は、上記の抽出された情報と入力データのメタ情報から、処理に関する属性情報を生成する(ステップS213)。
図8は、資源使用量予測モデル生成部201が受信する入力データの一例を示す説明図である。図8に示す入力データは、時刻と、気温と、曜日と、消費電力量とで構成される。
本具体例では、入力データのメタ情報として、入力データサイズと、列の名前と、列のデータサイズとが求められる。また、図8に示す入力データがプログラムに入力される場合、曜日列の値の種類数が求められる。図8に示す入力データにおいて、曜日列の値の種類数は、曜日列の値が月、火、土の3種類であることから、3になる。
図8に示す入力データが、曜日の列で二値展開されたデータの例を図9に示す。図9は、曜日の列で二値展開された入力データの一例を示す説明図である。図9に示す入力データは、時刻と、気温と、指定された曜日であるか否かを示すバイナリ値と、消費電力量とで構成される。
例えば、図8に示す最初の行の入力データにおいて、曜日の値は「月」である。よって、図9に示す最初の行の入力データにおいて、判定内容が「月曜日か?」に対するバイナリ値はTrueになる。同様に、判定内容が「火曜日か?」および「土曜日か?」に対するバイナリ値はFalseになる。
資源使用量予測モデル生成部201は、受信するプログラムの処理フローの全ての処理の単位に対して、属性情報を生成する(ステップS212)。全ての属性情報を生成した場合(ステップS214における判定条件が成立)、資源使用量予測モデル生成部201は、生成された属性情報に、処理に要したディスク量の情報を結合することによって、学習データを生成する。
図10は、資源使用量予測モデル生成部201が生成する学習データの一例を示す説明図である。図10に示す学習データは、入力データサイズと、二値展開対象列の数と、二値展開対象列の値の種類と、一列当たりのデータサイズと、ディスク使用量とで構成される。資源使用量予測モデル生成部201は、例えば、図10に示す学習データを用いて、ディスク使用量の予測モデルを生成する(ステップS215)。
本具体例において、資源使用量予測モデル生成部201は、二値展開対象列の数をx1、二値展開対象列の値の種類をx2、一列当たりのデータサイズをa、入力データサイズをb、ディスク使用量をyとした場合、y=a×x2−a×x1+bという予測モデルを出力する。出力された予測モデルは、入力データサイズbに、二値展開された際に増加するデータサイズ(a×x2−a×x1)が加えられたデータサイズが、ディスク使用量に相当することを意味する。
資源使用量予測モデル生成部201は、生成した予測モデルを資源使用量予測部202に出力する。出力した後、資源使用量予測モデル生成部201は、学習処理を終了する。
次に、本具体例における分散処理システム100による具体的な予測処理を、図11を参照して説明する。図11は、分散処理システム100による予測処理の他の動作を示すフローチャートである。
本具体例における資源使用量予測部202は、資源使用量予測モデル生成部201が生成した予測モデルを用いて、ディスク使用量を予測する。ディスク使用量を予測する際、資源使用量予測部202は、ユーザが実行を指示したプログラムの処理フローの構造的特徴を示す情報と入力データのメタ情報を示す情報を入力とする(ステップS221)。
図12は、資源使用量予測部202が受信する入力データの一例を示す説明図である。資源使用量予測部202は、予測モデルに対して入力データサイズ、二値展開対象列の数、二値展開対象列の値の種類、一列当たりのデータサイズを与え、ディスク使用量の予測値を計算する。
ディスク使用量の予測モデルがy=a×x2−a×x1+bである場合を例に、ディスク使用量の予測値の計算例を説明する。ここで、予測モデルにおけるx1は二値展開対象列の数、x2は二値展開対象列の値の種類、aは一列当たりのデータサイズ、bは入力データサイズ、yはディスク使用量である。
図12に示す最初の行の入力データに対応する処理の場合、ディスク使用量の予測値y1は、y1=8×73−8×4+100=652(KB)になる。また、図12に示す二番目の行の入力データに対応する処理の場合、ディスク使用量の予測値y2は、y2=1×25−1×2+25=48(KB)になる。
次いで、資源使用量予測部202は、予測したディスク使用量をマスタサーバ300に送信する。マスタサーバ300は、送信された予測値に基づいて、処理を割り当てることができるワーカマシンを選択したり、処理に使用されるディスク量の制限を指示したりする。予測値を送信した後、資源使用量予測部202は、予測処理を終了する。
上述のように、本発明の第1の実施形態によると、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測することができる。この理由は、資源使用量予測部202が、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を予測するからである。当該予測には、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルが用いられる。
上述のように、本発明の第1の実施形態によると、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測することができる。この理由は、資源使用量予測部202が、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を予測するからである。当該予測には、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルが用いられる。
<第2の実施形態>
本発明の第2の実施形態に係る資源予測装置20について、図13を参照して説明する。本実施形態における資源予測装置20は、資源使用量予測部22(例えば、資源使用量予測部202)を備える。資源使用量予測部22は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルを用いて予測する。
本発明の第2の実施形態に係る資源予測装置20について、図13を参照して説明する。本実施形態における資源予測装置20は、資源使用量予測部22(例えば、資源使用量予測部202)を備える。資源使用量予測部22は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルを用いて予測する。
そのような構成により、資源予測装置は、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる。
また、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量の予測モデルを生成する資源使用量予測モデル生成部(例えば、資源使用量予測モデル生成部201)を備えてもよい。
そのような構成により、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に観測された資源の使用量との関係を示す資源使用量の予測モデルを作成できる。
また、タスク処理情報には、タスク処理情報に対応するタスクの処理における入力データの構成に関する情報であるメタ情報と、タスクの処理に使用されるプログラムの構成情報とが含まれていてもよい。
そのような構成により、資源予測装置20は、タスクの処理における入力データの構成に関する情報であるメタ情報と、タスクの処理に使用されるプログラムの構成情報とに基づいて、資源の使用量を予測できる。
また、資源使用量予測モデル生成部は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際のタスクの処理時間との関係を資源使用量の予測モデルに反映し、資源使用量予測部22は、入力としたタスク処理情報に対応するタスクの処理時間を、資源使用量の予測モデルを用いて予測してもよい。
そのような構成により、資源予測装置は、分散処理における処理単位であるタスクの処理時間を予測できる。
本実施形態における資源予測装置20は、図14に示すように分散処理システム10に含まれていてもよい。分散処理システム10は、資源予測装置20を含み、分散処理を行う分散処理システムである。資源予測装置20は、資源使用量予測部22(例えば、資源使用量予測部202)を含む。資源使用量予測部22は、分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、タスクが処理される際に使用される資源量を、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量の予測モデルを用いて予測する。
そのような構成により、分散処理システムは、分散処理における処理単位であるタスクの処理に要する資源量を、余剰の資源を使用せずに予測できる。
また、資源予測装置20は、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量の予測モデルを生成する資源使用量予測モデル生成部(例えば、資源使用量予測モデル生成部201)を備えてもよい。
そのような構成により、分散処理システムは、過去のタスク処理情報と、過去のタスク処理情報に対応するタスクが処理された際に観測された資源の使用量との関係を示す資源使用量予測モデルを作成できる。
本発明の各実施形態において、各装置(システム)の各構成要素 は、機能単位のブロックを示している。各装置(システム)の各構成要素の一部又は全部は、例えば図17に示すような情報処理装置500とプログラムとの任意の組み合わせにより実現される。情報処理装置500は、一例として、以下のような構成を含む。
・CPU(Central Processing Unit)501
・ROM(Read Only Memory)502
・RAM(Random Access Memory)503
・RAM503にロードされるプログラム504
・プログラム504を格納する記憶装置505
・記録媒体506の読み書きを行うドライブ装置507
・通信ネットワーク509と接続する通信インターフェース508
・データの入出力を行う入出力インターフェース510
・各構成要素を接続するバス511
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム504をCPU501が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
また、各装置の各構成要素の一部又は全部は、その他の汎用または専用の回路 、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップ によって構成されてもよいし、バスを介して接続される複数のチップ によって構成されてもよい。
各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は2014年11月27日に出願された日本出願特願2014−239465を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明の各実施形態において、各装置(システム)の各構成要素 は、機能単位のブロックを示している。各装置(システム)の各構成要素の一部又は全部は、例えば図17に示すような情報処理装置500とプログラムとの任意の組み合わせにより実現される。情報処理装置500は、一例として、以下のような構成を含む。
・CPU(Central Processing Unit)501
・ROM(Read Only Memory)502
・RAM(Random Access Memory)503
・RAM503にロードされるプログラム504
・プログラム504を格納する記憶装置505
・記録媒体506の読み書きを行うドライブ装置507
・通信ネットワーク509と接続する通信インターフェース508
・データの入出力を行う入出力インターフェース510
・各構成要素を接続するバス511
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム504をCPU501が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム504は、例えば、予め記憶装置505やRAM503に格納されており、必要に応じてCPU501が読み出す。なお、プログラム504は、通信ネットワーク509を介してCPU501に供給されてもよいし、予め記録媒体506に格納されており、ドライブ装置507が当該プログラムを読み出してCPU501に供給してもよい。
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置500とプログラムとの任意の組み合わせにより実現されてもよい。
また、各装置の各構成要素の一部又は全部は、その他の汎用または専用の回路 、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップ によって構成されてもよいし、バスを介して接続される複数のチップ によって構成されてもよい。
各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は2014年11月27日に出願された日本出願特願2014−239465を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10、100 分散処理システム
20、200 資源予測装置
201 資源使用量予測モデル生成部
22、202 資源使用量予測部
300 マスタサーバ
401〜402 ワーカマシン
20、200 資源予測装置
201 資源使用量予測モデル生成部
22、202 資源使用量予測部
300 マスタサーバ
401〜402 ワーカマシン
Claims (9)
- 分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する資源使用量予測手段を備える
資源予測装置。 - 過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する資源使用量予測モデル生成手段を更に備える
請求項1に記載の資源予測装置。 - タスク処理情報には、前記タスク処理情報に対応するタスクの処理における入力データの構成に関する情報であるメタ情報と、前記タスクの処理に使用されるプログラムの構成情報とが含まれる
請求項1または請求項2記載の資源予測装置。 - 資源使用量予測モデル生成手段は、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際の前記タスクの処理時間との関係を資源使用量予測モデルに反映し、
資源使用量予測手段は、入力としたタスク処理情報に対応するタスクの処理時間を前記資源使用量予測モデルを用いて予測する
請求項2記載の資源予測装置。 - 分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する
資源予測方法。 - 過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する
請求項5記載の資源予測方法。 - コンピュータに、
分散処理における処理単位であるタスクが処理される際に求められるタスク処理情報を入力とし、前記タスクが処理される際に使用される資源量を、過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量との関係を示す資源使用量予測モデルを用いて予測する予測処理
を実行させるための資源予測プログラムを格納する記録媒体。 - コンピュータに、
過去のタスク処理情報と、前記過去のタスク処理情報に対応するタスクが処理された際に使用された資源量とを入力として、資源使用量予測モデルを生成する生成処理を実行させる
請求項7記載の記録媒体。 - 請求項1乃至4のいずれかに記載の資源予測装置と、
前記資源予測装置の分散処理における処理単位であるタスクを実行する少なくとも一つのワーカマシンと、
前記少なくとも一つのワーカマシンにおける各ワーカマシンに前記タスクを割り当てるマスタサーバと、
を備える分散処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014239465 | 2014-11-27 | ||
JP2014239465 | 2014-11-27 | ||
PCT/JP2015/005695 WO2016084327A1 (ja) | 2014-11-27 | 2015-11-16 | 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2016084327A1 true JPWO2016084327A1 (ja) | 2017-09-14 |
Family
ID=56073922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016561229A Pending JPWO2016084327A1 (ja) | 2014-11-27 | 2015-11-16 | 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2016084327A1 (ja) |
WO (1) | WO2016084327A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993428B (zh) * | 2019-03-28 | 2022-05-31 | 第四范式(北京)技术有限公司 | 资源分配方法与装置 |
KR102405933B1 (ko) * | 2020-02-27 | 2022-06-08 | 숭실대학교 산학협력단 | 학습에 의한 머신 러닝 실행 관리 플랫폼 시스템 및 방법 |
JP2021182314A (ja) * | 2020-05-20 | 2021-11-25 | 富士通株式会社 | 判定方法、および判定プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198643A (ja) * | 1997-01-09 | 1998-07-31 | Hitachi Ltd | 分散計算機システム |
-
2015
- 2015-11-16 WO PCT/JP2015/005695 patent/WO2016084327A1/ja active Application Filing
- 2015-11-16 JP JP2016561229A patent/JPWO2016084327A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2016084327A1 (ja) | 2016-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shahidinejad et al. | An elastic controller using Colored Petri Nets in cloud computing environment | |
TWI620075B (zh) | 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法 | |
US11146497B2 (en) | Resource prediction for cloud computing | |
US9330199B2 (en) | Striping of directed graphs and nodes with improved functionality | |
Zhang et al. | An effective data locality aware task scheduling method for MapReduce framework in heterogeneous environments | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
Ramanathan et al. | Towards optimal resource provisioning for Hadoop-MapReduce jobs using scale-out strategy and its performance analysis in private cloud environment | |
US11568242B2 (en) | Optimization framework for real-time rendering of media using machine learning techniques | |
Freire et al. | Survey on the run‐time systems of enterprise application integration platforms focusing on performance | |
Kim et al. | Towards hpc i/o performance prediction through large-scale log analysis | |
US20100235843A1 (en) | Improvements relating to distributed computing | |
Madireddy et al. | Machine learning based parallel I/O predictive modeling: A case study on Lustre file systems | |
JP2018005896A (ja) | シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム | |
Han et al. | Refining microservices placement employing workload profiling over multiple kubernetes clusters | |
Li et al. | MapReduce delay scheduling with deadline constraint | |
JP2016048536A (ja) | クラスタコンピューティングシステム用のマスタデバイス、スレーブデバイスおよびそのコンピューティング方法 | |
JP2016024612A (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
Batista et al. | Robust scheduler for grid networks under uncertainties of both application demands and resource availability | |
WO2016084327A1 (ja) | 資源予測装置、資源予測方法、資源予測プログラムおよび分散処理システム | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
Almezeini et al. | An Enhanced Workflow Scheduling Algorithm in Cloud Computing. | |
Lasluisa et al. | In-situ feature-based objects tracking for data-intensive scientific and enterprise analytics workflows | |
Runsewe et al. | Cloud resource scaling for time-bounded and unbounded big data streaming applications | |
Pop et al. | Performance analysis of grid DAG scheduling algorithms using MONARC simulation tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170518 |