JP2014215764A - Set value generation device, distribution processor, set value generation method and set value generation program - Google Patents
Set value generation device, distribution processor, set value generation method and set value generation program Download PDFInfo
- Publication number
- JP2014215764A JP2014215764A JP2013091645A JP2013091645A JP2014215764A JP 2014215764 A JP2014215764 A JP 2014215764A JP 2013091645 A JP2013091645 A JP 2013091645A JP 2013091645 A JP2013091645 A JP 2013091645A JP 2014215764 A JP2014215764 A JP 2014215764A
- Authority
- JP
- Japan
- Prior art keywords
- job
- setting value
- distributed processing
- value generation
- unit
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、設定値生成装置、分散処理装置、設定値生成方法、および、設定値生成プログラムに関する。 The present invention relates to a setting value generation device, a distributed processing device, a setting value generation method, and a setting value generation program.
大量・多様なデータを短時間に分析するために、スケールアウト型の特徴を持つ分散処理システムが注目されている。この技術では、複数の計算機(ノード)を協調させ、個々の計算機にデータ処理を分担することで、全体として大規模なデータ処理を可能にする。どの計算機に処理を任せるか等の管理は分散処理基盤(MapReduce等)が担うため、ユーザは分散処理基盤に対し、実現したい処理内容を命令として記述すればよい。ここで、命令の記述が複雑であるため、ユーザが分散処理基盤に対し要求する処理(要求処理)の内容を簡易に指示するためのインタフェースツール(Hive、Pig等)が登場した。 In order to analyze a large amount of various data in a short time, a distributed processing system having a scale-out type feature is attracting attention. In this technique, a plurality of computers (nodes) are coordinated, and data processing is shared among individual computers, thereby enabling large-scale data processing as a whole. Since a distributed processing infrastructure (such as MapReduce) is responsible for managing to which computer the processing is entrusted, the user only has to describe the processing contents to be realized as instructions to the distributed processing infrastructure. Here, since the description of the instruction is complicated, interface tools (Hive, Pig, etc.) for easily instructing the contents of the process requested by the user (request process) have appeared.
このインタフェースツールは、ユーザにとって分かりやすい、抽象度の高い形式で記載された要求処理の入力を受け付けると、この要求処理を、分散処理基盤上で処理できる実行単位の命令形式に変換する。 When this interface tool receives an input of a request process described in a format with a high level of abstraction that is easy for the user to understand, the interface tool converts the request process into an instruction format of an execution unit that can be processed on the distributed processing platform.
一般にユーザの指示する上位概念レベルの処理(要求処理)内容は、複数の実行単位(ジョブ)からなる処理に変換され、分散処理基盤上で実行されることになる。しかし、ユーザの指示する設定値を、要求処理を構成するジョブごとに変更することができず、また、その設定値の適正さはジョブ実行時まで不明である。よって、分散処理システムにおける要求処理に対する各ジョブの設定値の最適化が不十分となり、分散処理システムが十分な性能を発揮することができないという問題があった。 In general, the processing (request processing) content at a higher concept level specified by the user is converted into a process composed of a plurality of execution units (jobs) and executed on the distributed processing platform. However, the setting value designated by the user cannot be changed for each job constituting the request process, and the appropriateness of the setting value is unknown until the job is executed. Therefore, the optimization of the setting values of each job for the request processing in the distributed processing system becomes insufficient, and there is a problem that the distributed processing system cannot exhibit sufficient performance.
例えば、分散処理システムにおいて要求処理(クエリ等)から生成された複数のジョブのうち、後半のジョブは、前半のジョブの出力データを引き継ぐことがあるが、従来技術では、前半のジョブの出力データ量に応じて、後半のジョブの設定値を変えるといった、各ジョブに対して適切な値を設定することができなかった。 For example, among the plurality of jobs generated from request processing (query, etc.) in the distributed processing system, the latter half of the job may take over the output data of the first half of the job. An appropriate value could not be set for each job, such as changing the setting value of the latter half job according to the amount.
そこで、本発明は、前記した問題を解決し、分散処理システムへの要求処理に対し、各ジョブに適切な設定値を与えることにより、分散処理システムの性能を十分発揮させることを目的とする。 In view of the above, an object of the present invention is to solve the above-described problems and to sufficiently exhibit the performance of the distributed processing system by giving an appropriate setting value to each job for the request processing to the distributed processing system.
前記した問題を解決するため、本発明は、1以上のノードを用いて1以上のジョブを実行する分散処理基盤部と、前記分散処理基盤部への要求処理の入力を受け付けたとき、前記要求処理の内容を、前記分散処理基盤部で処理可能なジョブの命令に変換し、前記変換された命令に基づき、前記分散処理基盤部を用いて、前記1以上のジョブを実行するインタフェース提供部とを備える分散処理装置において実行される前記ジョブそれぞれの設定値を生成する設定値生成装置であって、前記ジョブの実行開始時に、前記分散処理基盤部から当該ジョブの実行時情報を取得する実行時情報取得部と、当該ジョブの実行時情報に基づき、当該ジョブの設定値を求めるための設定値生成モデルを記憶する記憶部と、当該ジョブの実行時情報を用いて、前記設定値生成モデルにより、当該ジョブの実行に用いる設定値を生成し、前記分散処理基盤部へ出力する設定値生成処理部とを備えることを特徴とする設定値生成装置とした。 In order to solve the above-described problem, the present invention provides a distributed processing base unit that executes one or more jobs using one or more nodes, and receives the request processing input to the distributed processing base unit. An interface providing unit that converts processing contents into a job command that can be processed by the distributed processing platform, and executes the one or more jobs using the distributed processing platform based on the converted command; A setting value generation device that generates setting values for each of the jobs executed in the distributed processing device, and at the time of executing execution of the job, the execution time information of the job is acquired from the distributed processing infrastructure unit Based on the information acquisition unit, the execution time information of the job, a storage unit that stores a setting value generation model for obtaining the setting value of the job, and the execution time information of the job, The serial set value generation model, generates a setting value used for execution of the job, and the set value generating device, characterized in that it comprises a set value generation processing unit for outputting to the distributed processing foundation unit.
本発明によれば、分散処理システムへの要求処理に対し、各ジョブに適切な設定値を与えるため、分散処理システムの性能を十分発揮させることができる。 According to the present invention, since an appropriate setting value is given to each job for the request processing to the distributed processing system, the performance of the distributed processing system can be sufficiently exhibited.
[構成]
以下、図面を参照しながら、本発明の分散処理装置(分散処理システム)の実施の形態を説明する。図1に示すように分散処理装置10は、外部装置等から、本システムで要求する要求処理(クエリ等)の入力を受け付けると、この要求処理の内容を解釈してデータ処理を実行する。データ処理は、分散処理装置10の備える1以上のタスク実行部132により実行される。タスク実行部(ノード)132は、この分散処理装置10の備える計算機(図示省略)により実現される。
[Constitution]
Hereinafter, embodiments of a distributed processing apparatus (distributed processing system) according to the present invention will be described with reference to the drawings. As shown in FIG. 1, when receiving an input of a request process (query or the like) requested by the present system from an external apparatus or the like, the
分散処理装置10は、インタフェース提供部110と、設定値生成部120と、分散処理基盤部130とを備える。
The
インタフェース提供部110は、分散処理装置10への要求処理(クエリ等)の入力を受け付けたとき、この要求処理の内容を解釈し、分散処理基盤部130が処理可能な1以上の実行単位(ジョブ)の命令に変換する。そして、インタフェース提供部110は、この変換された命令に基づき、分散処理基盤部130を用いて各ジョブを実行する。つまり、インタフェース提供部110は、分散処理基盤部130に対し、各ジョブの実行を指示し、分散処理基盤部130から、当該ジョブの実行結果を受け取るこのインタフェース提供部110は、非特許文献2に記載のHiveや、非特許文献3に記載のPigにより実現される。
When the
インタフェース提供部110は、変換部111と、実行部112とを備える。変換部111は、要求処理の入力を受け付けたとき、この要求処理の内容を、分散処理基盤部130が処理可能な1以上のジョブの命令に変換する。実行部112は、変換部111により変換された命令に基づき、分散処理基盤部130を用いてジョブを実行する。ここで実行部112は、変換された命令に基づき、ジョブ同士の依存関係(例えば、ジョブ1の出力結果がジョブ2の入力になる等)があればそれに従い、分散処理基盤部130を用いてジョブを実行し、その実行結果を外部装置等へ出力する。なお、実行部112は、分散処理基盤部130によるジョブの実行にあたり、設定値生成部120から出力された当該ジョブの設定値を用いる。
The
設定値生成部120は、ジョブの実行時情報(例えば、当該ジョブへの入力データ量D)を用いて当該ジョブで用いる設定値を生成し、生成した設定値を分散処理基盤部130へ出力する。ジョブで用いる設定値は、例えば、リソースを最大限利用してジョブの実行時間を最小化することを要件とした、当該ジョブを構成するタスク1つあたりの最大データ量Mである。この設定値生成部120は、実行時情報取得部121と、設定値生成モデル122と、設定値生成処理部123とを備える。モデル更新部124は、装備する場合と装備しない場合とがあり、装備する場合について後記する。
The setting
実行時情報取得部121は、ジョブの実行時情報を分散処理基盤部130から取得する。この実行時情報は、各ジョブの実行開始時に得られる情報であり、当該ジョブよりも前に実行されたジョブの実行結果に依存する。この実行時情報は、例えば、当該ジョブより前のジョブが終了した後、当該ジョブへ入力される入力データ量Dや、タスク実行部132の数N等である。
The runtime
設定値生成モデル122は、当該ジョブの実行時情報に基づき、当該ジョブの最適な設定値を得るためのモデルであり、例えば、図2に示すような関数fで与えられる。この関数fにおいて(x1,…,xn)は、モデルに与える引数であり、当該ジョブの実行時情報(例えば、当該ジョブへの入力データ量D等)の値である。また、関数fにおける(w1,…,wl)はモデルに登場する定数値であり、例えば、当該ジョブにおけるタスク実行部132それぞれのタスク処理数wである。そして、この関数fから得られる(c1,…,cm)は、モデルの出力であり、当該ジョブの最適な設定値である。この設定値生成モデル122は、分散処理装置10の備える記憶部(図示省略)の所定領域に記憶され、設定値生成処理部123により参照される。なお、設定値生成モデル122における関数fや、この関数fで用いるパラメータの種類、定数等は、実験等により予め求めておくものとする。
The setting
ここで、ジョブの最適な設定値は、例えば、当該ジョブの実行時間をできるだけ短くするような、タスク1つあたりの最大データ量(つまり、入力データ量Dの分割サイズ)Mの値である。この入力データ量Dの分割サイズMの最適値は、例えば、以下の式(1)に示す設定値生成モデル122により得られる。
Here, the optimum setting value of the job is, for example, the value of the maximum data amount per task (that is, the division size of the input data amount D) M that shortens the execution time of the job as much as possible. The optimum value of the division size M of the input data amount D is obtained by, for example, the set
なお、式(1)におけるwは予め与えられる定数である。 In Equation (1), w is a constant given in advance.
設定値生成処理部123が、式(1)に示す設定値生成モデル122を用いることで、当該ジョブの実行時間をできるだけ短くするような、入力データ量Dの分割サイズMを求めることができる。この理由を、図3を参照して説明する。
The set value
例えば、ジョブを実行するタスク実行部132の数を2個(タスク実行部132aおよびタスク実行部132b)、w=3とする。ここで、(a)に示すように、入力データ量Dを5個に分割した場合、つまり、タスク1つあたりの最大データ量Mを、D/5とした場合、タスク実行部132bに待機時間が発生してしまう。つまり、タスク実行部132群全体としてのジョブの実行時間は、タスク実行部132aが5個目のタスクが終了するまでの時間となってしまう。
For example, the number of task execution units 132 that execute jobs is two (
一方、(b)に示すように、入力データ量Dを6個(つまり、タスク処理数w(3)×タスク実行部132の数N(2))とすれば、タスク実行部132bの待機時間は発生せず、タスク実行部132a,132bはそれぞれほぼ同時にジョブを終了させることができる。これにより、タスク実行部132群全体としてのジョブの実行時間を低減させることができる。
On the other hand, as shown in (b), if the input data amount D is six (that is, the number of task processes w (3) × the number N of task execution units 132 (2)), the waiting time of the
このように、設定値生成処理部123が、設定値生成モデル122として前記した式(1)を用いることで、タスク実行部132群全体のジョブの実行時間を低減させるような、入力データ量Dの分割サイズMを得ることができる。
As described above, the set value
設定値生成処理部123は、当該ジョブの実行時情報と、設定値生成モデル122とを参照して、当該ジョブで用いる設定値を生成する。例えば、設定値生成処理部123は、ジョブ2の実行時情報として、ジョブ2への入力データ量Dを取得したとき、設定値生成モデル122である式(1)を用いてジョブ2における入力データ量Dの分割サイズMを決定する。そして、設定値生成処理部123は、決定したジョブ2における入力データ量Dの分割サイズMの設定値を、分散処理基盤部130へ出力する。この設定値を受信した分散処理基盤部130は、当該設定値を用いてジョブ2を実行する。
The setting value
分散処理基盤部130は、インタフェース提供部110から出力されたジョブの実行指示および設定値生成部120から出力された設定値に基づき、この分散処理基盤部130管理下にある各タスク実行部132にジョブの実行処理を分担させる。そして、分散処理基盤部130は、ジョブを分担させた各タスク実行部132の実行結果をまとめたデータをインタフェース提供部110へ返す。この分散処理基盤部130は、例えば、非特許文献1に記載のMapReduce等により実現される。この分散処理基盤部130は、ジョブ実行管理部131と1以上のタスク実行部132とを備える。
Based on the job execution instruction output from the
ジョブ実行管理部131は、ジョブの実行指示および当該ジョブの設定値に基づき、タスク実行部132に当該ジョブをどのようにタスクとして実行させるのかを管理する。ジョブ実行管理部131は、例えば、できるだけタスク実行部132がローカルディスクに保持するデータを処理するようにタスクを配置する。そして、ジョブ実行管理部131は、ジョブを分担させた各タスク実行部132の実行結果をまとめたデータをインタフェース提供部110へ返す。
The job
タスク実行部132は、ジョブ実行管理部131からタスクや設定値を受け取ると、該当する入力データをローカルディスクやネットワーク転送により読み込み、当該設定値に基づくタスクの実行処理を行う。
When the task execution unit 132 receives a task or setting value from the job
[処理手順]
次に、図4を用いて、分散処理装置10の処理手順を説明する。まず、インタフェース提供部110は、分散処理装置10への要求処理の入力を受け付けると(S1)、変換部111により、この要求処理の内容を解釈し、この要求処理の内容を、分散処理基盤部130が処理可能なジョブの命令へ変換する(S2)。例えば、前記した図1に示すようにジョブ1,2,3の命令に変換する。
[Processing procedure]
Next, the processing procedure of the distributed
そして、実行時情報取得部121は、分散処理基盤部130からジョブの実行時情報を取得する(S3)。例えば、実行時情報取得部121は、分散処理基盤部130からジョブ1への入力データ量D、および、ジョブ1を実行するタスク実行部132の数Nの値を取得する。そして、設定値生成処理部123は、この実行時情報と、設定値生成モデル122とを参照して、当該ジョブ(例えば、ジョブ1)の設定値を生成する(S4)。そして、設定値生成処理部123は、生成した設定値を分散処理基盤部130へ出力する。
The runtime
実行部112は、変換部111により変換された命令に基づき、分散処理基盤部130によりジョブを実行する(S5)。例えば、実行部112は分散処理基盤部130により、ジョブ1の設定値に基づきジョブ1を実行する。
The
S5の後、未実行のジョブがあれば(S6のYes)、S3へ戻る。例えば、変換部111により変換された命令において、ジョブ1に引き続き、ジョブ2の実行が指示されていれば、S3へ戻る。そして、実行時情報取得部121は、ジョブ1の実行後、ジョブ2の実行開始時に、ジョブ2への入力データ量D、および、ジョブ2を実行するタスク実行部132の数Nを分散処理基盤部130から取得する(S3)。そして設定値生成処理部123は、ジョブ2への入力データ量Dと、ジョブ2を実行するタスク実行部132の数Nと、設定値生成モデル122とを参照して、ジョブ2の設定値を生成する(S4)。その後、実行部112は、生成されたジョブ2の設定値を用いて、分散処理基盤部130によりジョブ2を実行する(S5)。
If there is an unexecuted job after S5 (Yes in S6), the process returns to S3. For example, in the instruction converted by the
S5の後、S6において未実行のジョブがなければ(S6のNo)、実行部112はジョブの実行結果を出力し(S7)、処理を終了する。
After S5, if there is no unexecuted job in S6 (No in S6), the
このようにすることで、分散処理装置10は、要求処理に対し、ジョブごとに最適な設定値を与えることができるため、分散処理装置10の性能を十分発揮させることができる。また、分散処理装置10のユーザは、ジョブごとに設定値の調整を行う必要がなくなる。
By doing so, the distributed
[実験結果]
なお、分散処理装置10におけるジョブへの入力データ量Dの分割サイズMと当該ジョブの実行時間の実測値との関係を、図5に示す。ここではジョブの実行に用いたタスク実行部132の数N=10とし、入力データ量D=18(GB)とした。図5に示すように、入力データ量Dの分割サイズMが、D/Nとなっている場合、および、D/2Nとなっている場合において、ジョブの実行時間が最も短くなっていることが分かる。このことからも、前記した式(1)が、入力データ量Dの分割サイズMの最適値を計算するのに適した式であることが分かる。
[Experimental result]
FIG. 5 shows the relationship between the division size M of the input data amount D to the job in the distributed
なお、分散処理装置10への実際の入力データは、複数の計算機(タスク実行部132)に分散して保持されている。これは、1つのタスクが処理するデータ量を決める時に影響が出る。1つの計算機が保持するデータ量よりも多いデータを1つのタスクで処理するように指示した場合、他の計算機からデータを受け取る必要があり、転送というコストが上乗せされる。そのコストを避けるために、計算機をまたいで1つのデータとみなすことは少ない。実際に従来技術の実装では、ユーザは分散処理システムに対し、1つのタスクが処理するデータ量は指定できず、最大量(これを分割サイズMと呼ぶ)のみ指定できる。ジョブ実行管理部131は、分割サイズを超えているデータについては、データを分割する(つまりタスクも増える)。ここで、分割サイズMに満たない余りのデータは、転送コストを避けるために、余りだけで1つの分割データを構成し、タスクとして実行される。つまり、分割サイズMと実際のタスクが処理するデータ量は必ずしも一致しない。例えば、分割サイズMを「6」とし、ある計算機は「10」のデータ量を保持している場合、「6」の分割データを処理するタスクと「4」の分割データを処理するタスクができる。このように、厳密な等分割り当てができないため、実験で実行時間が最小になる設定値を探す必要がある。実験の結果、入力データ量Dを前記した式(1)により求めた分割サイズMで分割した場合の設定値を採用すると本実験の環境では上手くいくことが分かるため、その値を算出する式(1)をモデルとして採用している。
Actual input data to the distributed
[その他の実施の形態]
(設定値生成モデルの例 その1)
なお、設定値生成処理部123は、ジョブの設定値として、当該ジョブへの割り当てメモリ量を生成してもよい。例えば、設定値生成処理部123は、当該ジョブにおける中間出力を加工(例えば、ソート)する際に用いる最適なメモリ量や、中間出力を転送する際に用いる最適なメモリ量等を生成してもよい。ここでいう最適なメモリ量とは、例えば、当該ジョブの実行時間をできるだけ短くするようなメモリ量である。
[Other embodiments]
(Example of set value generation model 1)
Note that the set value
この場合、設定値生成モデル122として、当該ジョブの中間出力を加工する際に用いる最適なメモリ量や、中間出力を転送する際に用いる最適なメモリ量を求めるための関数fを用いる。この関数fのパラメータは、例えば、当該ジョブへの入力データ量Dや、各タスク実行部132(つまり、タスク実行部132によりデータ処理を行う計算機)間を接続するネットワークにおける単位時間あたりのネットワーク転送速度vtや、各タスク実行部132で用いることができる最大メモリ量の値である。なお、当該ジョブへの入力データ量Dは、実行時情報取得部121により取得された値を用いる。また、ネットワーク転送速度vtや各タスク実行部132で用いることができる最大メモリ量の値は、分散処理基盤部130等から事前に取得されるものとする。
In this case, as the set
このように分散処理装置10は、ジョブの設定値として、当該ジョブにおける中間出力を加工する際に用いる最適なメモリ量や、中間出力を転送する際に用いる最適なメモリ量等を与える。これにより、当該ジョブにおける中間出力を加工するためのメモリ量が大きすぎることにより、加工後の中間出力を転送するためのメモリ量が不足し、当該ジョブの実行時間が長くなってしまうことを避けることができる。また、当該ジョブにおける中間出力を加工するためのメモリ量が小さすぎることにより、加工自体に時間がかかり当該ジョブの実行時間が長くなってしまうことを避けることができる。
As described above, the distributed
(設定値生成モデルの例 その2)
さらに、設定値生成処理部123は、当該ジョブの設定値として、当該ジョブの中間出力データを転送する際、この中間出力データを圧縮してから転送するか否かを示した値を生成してもよい。
(Example of setting value generation model 2)
Further, when transferring the intermediate output data of the job, the set value
この場合、設定値生成処理部123が用いる設定値生成モデル122は、例えば、当該ジョブの中間出力データを圧縮する場合の転送時間(解凍時間も含む)と、圧縮しない場合の転送時間とを計算し、より転送時間の短い方(中間出力データを圧縮するかしないか)を採用するモデルである。つまり、設定値生成モデル122は、当該ジョブの中間出力データを圧縮する場合の転送時間の方が短かったとき、中間出力データを圧縮すると判断するが、圧縮しない場合の転送時間の方が短かったとき、当該ジョブにおいて中間出力データを圧縮しないと判断するモデルである。
In this case, the setting
この場合、設定値生成処理部123は、実行時情報として、当該ジョブへの入力データ量Dおよび当該ジョブにおいて用いられるユーザ関数fを用いる。そして、設定値生成処理部123が用いる設定値生成モデル122は、入力データ量Dに対する当該ユーザ関数fによる処理の実行により得られる中間出力データの転送にあたり、圧縮しない中間出力データのデータ転送時間である非圧縮時転送時間と、中間出力データを圧縮した場合の中間出力データの圧縮および解凍処理に要する時間と圧縮後の中間出力データの転送時間の合計値である圧縮時転送時間との長短を比較し、圧縮転送時間に対し、非圧縮転送時間が短い場合は圧縮しない、非圧縮転送時間が長い場合は圧縮する、と判断するモデルである。また、設定値生成処理部123により生成される当該ジョブの設定値は、この設定値生成モデル122により判断された、当該ジョブにおいて中間出力データを圧縮するか否かを示す値である。
In this case, the set value
圧縮しない場合の転送時間は、例えば、以下の式(2)により推定される。 The transfer time when not compressed is estimated by, for example, the following equation (2).
式(2)におけるvtは、ネットワーク転送速度であり、g(D,f)は、入力データ量Dをユーザ関数fで処理した際の出力データ量(つまり、中間出力データ量)である。 In Expression (2), v t is a network transfer rate, and g (D, f) is an output data amount (that is, an intermediate output data amount) when the input data amount D is processed by the user function f.
圧縮する場合の転送時間は、例えば、以下の式(3)により推定される。 The transfer time in the case of compression is estimated by the following formula (3), for example.
なお、前記したとおり、式(2)および式(3)における当該ジョブへの入力データ量Dとユーザ関数fは、実行時情報取得部121により取得される。また、ネットワーク転送速度vt、データ圧縮速度vc、および、データ解凍速度vdは、分散処理基盤部130等から事前に取得される値とする。
As described above, the input data amount D and the user function f to the job in Expression (2) and Expression (3) are acquired by the runtime
このように分散処理装置10は、ジョブの設定値として、当該ジョブにおいて中間出力を圧縮するか否かを設定するため、当該ジョブの実行時間をできるだけ短くすることができる。
In this way, the distributed
(モデル更新部)
なお、設定値生成部120は、生成した設定値によるジョブの統計情報を取得し、その統計情報をもとに設定値生成モデル122を修正(更新)するようにしてもよい。このような設定値生成部120は、図1の破線で示すモデル更新部124をさらに備える。また、実行時情報取得部121は、当該ジョブの実行時情報として、当該ジョブの統計情報を取得する。ここで取得する統計情報とは、当該ジョブの実行時間等である。
(Model update part)
Note that the set
モデル更新部124は、実行時情報取得部121等により、各ジョブの統計情報を取得し、また、設定値生成処理部123等から、ジョブに設定された設定値を取得する。そして、モデル更新部124は、取得したジョブの統計情報と、設定値とを用いて、設定値生成モデル122の関数fを修正する。その後、設定値生成処理部123は、修正された設定値生成モデル122の関数fを用いてジョブの設定値を生成し、分散処理基盤部130へ出力する。そして、モデル更新部124は、修正された設定値生成モデル122に基づく設定値と、その設定値によるジョブの統計情報とを用いて、設定値生成モデル122の関数fをさらに修正する。モデル更新部124が、このような処理を繰り返すことで、設定値生成モデル122を適切な設定値を計算するようなモデルにすることができる。
The
(設定値生成装置)
なお、前記した実施の形態において、設定値生成部120は分散処理装置10内の構成としたが、これに限定されない。例えば、設定値生成部120を分散処理装置10とは別個の装置として実現し、設定値生成部120は、ネットワーク経由で、分散処理装置10から各ジョブの実行時情報を取得し、分散処理装置10へ各ジョブの設定値を出力するようにしてもよい。
(Set value generator)
In the above-described embodiment, the setting
(ジョブの設定値の例)
前記した実施の形態におけるジョブの設定値は、リソースを最大限利用してジョブの実行時間を最小化することを要件とした、当該ジョブを構成するタスク1つあたりの最大データ量M以外にも以下の設定値であってもよい。例えば、分散処理装置10において複数の要求処理(クエリ等)が入力されたとき、タスク実行部132において、同時に複数のジョブを実行する場合もある。このような場合、当該ジョブの設定値として、各要求処理はユーザが定めた時間内で処理の実行を完了し、かつ、要求処理に基づく処理の実行開始からすべての要求処理の実行完了までの時間をできるだけ短くするためには、タスク実行部132それぞれが用いるCPUやメモリ量等の消費リソースを最小化することが好ましい。よって、このような場合のジョブの設定値として、当該ジョブの実行に係るタスクを実行するタスク実行部132の数や当該タスクに割り当てるメモリ量、当該タスク実行部132で実行するタスク数等が考えられる。さらに、各タスク実行部132の総消費電力を最小化することを要件とする場合におけるジョブの設定値として、例えば、計算リソースであるタスク実行部132の数等が考えられる。
(Example of job settings)
The setting value of the job in the above-described embodiment is not limited to the maximum data amount M per task constituting the job, which requires that the execution time of the job is minimized by making maximum use of resources. The following setting values may be used. For example, when a plurality of request processes (queries or the like) are input in the distributed
(プログラム)
前記した分散処理装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラム(分散処理プログラム)で実現することもできる。この場合、コンピュータがプログラムを実行することにより、前記した実施の形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、分散処理装置10と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
(program)
The processing executed by the distributed
図6は、プログラムを実行するコンピュータ1000を示す図である。図6に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
FIG. 6 is a diagram illustrating a
メモリ1010は、図6に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図6に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図6に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。
The
ここで、図6に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のプログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
Here, as illustrated in FIG. 6, the hard disk drive 1031 stores, for example, an
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、前記したインタフェース提供部110、分散処理基盤部130、実行時情報取得部121、設定値生成処理部123、および、モデル更新部124の機能を実現する。
The various data described in the above embodiment is stored as program data, for example, in the
なお、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
10 分散処理装置
40 ノード
110 インタフェース提供部
111 変換部
112 実行部
120 設定値生成部
121 実行時情報取得部
122 設定値生成モデル
123 設定値生成処理部
124 モデル更新部
130 分散処理基盤部
132 タスク実行部
DESCRIPTION OF
Claims (8)
前記ジョブの実行開始時に、前記分散処理基盤部から当該ジョブの実行時情報を取得する実行時情報取得部と、
当該ジョブの実行時情報に基づき、当該ジョブの設定値を求めるための設定値生成モデルを記憶する記憶部と、
当該ジョブの実行時情報を用いて、前記設定値生成モデルにより、当該ジョブの実行に用いる設定値を生成し、前記分散処理基盤部へ出力する設定値生成処理部とを備えることを特徴とする設定値生成装置。 A distributed processing base unit that executes one or more jobs using one or more nodes, and when the request processing input to the distributed processing base unit is received, the content of the request processing is processed by the distributed processing base unit Each of the jobs to be executed in a distributed processing device that includes an interface providing unit that converts the command into a possible job command and executes the one or more jobs using the distributed processing platform unit based on the converted command A setting value generation device for generating a setting value of
An execution time information acquisition unit for acquiring execution time information of the job from the distributed processing infrastructure unit at the start of execution of the job;
A storage unit that stores a setting value generation model for obtaining a setting value of the job based on the execution time information of the job;
A setting value generation processing unit configured to generate a setting value used for execution of the job by the setting value generation model using the execution time information of the job and to output the setting value to the distributed processing base unit; Setting value generator.
前記設定値生成モデルは、当該ジョブを実行する全タスク処理において,前記入力データ量に対し一タスクが処理する最大データ量である分割サイズを設定値として求めるモデルであり、
前記生成される当該ジョブの設定値は、前記設定値生成モデルにより求められた前記分割サイズであること
を特徴とする請求項1または請求項2に記載の設定値生成装置。 The runtime information is the amount of input data to the job,
The set value generation model is a model for obtaining, as a set value, a division size that is a maximum data amount processed by one task with respect to the input data amount in all task processes for executing the job,
The setting value generation apparatus according to claim 1, wherein the setting value of the job to be generated is the division size obtained by the setting value generation model.
前記設定値生成モデルは、前記入力データ量に対する当該ユーザ関数による処理の実行により得られる中間出力データの転送にあたり、圧縮しない前記中間出力データのデータ転送時間である非圧縮時転送時間と、前記中間出力データを圧縮した場合の前記中間出力データの圧縮および解凍処理に要する時間と圧縮後の前記中間出力データの転送時間の合計値である圧縮時転送時間との長短を比較し、前記圧縮転送時間に対し、前記非圧縮転送時間が短い場合は圧縮しない、前記非圧縮転送時間が長い場合は圧縮する、と判断するモデルであり、
前記生成される当該ジョブの設定値は、前記モデルにより判断された、当該ジョブにおいて中間出力データを圧縮するか否かを示す値であること
を特徴とする請求項1または請求項2に記載の設定値生成装置。 The runtime information is an input data amount to the job and a user function used in the job,
The set value generation model includes a non-compressed transfer time that is a data transfer time of the intermediate output data that is not compressed when transferring intermediate output data obtained by executing processing by the user function for the input data amount, and the intermediate The compression transfer time is compared between the time required for compression and decompression processing of the intermediate output data when the output data is compressed and the transfer time during compression that is the total value of the transfer time of the intermediate output data after compression. On the other hand, when the uncompressed transfer time is short, the model is determined not to compress, and when the uncompressed transfer time is long, the model is determined to compress.
The setting value of the job to be generated is a value determined by the model and indicating whether or not intermediate output data is to be compressed in the job. Setting value generator.
前記生成された設定値により実行されたジョブの統計情報を取得し、
前記設定値生成装置は、さらに、
前記生成された設定値および当該ジョブの統計情報を参照して、前記設定値生成モデルを更新するモデル更新部を備えること
を特徴とする請求項1ないし請求項4のいずれか1項に記載の設定値生成装置。 The runtime information acquisition unit further includes:
Obtain statistical information of the job executed by the generated setting value,
The set value generation device further includes:
5. The model update unit according to claim 1, further comprising a model update unit configured to update the set value generation model with reference to the generated set value and statistical information of the job. Setting value generator.
要求処理の入力を受け付けたとき、前記要求処理の内容を、前記分散処理基盤部で処理可能なジョブの命令に変換し、前記変換された命令に基づき、前記分散処理基盤部を用いて、前記1以上のジョブを実行するインタフェース提供部と、
前記ジョブの実行開始時に、前記分散処理基盤部から当該ジョブの実行時情報を取得する実行時情報取得部と、
当該ジョブの実行時情報に基づき、当該ジョブの設定値を求めるための設定値生成モデルを記憶する記憶部と、
前記取得したジョブの実行時情報と、前記設定値生成モデルとを参照して、当該ジョブの実行に用いる設定値を生成し、前記分散処理基盤部へ出力する設定値生成処理部とを備え、
前記分散処理基盤部は、
前記出力された当該ジョブの設定値を用いて、当該ジョブを実行することを特徴とする分散処理装置。 A distributed processing platform that executes one or more jobs using one or more nodes;
When receiving an input of request processing, the content of the request processing is converted into a job command that can be processed by the distributed processing platform, and based on the converted command, the distributed processing platform is used, An interface providing unit for executing one or more jobs;
An execution time information acquisition unit for acquiring execution time information of the job from the distributed processing infrastructure unit at the start of execution of the job;
A storage unit that stores a setting value generation model for obtaining a setting value of the job based on the execution time information of the job;
With reference to the acquired job execution time information and the setting value generation model, a setting value used for execution of the job is generated, and a setting value generation processing unit that outputs the setting value to the distributed processing infrastructure unit,
The distributed processing platform is
The distributed processing apparatus, wherein the job is executed using the output setting value of the job.
当該ジョブの実行時情報に基づき、当該ジョブの設定値を求めるための設定値生成モデルを記憶するコンピュータが、
前記ジョブの実行開始時に、前記分散処理基盤部から当該ジョブの実行時情報を取得するステップと、
前記取得したジョブの実行時情報と、前記設定値生成モデルとを参照して、当該ジョブの実行に用いる設定値を生成し、前記分散処理基盤部へ出力する設定値生成処理ステップとを実行することを特徴とする設定値生成方法。 A distributed processing base unit that executes one or more jobs using one or more nodes, and when the request processing input to the distributed processing base unit is received, the content of the request processing is processed by the distributed processing base unit Each of the jobs to be executed in a distributed processing device that includes an interface providing unit that converts the command into a possible job command and executes the one or more jobs using the distributed processing platform unit based on the converted command A setting value generation method for generating a setting value of
Based on the execution time information of the job, a computer that stores a setting value generation model for obtaining the setting value of the job,
Obtaining execution time information of the job from the distributed processing platform when starting execution of the job;
Referring to the acquired execution time information of the job and the setting value generation model, a setting value used for execution of the job is generated, and a setting value generation processing step is output to the distributed processing platform A setting value generation method characterized by the above.
当該ジョブの実行時情報に基づき、当該ジョブの設定値を求めるための設定値生成モデルを記憶するコンピュータに、
前記ジョブの実行開始時に、前記分散処理基盤部から当該ジョブの実行時情報を取得するステップと、
前記取得したジョブの実行時情報と、前記設定値生成モデルとを参照して、当該ジョブの実行に用いる設定値を生成し、前記分散処理基盤部へ出力する設定値生成処理ステップとを実行させるための設定値生成プログラム。 A distributed processing base unit that executes one or more jobs using one or more nodes, and when the request processing input to the distributed processing base unit is received, the content of the request processing is processed by the distributed processing base unit Each of the jobs to be executed in a distributed processing device that includes an interface providing unit that converts the command into a possible job command and executes the one or more jobs using the distributed processing platform unit based on the converted command A setting value generation program for generating a setting value of
Based on the execution time information of the job, a computer that stores a setting value generation model for obtaining the setting value of the job,
Obtaining execution time information of the job from the distributed processing platform when starting execution of the job;
Referring to the execution time information of the acquired job and the setting value generation model, a setting value used for execution of the job is generated, and a setting value generation processing step that is output to the distributed processing platform is executed. Setting value generation program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013091645A JP2014215764A (en) | 2013-04-24 | 2013-04-24 | Set value generation device, distribution processor, set value generation method and set value generation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013091645A JP2014215764A (en) | 2013-04-24 | 2013-04-24 | Set value generation device, distribution processor, set value generation method and set value generation program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014215764A true JP2014215764A (en) | 2014-11-17 |
Family
ID=51941481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013091645A Pending JP2014215764A (en) | 2013-04-24 | 2013-04-24 | Set value generation device, distribution processor, set value generation method and set value generation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014215764A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936377B2 (en) | 2017-02-28 | 2021-03-02 | Hitachi, Ltd. | Distributed database system and resource management method for distributed database system |
-
2013
- 2013-04-24 JP JP2013091645A patent/JP2014215764A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936377B2 (en) | 2017-02-28 | 2021-03-02 | Hitachi, Ltd. | Distributed database system and resource management method for distributed database system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114682B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
WO2016112701A1 (en) | Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform | |
CN110569252B (en) | Data processing system and method | |
Ming et al. | An improved algorithm based on max-min for cloud task scheduling | |
TW201731253A (en) | Quantum key distribution method and device obtaining a key sequence matching the requested length in the sub-key pool allocated from the requesting party after receiving a quantum key obtaining request | |
CN111861412B (en) | Completion time optimization-oriented scientific workflow scheduling method and system | |
US10866832B2 (en) | Workflow scheduling system, workflow scheduling method, and electronic apparatus | |
CN110347515B (en) | Resource optimization allocation method suitable for edge computing environment | |
JP2007041720A (en) | Job step execution program and job step execution method | |
US11385931B2 (en) | Method, electronic device, and computer program product for processing computing job | |
WO2020125396A1 (en) | Processing method and device for shared data and server | |
Clemente-Castelló et al. | Performance model of mapreduce iterative applications for hybrid cloud bursting | |
CN113779060A (en) | Data query method and device | |
US20180024865A1 (en) | Parallel processing apparatus and node-to-node communication method | |
CN111124644A (en) | Method, device and system for determining task scheduling resources | |
CN117234697B (en) | Conservative time synchronization parallel event scheduling computing architecture and method | |
JP2014215764A (en) | Set value generation device, distribution processor, set value generation method and set value generation program | |
WO2023221626A1 (en) | Memory allocation method and apparatus | |
CN112241324B (en) | Memory management method and device | |
CN107493205B (en) | Method and device for predicting capacity expansion performance of equipment cluster | |
CN114138484A (en) | Resource allocation method, device and medium | |
KR101558807B1 (en) | Processor scheduling method for the cooperation processing between host processor and cooperation processor and host processor for performing the method | |
JP7046862B2 (en) | Application execution device and application execution method | |
JP6506773B2 (en) | INFORMATION PROCESSING APPARATUS, METHOD, AND PROGRAM | |
KR101694307B1 (en) | Apparatus and method for maximizing disk cache effect for workflow job scheduling |