JP6485343B2 - Control program, control device, and control method - Google Patents

Control program, control device, and control method Download PDF

Info

Publication number
JP6485343B2
JP6485343B2 JP2015249469A JP2015249469A JP6485343B2 JP 6485343 B2 JP6485343 B2 JP 6485343B2 JP 2015249469 A JP2015249469 A JP 2015249469A JP 2015249469 A JP2015249469 A JP 2015249469A JP 6485343 B2 JP6485343 B2 JP 6485343B2
Authority
JP
Japan
Prior art keywords
task
size
time
area
memory
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.)
Active
Application number
JP2015249469A
Other languages
Japanese (ja)
Other versions
JP2017117048A (en
Inventor
松田 雄一
雄一 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015249469A priority Critical patent/JP6485343B2/en
Publication of JP2017117048A publication Critical patent/JP2017117048A/en
Application granted granted Critical
Publication of JP6485343B2 publication Critical patent/JP6485343B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明は、制御プログラム、制御装置、および制御方法に関する。   The present invention relates to a control program, a control device, and a control method.

従来、ディスク等の外部のI/O(Input/Output)を伴わず、内部メモリを用いてデータ処理を行う、インメモリ型のデータ処理と呼ばれる技術がある。さらに、インメモリ型のデータ処理を、JavaVM(JVM:Java Virtual Machine Javaは登録商標)に実行させる技術がある。また、インメモリ型のデータ処理では、データ処理のタスクを実行するマシンのメモリから割り当てられた、タスクを繰り返し実行する際にタスクによって用いられる処理用領域と、タスクの実行結果を転送する転送用領域とが用いられる。   Conventionally, there is a technique called in-memory type data processing in which data processing is performed using an internal memory without an external I / O (Input / Output) such as a disk. Furthermore, there is a technology for causing JavaVM (JVM: Java Virtual Machine Java is a registered trademark) to execute in-memory data processing. In in-memory data processing, the processing area allocated by the memory of the machine that executes the data processing task and used by the task when the task is repeatedly executed, and the transfer area for transferring the task execution result Region is used.

関連する先行技術として、例えば、内蔵メモリと外部メモリの利用状況の変化を計測した計測結果を基に、内蔵メモリの構成を変更、内蔵メモリと外部メモリに格納されたデータを移動、内蔵メモリまたは外部メモリの領域を変更するものがある。また、所定時間においてCPU(Central Processing Unit)が全CPUに割り当て可能な部分から確保したメモリ量に基づきCPUのメモリ需要予測量を求め、求めた予測量に基づき全CPUに割り当て可能な部分から確保したメモリを所定のCPUのみに割り当てられた部分に移す技術がある。また、並列計算機上でリモートメモリ書き込みによりデータ転送する際に、各計算機上のデータ転送用のメモリ領域を、予め通信相手ごとに固定された領域と動的に割り当てられる領域とに分割し、転送データ長によってこれら領域を使い分ける技術がある。送受信データ領域として使用するためのページ固定領域を、各ノードのオペレーティング・システムの起動時に設定したサイズに基づいて、各ノードの物理アドレス空間上に確保する技術がある。   As a related prior art, for example, based on the measurement result obtained by measuring changes in the usage status of the internal memory and the external memory, the internal memory configuration is changed, the data stored in the internal memory and the external memory is moved, the internal memory or Some change the area of external memory. In addition, CPU memory demand prediction amount is obtained based on the amount of memory secured from a portion that can be assigned to all CPUs by a CPU (Central Processing Unit) at a predetermined time, and secured from the portion that can be assigned to all CPUs based on the obtained prediction amount There is a technique for transferring the memory that has been allocated to a portion allocated only to a predetermined CPU. Also, when transferring data by remote memory writing on a parallel computer, the data transfer memory area on each computer is divided into an area that is fixed in advance for each communication partner and an area that is dynamically allocated. There is a technique for selectively using these areas depending on the data length. There is a technique for securing a page fixed area for use as a transmission / reception data area in the physical address space of each node based on the size set when the operating system of each node is activated.

国際公開第2011/045931号International Publication No. 2011/045931 特開平10−320358号公報JP-A-10-320358 特開平10−143486号公報Japanese Patent Laid-Open No. 10-143486 特開平6−110845号公報JP-A-6-110845

しかしながら、従来技術によれば、インメモリ型のデータ処理において、メモリの割り当て変更の要否を判断することが難しい。例えば、データ処理のタスクの実行結果のデータサイズが転送用領域のサイズを超えると、ディスクへの書き出しが行われることになり、ディスクに書き出す分、データ処理にかかる時間が増加する。そこで、転送用領域の割り当て量を変更するにしても、割り当て変更のためにタスクを実行するJVMを再起動するといった時間がかかる。従って、メモリ割り当ての変更を行ったとしても、データ処理にかかる時間の増加を抑えることができるとは限らない。   However, according to the prior art, it is difficult to determine whether or not it is necessary to change memory allocation in in-memory data processing. For example, if the data size of the execution result of the data processing task exceeds the size of the transfer area, writing to the disk is performed, and the time required for data processing increases by the amount written to the disk. Therefore, even if the allocation amount of the transfer area is changed, it takes time to restart the JVM that executes the task to change the allocation. Therefore, even if the memory allocation is changed, an increase in time required for data processing cannot always be suppressed.

1つの側面では、本発明は、メモリ割り当て変更の要否を適切に判断することができる制御プログラム、制御装置、および制御方法を提供することを目的とする。   In one aspect, an object of the present invention is to provide a control program, a control apparatus, and a control method that can appropriately determine whether or not a memory allocation change is necessary.

本発明の一側面によれば、メモリが有する記憶領域のうち、タスクを繰り返し実行する際にタスクによって用いられる処理用領域のサイズおよびタスクの実行結果を転送する転送用領域のサイズを取得し、タスクを実行した際に使用されたタスクが用いた処理用領域の使用量と、取得した処理用領域のサイズおよび転送用領域のサイズとに基づいて、使用量に基づき転送用領域のサイズを変更した場合にタスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、算出した短縮時間と、メモリの割り当て変更にかかる時間とに基づいて、メモリの割り当てを変更するか否かを判断する制御プログラム、制御装置、および制御方法が提案される。   According to one aspect of the present invention, among the storage areas of the memory, the size of the processing area used by the task when the task is repeatedly executed and the size of the transfer area for transferring the task execution result are obtained, Based on the usage amount, change the size of the transfer area based on the usage amount of the processing area used by the task that was used when the task was executed and the acquired size of the processing area and the size of the transfer area In this case, it calculates a reduction time that shortens the time required to repeatedly execute the task, and determines whether to change the memory allocation based on the calculated reduction time and the time required to change the memory allocation. A control program, a control device, and a control method are proposed.

本発明の一態様によれば、メモリ割り当て変更の要否を適切に判断することができるという効果を奏する。   According to one aspect of the present invention, it is possible to appropriately determine whether or not it is necessary to change memory allocation.

図1Aは、本実施の形態にかかる制御装置101の動作例を示す説明図(その1)である。FIG. 1A is an explanatory diagram (part 1) of an operation example of the control device 101 according to the present embodiment. 図1Bは、本実施の形態にかかる制御装置101の動作例を示す説明図(その2)である。FIG. 1B is an explanatory diagram (part 2) of an operation example of the control device 101 according to the present embodiment. 図2は、インメモリ型データ処理システム200の構成例を示す説明図である。FIG. 2 is an explanatory diagram showing a configuration example of the in-memory data processing system 200. 図3は、マスタマシン201のハードウェア構成例を示す説明図である。FIG. 3 is an explanatory diagram illustrating a hardware configuration example of the master machine 201. 図4は、マスタマシン201の機能構成例を示すブロック図である。FIG. 4 is a block diagram illustrating a functional configuration example of the master machine 201. 図5は、単一マシンがデータ処理を行う場合のタスク111の割り当て例を示す説明図である。FIG. 5 is an explanatory diagram showing an example of assignment of tasks 111 when a single machine performs data processing. 図6は、単一マシンにおけるデータ処理手順の一例を示すフローチャートである。FIG. 6 is a flowchart illustrating an example of a data processing procedure in a single machine. 図7は、複数マシンでデータ処理を行う場合のタスク111の割り当て例を示す説明図である。FIG. 7 is an explanatory diagram showing an example of assignment of tasks 111 when data processing is performed on a plurality of machines. 図8は、複数マシンでデータ処理を行う場合のタスク111の実行例を示す説明図である。FIG. 8 is an explanatory diagram showing an execution example of the task 111 when data processing is performed on a plurality of machines. 図9は、複数マシンにおけるデータ処理手順の一例を示すフローチャートである。FIG. 9 is a flowchart illustrating an example of a data processing procedure in a plurality of machines.

以下に図面を参照して、開示の制御プログラム、制御装置、および制御方法の実施の形態を詳細に説明する。   Hereinafter, embodiments of a disclosed control program, control device, and control method will be described in detail with reference to the drawings.

図1A、図1Bは、本実施の形態にかかる制御装置101の動作例を示す説明図である。制御装置101は、インメモリ型のデータ処理を実行するマシンを制御するコンピュータである。制御装置101は、例えば、サーバである。ここで、インメモリ型のデータ処理は、ディスク等の外部のI/Oを伴わず、内部のメモリを用いてデータ処理を行うものである。インメモリ型のデータ処理では、メモリ上に存在する処理結果をそのまま次の処理へ使うことができる。   1A and 1B are explanatory diagrams illustrating an operation example of the control device 101 according to the present embodiment. The control device 101 is a computer that controls a machine that executes in-memory data processing. The control device 101 is, for example, a server. Here, in-memory type data processing is data processing using an internal memory without accompanying external I / O such as a disk. In in-memory data processing, the processing result existing in the memory can be used as it is for the next processing.

ここで、データ処理の1回の処理を、「タスク」と呼称する。そして、同じタスクを繰り返すような機械学習を実装するようなアプリケーションソフトウェアでは、インメモリ型のデータ処理が有効である。以下、アプリケーションソフトウェアを、「アプリ」と称する。ここで、タスクは、アプリの実行単位となるジョブが分割された最小の実行単位を指す。   Here, one processing of data processing is referred to as “task”. In application software that implements machine learning that repeats the same task, in-memory data processing is effective. Hereinafter, the application software is referred to as “application”. Here, the task indicates a minimum execution unit obtained by dividing a job that is an application execution unit.

機械学習の説明例を、下記参考文献1、2内に示す。
(参考文献1:ビッグデータ時代の機械学習アルゴリズム:オンライン学習、[平成27年9月24日検索]、http://www.nttdata.com/jp/ja/insights/trend_keyword/2014110601.html)
(参考文献2:クラシックな機械学習の入門 7. オンライン学習、[平成27年9月24日検索]、http://www.slideshare.net/hirsoshnakagawa3/ss−32274089)
Examples of machine learning are shown in References 1 and 2 below.
(Reference Document 1: Machine Learning Algorithm in the Age of Big Data: Online Learning, [Search September 24, 2015], http://www.nttdata.com/jp/ja/insights/trend_keyword/2014110601.html)
(Reference 2: Introduction to classic machine learning 7. Online learning, [searched on September 24, 2015], http://www.slideshare.net/hiroshinakagawa3/ss-322774089)

このため、インメモリ型のデータ処理は、同一マシンや異なるマシン間でのタスクの繰り返しを用いて、インメモリ型のデータ処理を実行するマシンに並列分散するように割り当てる。また、インメモリ型のデータ処理では、アプリを実行する際に用いられる処理用領域と、複数の処理用領域に格納されたタスクの実行結果を統合したり、タスクの実行結果の一部や全部を他のマシンに転送したりするために用いられる転送用領域とを有する。   For this reason, in-memory type data processing is assigned so as to be distributed in parallel to machines that execute in-memory type data processing by using repetition of tasks between the same machine and different machines. In-memory data processing integrates the processing area used when executing the application and the task execution results stored in multiple processing areas, or part or all of the task execution results. And a transfer area used for transferring the file to another machine.

機械学習のアプリの処理内容は利用者が任意に指定することができる。また、タスクに用いる処理用領域のデータサイズは、タスクによって異なる。処理用領域と転送用領域との総和は、タスクを実行する装置のメモリの総量を超えることはない。タスクの実行中に処理用領域が不足した場合には、タスクの実行が遅くなる。また、タスクの実行中に転送用領域が不足した場合には、タスクの実行結果の一部を、タスクを実行する装置のディスク、例えば、磁気ディスクドライブ(Hard Disk Drive:HDD)に書き出すこともある。   The processing contents of the machine learning application can be arbitrarily specified by the user. Further, the data size of the processing area used for the task differs depending on the task. The sum of the processing area and the transfer area does not exceed the total amount of memory of the device that executes the task. If the processing area is insufficient during task execution, task execution is delayed. In addition, when the transfer area is insufficient during the execution of the task, a part of the task execution result may be written to a disk of a device that executes the task, for example, a magnetic disk drive (HDD). is there.

また、制御装置101は、インメモリ型のデータ処理を実行するマシンとして、JVMに実行させる。JVMを動作させる装置は、制御装置101とは異なる1以上の装置でもよいし、制御装置101でもよいし、制御装置101とは異なる1以上の装置と制御装置101とでもよい。インメモリ型のデータ処理をJVMが実行する際には、JVMの起動時に、処理用領域と転送用領域とが割り当てられる。   Further, the control apparatus 101 causes the JVM to execute as a machine that executes in-memory data processing. The apparatus that operates the JVM may be one or more apparatuses different from the control apparatus 101, may be the control apparatus 101, or may be one or more apparatuses different from the control apparatus 101 and the control apparatus 101. When the JVM executes in-memory data processing, a processing area and a transfer area are allocated when the JVM is activated.

しかしながら、インメモリ型のデータ処理において、処理用領域と転送用領域との割り当て変更の要否を判断することが難しい。以下、処理用領域と転送用領域との割り当て変更を、「メモリの割り当て変更」と呼称する。例えば、データ処理のタスクの実行結果のデータサイズが転送用領域のサイズを超えると、ディスクへの書き出しが行われることになり、ディスクに書き出す分、データ処理にかかる時間が増加する。そこで、転送用領域の割り当て量を変更するにしても、割り当て変更のためにタスクを実行するJVMを再起動するといった時間がかかる。従って、メモリ割り当ての変更を行ったとしても、データ処理にかかる時間の増加を抑えることができるとは限らない。   However, in in-memory data processing, it is difficult to determine whether it is necessary to change the allocation between the processing area and the transfer area. Hereinafter, the allocation change between the processing area and the transfer area is referred to as “memory allocation change”. For example, if the data size of the execution result of the data processing task exceeds the size of the transfer area, writing to the disk is performed, and the time required for data processing increases by the amount written to the disk. Therefore, even if the allocation amount of the transfer area is changed, it takes time to restart the JVM that executes the task to change the allocation. Therefore, even if the memory allocation is changed, an increase in time required for data processing cannot always be suppressed.

ここで、機械学習の場合には、1回目のタスクで実行したメモリ量がわかれば、2回目以降のタスクにおいても、ほぼ同じようなメモリ量を使用することになる。そこで、本実施の形態では、インメモリ型のデータ処理のタスクを実行した際に、処理用領域の使用量に基づき転送用領域を増やすことで短縮する時間と、メモリの割り当て変更にかかる時間から、メモリの割り当て変更の要否を判断する方法を行う。   Here, in the case of machine learning, if the amount of memory executed in the first task is known, almost the same amount of memory is used in the second and subsequent tasks. Therefore, in the present embodiment, when an in-memory type data processing task is executed, it is possible to shorten the time by increasing the transfer area based on the usage amount of the processing area and the time required for changing the memory allocation. Then, a method of determining whether or not the memory allocation needs to be changed is performed.

図1A、図1Bを用いて、制御装置101の動作例を示す。図1A、図1Bの例では、JVMを動作させる装置が、実行装置102であるとする。図1Aに示すように、制御装置101は、複数の実行装置102と接続される。実行装置102は、制御装置101の指示により、タスク111をn回実行するものとする。nは、2以上の整数である。   An operation example of the control apparatus 101 will be described with reference to FIGS. 1A and 1B. In the example of FIGS. 1A and 1B, it is assumed that the device that operates the JVM is the execution device 102. As illustrated in FIG. 1A, the control device 101 is connected to a plurality of execution devices 102. The execution device 102 executes the task 111 n times in response to an instruction from the control device 101. n is an integer of 2 or more.

図1Aの(1)で示すように、制御装置101は、実行装置102から、実行装置102のメモリが有する記憶領域から割り当てられた、処理用領域mpのサイズおよび転送用領域mtのサイズを取得する。取得するタイミングとして、制御装置101は、データ処理を行う前に取得してもよいし、データ処理中に取得してもよい。   As illustrated in (1) of FIG. 1A, the control device 101 acquires from the execution device 102 the size of the processing region mp and the size of the transfer region mt allocated from the storage area of the memory of the execution device 102. To do. As the acquisition timing, the control device 101 may acquire the data before performing the data processing, or may acquire the data during the data processing.

次に、図1Bの(2)で示すように、制御装置101は、第1の時間として実行時間Tbと、第2の時間として実行時間Taを算出し、実行時間Tbから実行時間Taを減じた時間rtを算出する。時間rtは、使用量uに基づき転送用領域mtのサイズを変更した場合にタスク111を繰り返し実行する、すなわち、データ処理の実行の際にかかる時間が短縮する時間である。また、時間rtは、メモリの割り当て変更にかかる時間を考慮した際のデータ処理の実行の際にかかる時間が短縮する時間でもある。実行時間Taは、メモリの割り当て変更を行った場合のデータ処理の実行時間である。また、実行時間Tbは、メモリの割り当て変更を行わない場合のデータ処理の実行時間である。   Next, as shown by (2) in FIG. 1B, the control device 101 calculates the execution time Tb as the first time and the execution time Ta as the second time, and subtracts the execution time Ta from the execution time Tb. The calculated time rt is calculated. The time rt is a time during which the task 111 is repeatedly executed when the size of the transfer area mt is changed based on the usage amount u, that is, the time required for executing the data processing is shortened. The time rt is also a time for shortening the time required for executing the data processing in consideration of the time required for the memory allocation change. The execution time Ta is the execution time of data processing when the memory allocation is changed. The execution time Tb is the execution time of data processing when the memory allocation is not changed.

制御装置101は、タスク111を実行した際にかかった時間T1に基づいて、実行時間Tbを算出する。例えば、制御装置101は、時間T1にnを乗算した値を、Tbとして算出する。   The control device 101 calculates an execution time Tb based on the time T1 taken when the task 111 is executed. For example, the control device 101 calculates a value obtained by multiplying the time T1 by n as Tb.

また、制御装置101は、T1、タスク111を実行した際に使用されたタスク111が用いた処理用領域mpの使用量u、メモリの割り当て変更にかかる時間rat、処理用領域mpのサイズ、および転送用領域mtのサイズに基づいて、実行時間Taを算出する。メモリの割り当て変更にかかる時間ratは、メモリの割り当てを変更するためにJVMを再起動するのにかかる時間である。例えば、制御装置101は、下記(1)式に従って、Taを算出する。   In addition, the control device 101 uses T1, the usage amount u of the processing area mp used by the task 111 used when the task 111 is executed, the time rat for changing the memory allocation, the size of the processing area mp, and An execution time Ta is calculated based on the size of the transfer area mt. The time rat required to change the memory allocation is the time required to restart the JVM in order to change the memory allocation. For example, the control apparatus 101 calculates Ta according to the following formula (1).

Ta=T1+T2×(n−1)+rat …(1)   Ta = T1 + T2 × (n−1) + rat (1)

ここで、T2は、メモリの割り当て変更を行った場合にタスク111を実行する際にかかる時間である。例えば、制御装置101は、T1に、メモリの割り当て変更により転送用領域mtが増える倍率の逆数を乗算して得られた値を、T2として算出する。そして、転送用領域mtが増える分は、図1Aの例では、処理用領域mpから使用量uを除いた空き容量となる斜線の網掛けの領域の部分である。   Here, T2 is the time taken to execute the task 111 when the memory allocation is changed. For example, the control apparatus 101 calculates, as T2, a value obtained by multiplying T1 by the reciprocal of the magnification at which the transfer area mt increases due to the memory allocation change. In the example of FIG. 1A, the amount of increase in the transfer area mt is a hatched shaded area portion that is a free space obtained by removing the usage amount u from the processing area mp.

図1Bのグラフ112に、実行時間Ta、Tb、時間rt、メモリの割り当て変更にかかる時間ratが示す量を図示してある。時間rtは、グラフ112で示すように、TbからTaを減じた値となる。   The graph 112 in FIG. 1B illustrates the amounts indicated by the execution times Ta, Tb, the time rt, and the time rat required to change the memory allocation. As shown in the graph 112, the time rt is a value obtained by subtracting Ta from Tb.

なお、実行時間Ta、Tb、時間rtを算出するタイミングは、タスク111を1回実行した以降から、タスク111のn回目の実行の前までであればいつでもよいが、好ましくは、タスク111を1回実行した後がよい。   The execution times Ta, Tb, and time rt may be calculated at any time after the task 111 is executed once and before the n-th execution of the task 111. After running once.

そして、図1Bの(3)で示すように、制御装置101は、時間rtに基づいて、メモリの割り当てを変更するか否かを判断する。例えば、制御装置101は、時間rtが0以上であれば、メモリの割り当てを変更すると判断し、そうでなければ、メモリの割り当てを変更しないと判断する。   Then, as indicated by (3) in FIG. 1B, the control device 101 determines whether to change the memory allocation based on the time rt. For example, if the time rt is 0 or more, the control apparatus 101 determines that the memory allocation is to be changed, and otherwise determines that the memory allocation is not to be changed.

このように、制御装置101は、メモリの割り当て変更にかかる時間ratを考慮して、メモリの割り当て変更の要否を適切に判断することができ、結果、データ処理にかかる時間を短縮することができる。   As described above, the control device 101 can appropriately determine whether or not the memory allocation needs to be changed in consideration of the time rat required for the memory allocation change, and as a result, the time required for the data processing can be reduced. it can.

なお、メモリの割り当ての変更を判断する方法は、図1Bで説明した方法に限らない。例えば、制御装置101は、タスク111を実行した際に使用されたタスク111が用いた処理用領域mpの使用量uと、取得した処理用領域mpのサイズおよび転送用領域mtのサイズとに基づいて、短縮時間を算出してもよい。この短縮時間は、使用量uに基づき転送用領域mtのサイズを変更した場合にタスク111を繰り返し実行する、すなわち、データ処理の実行の際にかかる時間が短縮する時間である。また、この短縮時間は、メモリの割り当て変更にかかる時間ratを考慮しない際のデータ処理の実行の際にかかる時間が短縮する時間である。例えば、短縮時間は、下記(2)式により求められる。   Note that the method for determining a change in memory allocation is not limited to the method described with reference to FIG. 1B. For example, the control device 101 uses the usage u of the processing area mp used by the task 111 used when the task 111 is executed, and the acquired size of the processing area mp and the size of the transfer area mt. Thus, the shortening time may be calculated. This shortening time is a time for which the task 111 is repeatedly executed when the size of the transfer area mt is changed based on the usage amount u, that is, the time required for executing the data processing is shortened. In addition, this shortening time is a time for shortening the time required for executing the data processing when the time rat for changing the memory allocation is not taken into consideration. For example, the shortening time is obtained by the following equation (2).

短縮時間=(T1−T2)×(n−1) …(2)   Reduction time = (T1−T2) × (n−1) (2)

ここで、(2)式は、(1)式と、Tb=T1×nから下記の様に導くことができる式である。   Here, the expression (2) is an expression that can be derived from the expression (1) and Tb = T1 × n as follows.

短縮時間=Tb−(Ta−rat)
⇔短縮時間=T1×n−(T1+T2×(n−1))
⇔短縮時間=T1×(n−1)−T2×(n−1)
⇔短縮時間=(T1−T2)×(n−1)
Reduction time = Tb- (Ta-rat)
⇔ Shortening time = T1 × n− (T1 + T2 × (n−1))
⇔ Shortening time = T1 × (n−1) −T2 × (n−1)
⇔ shortening time = (T1-T2) × (n−1)

そして、制御装置101は、算出した短縮時間と、メモリの割り当て変更にかかる時間ratとに基づいて、メモリの割り当てを変更するか否かを判断する。具体的な判断例として、制御装置101は、短縮時間とメモリの割り当て変更にかかる時間ratとを比較して、短縮時間が小さければ、メモリの割り当てを変更すると判断し、そうでなければ、メモリの割り当てを変更しないと判断する。   Then, the control device 101 determines whether or not to change the memory allocation based on the calculated reduction time and the time rat required for the memory allocation change. As a specific determination example, the control apparatus 101 compares the shortening time and the time rat required for changing the memory allocation. If the shortening time is small, the control device 101 determines that the memory allocation is to be changed. It is determined that the assignment of is not changed.

なお、図1A、図1Bの説明では、JVMがインメモリ型のデータ処理を実行したが、これに限らない。例えば、専用のアプリが、インメモリ型のデータ処理を実行してもよい。そして、専用のアプリは、処理用領域mpと転送用領域mtとの割り当て変更を、一旦終了させないと行えないものとする。この場合、メモリの割り当て変更にかかる時間ratは、専用アプリの再起動にかかる時間である。次に、制御装置101をインメモリ型データ処理システムに適用した場合の例について、図2を用いて説明する。   In the description of FIGS. 1A and 1B, the JVM executes in-memory data processing, but the present invention is not limited to this. For example, a dedicated application may execute in-memory data processing. The dedicated application cannot change the assignment between the processing area mp and the transfer area mt unless it is once ended. In this case, the time rat required to change the memory allocation is the time required to restart the dedicated application. Next, an example in which the control device 101 is applied to an in-memory data processing system will be described with reference to FIG.

図2は、インメモリ型データ処理システム200の構成例を示す説明図である。インメモリ型データ処理システム200は、マスタマシン201と、スレーブマシン202−1〜mと、クライアント端末203とを有する。マスタマシン201と、スレーブマシン202−1〜mとは、ネットワーク211によりそれぞれ接続する。また、マスタマシン201とクライアント端末203とは、ネットワーク212により接続する。ここで、マスタマシン201は、図1Aで示した制御装置101に相当する。また、スレーブマシン202−1〜mは、図1Aで示した実行装置102に相当する。   FIG. 2 is an explanatory diagram showing a configuration example of the in-memory data processing system 200. The in-memory type data processing system 200 includes a master machine 201, slave machines 202-1 to m, and a client terminal 203. The master machine 201 and slave machines 202-1 to 202-1m are connected via a network 211, respectively. The master machine 201 and the client terminal 203 are connected via a network 212. Here, the master machine 201 corresponds to the control device 101 shown in FIG. 1A. The slave machines 202-1 to 202-1m correspond to the execution device 102 shown in FIG. 1A.

マスタマシン201は、インメモリ型データ処理システム200を制御するコンピュータである。スレーブマシン202−1〜mは、マスタマシン201の指示に従って、タスク111を実行するコンピュータである。クライアント端末203は、インメモリ型データ処理システム200を利用する利用者が操作するコンピュータである。   The master machine 201 is a computer that controls the in-memory data processing system 200. The slave machines 202-1 to 202-m are computers that execute the task 111 in accordance with instructions from the master machine 201. The client terminal 203 is a computer operated by a user who uses the in-memory data processing system 200.

次に、インメモリ型データ処理システム200に含まれるコンピュータのハードウェアとして、マスタマシン201のハードウェア構成例を図3で示す。スレーブマシン202のハードウェア構成は、マスタマシン201のハードウェア構成と同様であるため、説明を省略する。   Next, FIG. 3 shows a hardware configuration example of the master machine 201 as computer hardware included in the in-memory data processing system 200. Since the hardware configuration of the slave machine 202 is the same as the hardware configuration of the master machine 201, description thereof is omitted.

(マスタマシン201のハードウェア)
図3は、マスタマシン201のハードウェア構成例を示す説明図である。図3において、マスタマシン201は、CPU301と、ROM(Read−Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、マスタマシン201は、ディスクドライブ304およびディスク305と、通信インターフェース306と、を含む。また、CPU301〜ディスクドライブ304、通信インターフェース306はバス307によってそれぞれ接続される。
(Hardware of master machine 201)
FIG. 3 is an explanatory diagram illustrating a hardware configuration example of the master machine 201. In FIG. 3, the master machine 201 includes a CPU 301, a ROM (Read-Only Memory) 302, and a RAM (Random Access Memory) 303. The master machine 201 includes a disk drive 304 and a disk 305, and a communication interface 306. The CPU 301 to the disk drive 304 and the communication interface 306 are connected by a bus 307, respectively.

CPU301は、マスタマシン201の全体の制御を司る演算処理装置である。CPU301は、複数のプロセッサコアを有してもよい。   The CPU 301 is an arithmetic processing device that controls the entire master machine 201. The CPU 301 may have a plurality of processor cores.

ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、CPU301のワークエリアとして使用される揮発性メモリである。   The ROM 302 is a nonvolatile memory that stores programs such as a boot program. A RAM 303 is a volatile memory used as a work area for the CPU 301.

ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304が光ディスクドライブである場合、ディスク305には、光ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。   The disk drive 304 is a control device that controls reading and writing of data with respect to the disk 305 according to the control of the CPU 301. As the disk drive 304, for example, a magnetic disk drive, an optical disk drive, a solid state drive, or the like can be adopted. The disk 305 is a nonvolatile memory that stores data written under the control of the disk drive 304. For example, when the disk drive 304 is a magnetic disk drive, a magnetic disk can be adopted as the disk 305. Further, when the disk drive 304 is an optical disk drive, an optical disk can be adopted as the disk 305. When the disk drive 304 is a solid state drive, a semiconductor memory formed by a semiconductor element, that is, a so-called semiconductor disk can be used as the disk 305.

通信インターフェース306は、ネットワーク211、212と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース306は、通信回線を通じてネットワーク211、212を介して他の装置に接続される。通信インターフェース306には、例えば、モデムやLANアダプタなどを採用することができる。   The communication interface 306 is a control device that controls an internal interface with the networks 211 and 212 and controls input / output of data from other devices. Specifically, the communication interface 306 is connected to another device via the networks 211 and 212 through a communication line. As the communication interface 306, for example, a modem or a LAN adapter can be employed.

また、インメモリ型データ処理システム200の管理者が、マスタマシン201を直接操作する場合、マスタマシン201は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。また、クライアント端末203も、マスタマシン201が有するハードウェアと同等のハードウェアと、ディスプレイ、キーボード、マウスといったハードウェアとを有する。   When the administrator of the in-memory data processing system 200 directly operates the master machine 201, the master machine 201 may have hardware such as a display, a keyboard, and a mouse. The client terminal 203 also includes hardware equivalent to the hardware included in the master machine 201 and hardware such as a display, a keyboard, and a mouse.

(マスタマシン201の機能構成例)
図4は、マスタマシン201の機能構成例を示すブロック図である。マスタマシン201は、制御部400を有する。制御部400は、取得部401と、判定部402と、算出部403と、判断部404と、割り当て変更部405とを含む。制御部400は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したROM302、RAM303、ディスク305などである。また、各部の処理結果は、CPU301のレジスタや、CPU301のキャッシュメモリ、RAM303等に格納される。
(Example of functional configuration of master machine 201)
FIG. 4 is a block diagram illustrating a functional configuration example of the master machine 201. The master machine 201 has a control unit 400. The control unit 400 includes an acquisition unit 401, a determination unit 402, a calculation unit 403, a determination unit 404, and an assignment change unit 405. The control unit 400 realizes the functions of the respective units when the CPU 301 executes a program stored in the storage device. Specifically, the storage device is, for example, the ROM 302, the RAM 303, the disk 305, etc. shown in FIG. The processing results of each unit are stored in a register of the CPU 301, a cache memory of the CPU 301, a RAM 303, and the like.

以下に、単一マシンがデータ処理を行う場合と、複数マシンがデータ処理を行う場合とに分けて各部の説明を行う。ここで、データ処理を単一マシンが行うか複数マシンが行うかについては、例えば、インメモリ型データ処理システム200によって決め打ちでもよいし、データ処理を行うアプリによって決め打ちでもよい。または、マスタマシン201は、スレーブマシン202−1〜mの負荷状況に基づいて、データ処理を単一マシンが行うか複数マシンが行うか決定してもよい。例えば、データ処理を行うアプリが複数マシンで行うことが可能であるとする。そして、スレーブマシン202−1〜mの負荷がほぼ均等であれば、マスタマシン201は、データ処理をスレーブマシン202−1〜mに行わせると決定してもよい。または、マスタマシン201は、スレーブマシン202−1〜mのうち他と比べて負荷が少ない1つのスレーブマシン202に、データ処理を行わせると決定してもよい。   Hereinafter, each part will be described separately for a case where a single machine performs data processing and a case where a plurality of machines perform data processing. Here, whether the data processing is performed by a single machine or a plurality of machines may be determined by the in-memory data processing system 200 or determined by an application that performs data processing. Alternatively, the master machine 201 may determine whether a single machine or a plurality of machines performs data processing based on the load status of the slave machines 202-1 to 202-m. For example, it is assumed that an application that performs data processing can be executed by a plurality of machines. Then, if the loads on the slave machines 202-1 to m are substantially equal, the master machine 201 may determine that the slave machines 202-1 to m are to perform data processing. Alternatively, the master machine 201 may determine that one of the slave machines 202-1 to 202-m that has a smaller load than the other machine performs data processing.

まず、単一マシンがデータ処理を行う場合の各部の説明を行う。取得部401は、スレーブマシン202の処理用領域mpのサイズおよび転送用領域mtのサイズを取得する。   First, each part when a single machine performs data processing will be described. The acquisition unit 401 acquires the size of the processing area mp and the size of the transfer area mt of the slave machine 202.

判定部402は、タスク111の実行履歴に基づいて、タスク111の実行中にメモリが有する記憶領域とは異なる他の記憶領域にタスク111の実行結果を書き出したか否かを判定する。メモリが有する記憶領域とは異なる他の記憶領域とは、例えば、スレーブマシン202が有するRAMとは異なるディスクの記憶領域である。また、他の記憶領域は、スレーブマシン202がアクセス可能な、ディスク以外の外部の記憶装置でもよい。タスク111の実行履歴には、転送用領域mtにタスク111の実行結果が載りきれずにディスクへ書き出したデータ量が記載されている。従って、判定部402は、例えば、タスク111の実行履歴に、転送用領域mtにタスク111の実行結果が載りきれずにディスクへ書き出したデータ量が0より大きければ、他の記憶領域としてディスクにタスク111の実行結果を書き出したと判定する。   Based on the execution history of the task 111, the determination unit 402 determines whether or not the execution result of the task 111 is written to another storage area different from the storage area of the memory during the execution of the task 111. The other storage area different from the storage area included in the memory is, for example, a storage area on a disk different from the RAM included in the slave machine 202. Further, the other storage area may be an external storage device other than the disk, which can be accessed by the slave machine 202. In the execution history of the task 111, the amount of data written to the disk without the execution result of the task 111 being written in the transfer area mt is described. Accordingly, for example, if the amount of data written to the disk without the execution result of the task 111 being recorded in the transfer area mt is larger than 0 in the execution history of the task 111, the determination unit 402 stores the disk as another storage area. It is determined that the execution result of task 111 has been written.

算出部403は、タスク111を実行した際に使用されたタスク111が用いた処理用領域mpの使用量uと、取得部401が取得した処理用領域mpのサイズおよび転送用領域mtのサイズとに基づいて、短縮時間を算出する。ここで、使用量uは、1回目のタスクを実行した後であれば、1回目のタスクを実行した際の使用量である。また、1からn−1の間のx回目のタスクを実行した後であれば、使用量uは、x回目のタスクを実行した際の使用量でもよいし、1回目のタスクを実行した際の使用量からx回目のタスクを実行した際の使用量までの平均値でもよい。また、算出部403は、他の記憶領域にタスク111の実行結果を書き出したと判定部402が判定した場合に、短縮時間を算出してもよい。   The calculation unit 403 uses the amount u of the processing area mp used by the task 111 used when the task 111 is executed, the size of the processing area mp and the size of the transfer area mt acquired by the acquisition unit 401. Based on the above, the shortening time is calculated. Here, the usage amount u is the usage amount when the first task is executed if the first task is executed. If the x-th task between 1 and n−1 is executed, the usage amount u may be the usage amount when the x-th task is executed, or when the first task is executed. The average value from the usage amount to the usage amount when the x-th task is executed may be used. Further, the calculation unit 403 may calculate the shortened time when the determination unit 402 determines that the execution result of the task 111 has been written to another storage area.

また、算出部403は、タスク111を実行した際にかかった時間T1に基づいて、実行時間Tbを算出するとともに、時間T1と、使用量uと、時間ratと、処理用領域mpのサイズおよび転送用領域mtのサイズとに基づいて、実行時間Taを算出してもよい。具体的な算出例は、図1Bで説明したとおりである。   The calculation unit 403 calculates the execution time Tb based on the time T1 taken when the task 111 is executed, and also calculates the time T1, the usage u, the time rat, the size of the processing area mp, The execution time Ta may be calculated based on the size of the transfer area mt. A specific calculation example is as described in FIG. 1B.

また、算出部403は、第3の時間として、使用量に基づき転送用領域mtのサイズを変更した場合のタスク111を繰り返し実行する際にかかる時間とを算出してもよい。具体的には、算出部403は、時間T1と、タスク111を実行した際に使用されたタスク111が用いた処理用領域mpの使用量と、取得した処理用領域mpおよび転送用領域mtのサイズとに基づいて、第3の時間を算出してもよい。第3の時間は、図1Bのグラフ112では、T1+T2×(n−1)、すなわち、Ta−ratに相当する。   Further, the calculation unit 403 may calculate the time required for repeatedly executing the task 111 when the size of the transfer area mt is changed based on the usage amount as the third time. Specifically, the calculation unit 403 calculates the time T1, the usage amount of the processing area mp used by the task 111 used when the task 111 is executed, and the acquired processing area mp and transfer area mt. The third time may be calculated based on the size. The third time corresponds to T1 + T2 × (n−1), that is, Ta-rat in the graph 112 of FIG. 1B.

判断部404は、算出部403が算出した短縮時間と、メモリの割り当て変更にかかる時間ratとに基づいて、メモリの割り当てを変更するか否かを判断する。   The determination unit 404 determines whether to change the memory allocation based on the shortened time calculated by the calculation unit 403 and the time rat required for the memory allocation change.

また、判断部404は、実行時間Tbから実行時間Taを減じた時間rtに基づいて、メモリの割り当てを変更するか否かを判断してもよい。具体的には、判断部404は、時間rtが0以上であれば、メモリの割り当てを変更すると判断し、そうでなければ、メモリの割り当てを変更しないと判断する。   The determination unit 404 may determine whether to change the memory allocation based on a time rt obtained by subtracting the execution time Ta from the execution time Tb. Specifically, the determination unit 404 determines that the memory allocation is to be changed if the time rt is 0 or more, and otherwise determines that the memory allocation is not to be changed.

また、判断部404は、実行時間Tbから第3の時間を減じた時間と、メモリの割り当て変更にかかる時間ratとの比較結果に基づいて、メモリの割り当てを変更するか否かを判断してもよい。実行時間Tbから第3の時間を減じた時間は、(T1−T2)×(n−1)に相当する。例えば、判断部404は、実行時間Tbから第3の時間を減じた時間が時間rat以上であれば、メモリの割り当てを変更すると判断し、そうでなければ、メモリの割り当てを変更しないと判断する。   Further, the determination unit 404 determines whether to change the memory allocation based on a comparison result between the time obtained by subtracting the third time from the execution time Tb and the time rat required for the memory allocation change. Also good. The time obtained by subtracting the third time from the execution time Tb corresponds to (T1−T2) × (n−1). For example, the determination unit 404 determines that the memory allocation is changed if the time obtained by subtracting the third time from the execution time Tb is equal to or longer than the time rat, and otherwise determines that the memory allocation is not changed. .

割り当て変更部405は、判断部404がメモリの割り当てを変更すると判断した場合に、スレーブマシン202のメモリ割り当てを変更する。具体的には、割り当て変更部405は、スレーブマシン202上で動作するJVMを停止させ、JVMのメモリを設定し、JVMを再起動させる。   The allocation changing unit 405 changes the memory allocation of the slave machine 202 when the determining unit 404 determines to change the memory allocation. Specifically, the allocation changing unit 405 stops the JVM operating on the slave machine 202, sets the memory of the JVM, and restarts the JVM.

次に、複数マシンがデータ処理を行う場合の各部の説明を行う。まず、複数マシンの場合、スレーブマシン202−1〜mの各々が、各々のスレーブマシン202の処理用領域mpを用いてタスク111を実行する。ここで、処理用領域mpは、各々のスレーブマシン202の間で同一のサイズとなる。そして、各々のスレーブマシン202は、スレーブマシン202−1〜mがタスク111を完了させた後に、各々のスレーブマシン202の転送用領域mtを用いて、各々のコンピュータの間でタスク111の実行結果を転送する転送処理を実行する。ここで、転送用領域mtは、各々のスレーブマシン202の間で同一のサイズとなる。そして、各々のスレーブマシン202は、転送された実行結果に基づいてタスク111を再び実行する。   Next, each part when a plurality of machines perform data processing will be described. First, in the case of a plurality of machines, each of the slave machines 202-1 to 202-m executes the task 111 using the processing area mp of each slave machine 202. Here, the processing area mp has the same size among the slave machines 202. Then, after each slave machine 202-1 to m completes the task 111, each slave machine 202 uses the transfer area mt of each slave machine 202 to execute an execution result of the task 111 between the computers. Execute transfer processing to transfer. Here, the transfer area mt has the same size between the slave machines 202. Each slave machine 202 executes the task 111 again based on the transferred execution result.

取得部401は、スレーブマシン202−1〜mのうちのいずれかのスレーブマシン202から、処理用領域mpのサイズおよび転送用領域mtのサイズを取得する。   The acquisition unit 401 acquires the size of the processing area mp and the size of the transfer area mt from any one of the slave machines 202-1 to 202-m.

判定部402は、スレーブマシン202−1〜mのうちのいずれかがタスク111の実行中にいずれかが有するメモリが有する記憶領域とは異なる他の記憶領域にタスク111の実行結果を書き出したか否かを判定する。ここで、判定部402は、各々のスレーブマシン202のタスク111の実行履歴に基づき、スレーブマシン202−1〜mのどれか1つでも他の記憶領域に実行結果を書き出していれば、他の記憶領域にタスク111の実行結果を書き出したと判定する。   The determination unit 402 determines whether any of the slave machines 202-1 to 20-m has written the execution result of the task 111 to another storage area different from the storage area included in the memory included in the execution of the task 111. Determine whether. Here, based on the execution history of the task 111 of each slave machine 202, the determination unit 402 writes the execution result to another storage area even if any one of the slave machines 202-1 to 202-m is written. It is determined that the execution result of the task 111 is written in the storage area.

そして、判定部402がいずれかのスレーブマシン202がタスク111の実行結果を当該他の記憶領域に書き出したと判定したとする。この場合、算出部403は、タスク111を実行した際に使用されたタスク111が用いた処理用領域mpの使用量と、取得した処理用領域mpおよび転送用領域mtのサイズとに基づいて、短縮時間を算出する。ここでの短縮時間は、メモリの割り当て変更にかかる時間ratを考慮しない場合における、スレーブマシン202−1〜mがタスク111を繰り返し実行する際にかかる時間が短縮する時間である。   Assume that the determination unit 402 determines that any slave machine 202 has written the execution result of the task 111 to the other storage area. In this case, the calculation unit 403, based on the usage amount of the processing area mp used by the task 111 used when the task 111 is executed, and the acquired sizes of the processing area mp and the transfer area mt, Calculate the reduction time. The shortened time here is a time to shorten the time taken when the slave machines 202-1 to 20-m repeatedly execute the task 111 when the time rat for changing the memory allocation is not taken into consideration.

割り当て変更部405は、判断部404がメモリの割り当てを変更すると判断した場合に、スレーブマシン202−1〜m全てのメモリ割り当てを変更する。   The allocation changing unit 405 changes the memory allocation of all the slave machines 202-1 to m when the determination unit 404 determines to change the memory allocation.

(単一マシンがデータ処理を行う場合)
次に、第1の実施例として単一マシンがデータ処理を行う場合について、図5、図6を用いて説明する。
(When a single machine processes data)
Next, a case where a single machine performs data processing as the first embodiment will be described with reference to FIGS.

図5は、単一マシンがデータ処理を行う場合のタスク111の割り当て例を示す説明図である。図5では、単位マシンとしてスレーブマシン202−1がデータ処理を行う場合のタスク111の割り当て例を示す。ここで、クライアント端末203によりアプリ実行の指示が行われると、マスタマシン201は、ジョブ501を生成し、1つのスレーブマシン202として、スレーブマシン202−1に、タスク111を割り当てることによりデータ処理を実行する。ここで、データ処理の1回の処理を「ステージ」と呼称する。図5の例では、スレーブマシン202−1は、ステージ0としてデータを読み込み、ステージ1〜nとしてデータ処理の1回分の処理であるタスク111がマスタマシン201によって割り当てられ、割り当てられたタスク111を実行する。   FIG. 5 is an explanatory diagram showing an example of assignment of tasks 111 when a single machine performs data processing. FIG. 5 shows an assignment example of the task 111 when the slave machine 202-1 performs data processing as a unit machine. Here, when an application execution instruction is issued by the client terminal 203, the master machine 201 generates a job 501 and performs data processing by assigning a task 111 to the slave machine 202-1 as one slave machine 202. Run. Here, one process of data processing is referred to as a “stage”. In the example of FIG. 5, the slave machine 202-1 reads data as stage 0, a task 111, which is a process for one data process, is assigned by the master machine 201 as stages 1 to n, and the assigned task 111 is assigned. Run.

ここで、図5、図6では、説明の簡略化のため、処理用領域mp、転送用領域mtと記載した場合、スレーブマシン202−1の処理用領域mp、転送用領域mtであることを示す。また、処理用領域mp、転送用領域mtの後に、「_sx」が付与された符号は、単一マシンにおいて、ステージxにおける処理用領域mp、転送用領域mtであることを示す。xは0以上n以下の整数である。   Here, in FIG. 5 and FIG. 6, for simplification of description, when the processing area mp and the transfer area mt are described, the processing area mp and the transfer area mt of the slave machine 202-1 are indicated. Show. Further, a symbol to which “_sx” is added after the processing area mp and the transfer area mt indicates the processing area mp and the transfer area mt in the stage x in a single machine. x is an integer of 0 or more and n or less.

データ処理を実行する間、マスタマシン201は、転送するデータが転送用領域mtに載りきれずに、スレーブマシン202−1のディスクに書き出したか否かを監視する。転送するデータが転送用領域mtに載りきれないと判断した場合、マスタマシン201は、JVMの再立ち上げに伴うメモリの割り当て変更を行ってデータ処理を実行する方法を行う際の実行時間Taを算出する。また、マスタマシン201は、メモリの割り当て変更を行わずにデータ処理を実行する方法を行う際の実行時間Tbを算出する。実行時間Ta、Tbの算出例については、図5の説明終了後に説明する。そして、マスタマシン201は、実行時間Ta、Tbを比較し、短い時間となった方を選択し、選択した方法によりデータ処理を継続する。   While executing the data processing, the master machine 201 monitors whether or not the data to be transferred has been written to the disk of the slave machine 202-1 without being transferred to the transfer area mt. If it is determined that the data to be transferred cannot fit in the transfer area mt, the master machine 201 sets an execution time Ta when performing a method of executing data processing by changing the memory allocation accompanying the restart of the JVM. calculate. Further, the master machine 201 calculates an execution time Tb when performing a method of executing data processing without changing the memory allocation. An example of calculating the execution times Ta and Tb will be described after the description of FIG. Then, the master machine 201 compares the execution times Ta and Tb, selects the shorter one, and continues data processing by the selected method.

図5では、ステージ1が終わった後にメモリの割り当て変更を行う場合の例を示す。具体的には、マスタマシン201は、ステージ1が終わった際に、転送するデータが転送用領域mt_s1に載りきれなかったと判断する。そして、マスタマシン201は、実行時間Ta、Tbをそれぞれ算出する。図5では、実行時間Taが実行時間Tbより短かったとして、マスタマシン201は、スレーブマシン202−1に、スレーブマシン202−1上で動作するJVMの再立ち上げを行いメモリの割り当て変更を行わせる。メモリの割り当て変更を行った結果、転送用領域mt_s2の記憶容量が、転送用領域mt_s1の記憶容量よりも増加することになる。   FIG. 5 shows an example in which the memory allocation is changed after stage 1 ends. Specifically, the master machine 201 determines that the data to be transferred cannot be placed in the transfer area mt_s1 when the stage 1 is completed. Then, the master machine 201 calculates execution times Ta and Tb, respectively. In FIG. 5, assuming that the execution time Ta is shorter than the execution time Tb, the master machine 201 restarts the JVM operating on the slave machine 202-1 and changes the memory allocation to the slave machine 202-1. Make it. As a result of the memory allocation change, the storage capacity of the transfer area mt_s2 increases more than the storage capacity of the transfer area mt_s1.

メモリの割り当て変更を行った後、スレーブマシン202−1は、転送処理を行った後、ステージ2として、割り当て変更を行った処理用領域mp_s2を用いて1回の処理を行い、転送用領域mt_s2にデータを格納する。続けて、スレーブマシン202−1は、ステージ3〜nを実行する。   After performing the memory allocation change, the slave machine 202-1 performs the transfer process, and then, as stage 2, performs one process using the process area mp_s2 for which the allocation change has been performed, and transfers the area mt_s2 Store data in. Subsequently, the slave machine 202-1 executes stages 3 to n.

(単一マシンにおける実行時間の算出例)
次に、単一マシンにおける実行時間Ta、Tbの算出例について説明する。まず、実行時間Taの算出例について示す。マスタマシン201は、実行時間Taを算出するため、下記(sa1)式に従って、データ処理におけるステージ2以降の1つのタスク111にかかる時間T2を算出する。
(Example of calculating execution time on a single machine)
Next, an example of calculating the execution times Ta and Tb in a single machine will be described. First, an example of calculating the execution time Ta will be described. In order to calculate the execution time Ta, the master machine 201 calculates the time T2 required for one task 111 after stage 2 in the data processing according to the following expression (sa1).

T2=T1×(M1/M2) …(sa1)   T2 = T1 × (M1 / M2) (sa1)

ここで、T1は、データ処理におけるステージ1にかかった時間を示す。なお、単一マシンの例では、1つのステージにかかる時間であるT1やT2は、該当のステージにおいて、タスク111にかかった時間と一致する。また、M1は、ステージ1におけるJVMの転送用領域mt_s1のサイズを示す。また、M2は、転送用領域mtを変更する際のステージ2以降におけるJVMの転送用領域mt_s2のサイズを示す。マスタマシン201は、例えば、mt_s1のサイズからタスク111が使用した使用量を引いた値をM1に追加した値を、M2としてもよい。または、マスタマシン201は、mt_s1のサイズから使用量を引いた値と、実際にディスク305に書き出したデータのサイズとのうち、小さい値をM1に追加した値を、M2としてもよい。なお、(sa1)式は、あくまでも概算であり、実際にステージ2にかかる時間とは異なる場合がある。   Here, T1 indicates the time taken for stage 1 in data processing. In the example of a single machine, T1 and T2, which are times required for one stage, match the time required for the task 111 in the corresponding stage. M1 indicates the size of the JVM transfer area mt_s1 in stage 1. M2 indicates the size of the JVM transfer area mt_s2 after stage 2 when the transfer area mt is changed. For example, the master machine 201 may set a value obtained by adding a value obtained by subtracting the used amount used by the task 111 to the size of mt_s1 to M1 as M2. Alternatively, the master machine 201 may set M2 as a value obtained by adding a smaller value to M1 among the value obtained by subtracting the usage amount from the size of mt_s1 and the size of the data actually written to the disk 305. Note that the expression (sa1) is only an approximation and may be different from the actual time required for the stage 2.

そして、マスタマシン201は、下記(sa2)式に従って、単一マシンにおける実行時間Taを算出する。   Then, the master machine 201 calculates an execution time Ta in a single machine according to the following formula (sa2).

Ta=T1+(Ts+Tm+Tr)+(T2×(n−1)) …(sa2)   Ta = T1 + (Ts + Tm + Tr) + (T2 × (n−1)) (sa2)

ここで、Tsは、JVMの停止にかかる時間を示す。Tmは、JVMのメモリを設定する処理にかかる時間を示す。Trは、JVMの再起動にかかる時間を示す。従って、(sa2)式における第2項は、メモリの割り当て変更を行う処理にかかる時間を示す。また、Ts、Tm、Trは、予め実測され、それぞれ固定値として与えられる。   Here, Ts indicates the time required for stopping the JVM. Tm indicates the time required for the process of setting the JVM memory. Tr indicates the time required for restarting the JVM. Therefore, the second term in the expression (sa2) indicates the time required for the process of changing the memory allocation. Ts, Tm, and Tr are measured in advance and are given as fixed values.

次に、単一マシンにおける実行時間Tbの算出例について示す。マスタマシン201は、(sb1)式に従って、実行時間Tbを算出する。   Next, an example of calculating the execution time Tb in a single machine is shown. The master machine 201 calculates the execution time Tb according to the equation (sb1).

Tb=T1×n …(sb1)   Tb = T1 × n (sb1)

次に、単一マシンにおけるデータ処理のフローチャートについて、図6を用いて説明する。   Next, a flowchart of data processing in a single machine will be described with reference to FIG.

図6は、単一マシンにおけるデータ処理手順の一例を示すフローチャートである。単一マシンにおけるデータ処理は、1つのスレーブマシン202でデータ処理を行う処理である。   FIG. 6 is a flowchart illustrating an example of a data processing procedure in a single machine. Data processing in a single machine is processing in which data processing is performed by one slave machine 202.

マスタマシン201は、アプリを実行開始する(ステップS601)。そして、マスタマシン201は、スレーブマシン202から処理用領域mpのサイズおよび転送用領域mtのサイズを取得する(ステップS602)。次に、マスタマシン201の指示によって、スレーブマシン202は、データ処理に含まれる1回目のタスク111を実行する(ステップS603)。   The master machine 201 starts executing the application (step S601). Then, the master machine 201 acquires the size of the processing area mp and the size of the transfer area mt from the slave machine 202 (step S602). Next, according to an instruction from the master machine 201, the slave machine 202 executes the first task 111 included in the data processing (step S603).

そして、マスタマシン201は、スレーブマシン202から1回目のタスク111の実行結果を受信した後、スレーブマシン202が転送用領域mtにデータが載りきれずにディスクに書き出したか否かを判断する(ステップS604)。スレーブマシン202が転送用領域mtにデータが載りきれずにディスクに書き出した場合(ステップS604:Yes)、マスタマシン201は、メモリの割り当て変更を行う場合の実行時間Taを算出する(ステップS605)。また、マスタマシン201は、メモリの割り当て変更を行わない場合の実行時間Tbを算出する(ステップS606)。   Then, after receiving the execution result of the first task 111 from the slave machine 202, the master machine 201 determines whether or not the slave machine 202 has written data to the transfer area mt and the data has been written on the disk (step). S604). When the slave machine 202 writes the data to the transfer area mt without writing data to the disk (step S604: Yes), the master machine 201 calculates the execution time Ta for changing the memory allocation (step S605). . Further, the master machine 201 calculates an execution time Tb when the memory allocation is not changed (step S606).

そして、マスタマシン201は、TaがTb以下か否かを判断する(ステップS607)。TaがTb以下である場合(ステップS607:Yes)、マスタマシン201がスレーブマシン202に指示した後、スレーブマシン202は、メモリの割り当てを変更する(ステップS608)。   Then, the master machine 201 determines whether Ta is equal to or less than Tb (step S607). When Ta is equal to or less than Tb (step S607: Yes), after the master machine 201 instructs the slave machine 202, the slave machine 202 changes the memory allocation (step S608).

ステップS608の処理終了後、TaがTbより大きい場合(ステップS607:No)またはスレーブマシン202が転送用領域mtにデータが載りきれずにディスクに書き出していない場合(ステップS604:No)、マスタマシン201の指示によって、スレーブマシン202は、2回目以降のタスク111を実行する(ステップS609)。次に、マスタマシン201は、タスク111をn回繰り返したか否かを判断する(ステップS610)。タスク111をn回繰り返していない場合(ステップS610:No)、マスタマシン201は、ステップS609の処理に移行する。なお、スレーブマシン202は、ステップS603の処理によりタスク111を1回実行したため、ステップS609の処理によりタスク111をn−1回実行することになる。   When Ta is larger than Tb after the process of step S608 is completed (step S607: No), or when the slave machine 202 cannot write data in the transfer area mt and does not write it to the disk (step S604: No). In accordance with the instruction 201, the slave machine 202 executes the second and subsequent tasks 111 (step S609). Next, the master machine 201 determines whether or not the task 111 has been repeated n times (step S610). If the task 111 has not been repeated n times (step S610: No), the master machine 201 proceeds to the process of step S609. Note that the slave machine 202 executes the task 111 once by the process of step S603, and therefore executes the task 111 n-1 times by the process of step S609.

一方、タスク111をn回繰り返した場合(ステップS610:Yes)、マスタマシン201は、単一マシンにおけるデータ処理を終了する。ここで、ステップS605〜S607の各処理では、Ta、Tbを算出した後に、TaとTbとを比較していたが、これに限らない。例えば、マスタマシン201は、ステップS605〜S607の各処理の代わりに、下記不等式を実行し、不等式が満たされればステップS607:Yesとし、不等式が満たされなければステップS607:Noとしてもよい。   On the other hand, when the task 111 is repeated n times (step S610: Yes), the master machine 201 ends the data processing in the single machine. Here, in each process of steps S605 to S607, Ta and Tb are calculated and then Ta and Tb are compared. However, the present invention is not limited to this. For example, the master machine 201 may execute the following inequality instead of the processes of steps S605 to S607, and if the inequality is satisfied, step S607: Yes, and if the inequality is not satisfied, step S607: No may be performed.

Tb−Ta≧0   Tb-Ta ≧ 0

そして、Tb、Taに対し(sa2)式、(sb1)式を用いると、上記不等式は、下記のように変形することができる。   If the (sa2) and (sb1) equations are used for Tb and Ta, the above inequality can be modified as follows.

(T1×n)−(T1+(Ts+Tm+Tr)+(T2×(n−1)))≧0
⇔(T1−T2)×(n−1)−(Ts+Tm+Tr)≧0
(T1 × n) − (T1 + (Ts + Tm + Tr) + (T2 × (n−1))) ≧ 0
⇔ (T1-T2) × (n−1) − (Ts + Tm + Tr) ≧ 0

ここで、(Ts+Tm+Tr)は、図1Bで示したメモリの割り当て変更にかかる時間ratに相当する。   Here, (Ts + Tm + Tr) corresponds to the time rat required for the memory allocation change shown in FIG. 1B.

(複数マシンが協働してデータ処理を行う場合)
次に、第2の実施例として複数マシンが協働してデータ処理を行う場合について、図7〜図9を用いて説明する。ここで、説明の簡略化のため、スレーブマシン202のそれぞれの上で、1つのJVMが動作されるものとする。実際には、スレーブマシン202のそれぞれの上で、複数のJVMが動作されてもよい。複数のJVMが動作される場合には、例えば、スレーブマシン202のCPUの各コア上で、JVMが動作するようにしてもよい。
(When multiple machines work together to process data)
Next, as a second embodiment, a case where a plurality of machines cooperate to perform data processing will be described with reference to FIGS. Here, for simplification of explanation, it is assumed that one JVM is operated on each of the slave machines 202. In practice, multiple JVMs may be run on each of the slave machines 202. When a plurality of JVMs are operated, for example, the JVM may be operated on each core of the CPU of the slave machine 202.

ここで、図7〜図9では、説明の簡略化のため、処理用領域mp、転送用領域mtと記載した場合、スレーブマシン202−1〜mのそれぞれの処理用領域mp、転送用領域mtであることを示す。また、処理用領域mp、転送用領域mtの後に、「_mx」が付与された符号は、複数マシンにおいて、ステージxにおける処理用領域mp、転送用領域mtであることを示す。xは0以上n以下の整数である。   Here, in FIG. 7 to FIG. 9, for simplification of explanation, when the processing area mp and the transfer area mt are described, the respective processing areas mp and transfer areas mt of the slave machines 202-1 to 20-m. Indicates that Further, a symbol to which “_mx” is added after the processing area mp and the transfer area mt indicates the processing area mp and the transfer area mt in the stage x in a plurality of machines. x is an integer of 0 or more and n or less.

図7は、複数マシンでデータ処理を行う場合のタスク111の割り当て例を示す説明図である。複数マシンの場合、クライアント端末203からアプリ実行の指示が行われると、マスタマシン201は、ジョブ501を生成し、複数のスレーブマシン202として、スレーブマシン202−1〜mにタスク111を割り当てることによりデータ処理を実行する。複数マシンの場合、スレーブマシン202−1〜mが1つのタスク111を実行開始してからスレーブマシン202−1〜mの全てが1つのタスク111を終了するまでを、1ステージとする。   FIG. 7 is an explanatory diagram showing an example of assignment of tasks 111 when data processing is performed on a plurality of machines. In the case of a plurality of machines, when an application execution instruction is issued from the client terminal 203, the master machine 201 generates a job 501 and assigns a task 111 to the slave machines 202-1 to m as a plurality of slave machines 202. Perform data processing. In the case of a plurality of machines, a stage from when the slave machines 202-1 to 20-m start executing one task 111 to when all of the slave machines 202-1 to 20-m complete one task 111 is defined as one stage.

本実施の形態では、インメモリ型データ処理システム200は、nステージまで実行するものとする。そして、図7の例では、ステージ1の状態を示す。図7の例では、スレーブマシン202−1、mが、タスク111の実行中に転送用領域mt_m1にデータが書ききれず、スレーブマシン202−1、mそれぞれのディスクに書き出したことを示す。   In the present embodiment, it is assumed that the in-memory data processing system 200 executes up to n stages. In the example of FIG. 7, the state of the stage 1 is shown. In the example of FIG. 7, the slave machines 202-1 and 202-m indicate that data could not be written to the transfer area mt_m <b> 1 during execution of the task 111, and the slave machines 202-1 and m were written to the respective disks.

図8は、複数マシンでデータ処理を行う場合のタスク111の実行例を示す説明図である。図8では、複数マシンとしてスレーブマシン202−1〜mが協働してデータ処理を行う場合の、各ステージのタスク111の割り当て例を示す。   FIG. 8 is an explanatory diagram showing an execution example of the task 111 when data processing is performed on a plurality of machines. FIG. 8 shows an example of assignment of the task 111 at each stage when the slave machines 202-1 to 202-m cooperate as a plurality of machines to perform data processing.

図8の例では、時刻t1sにステージ1が開始し、スレーブマシン202−1〜mの全てがタスク111を終了させた時刻t1eにステージ1が終了する。そして図8の例では、スレーブマシン202−1は、時刻t1sにタスク111の実行を開始し、時刻t1eより前にタスク111を終了する。また、スレーブマシン202−mは、時刻t1sより後にタスク111の実行を開始し、時刻t1eにタスク111を終了する。図8で示すように、時刻t1eまでにスレーブマシン202−1〜mの全てがタスク111を終了させると、スレーブマシン202−1〜mは、転送処理を実行する。   In the example of FIG. 8, stage 1 starts at time t1s, and stage 1 ends at time t1e when all of the slave machines 202-1 to 20-m have finished the task 111. In the example of FIG. 8, the slave machine 202-1 starts executing the task 111 at time t1s, and ends the task 111 before time t1e. Further, the slave machine 202-m starts executing the task 111 after the time t1s and ends the task 111 at the time t1e. As shown in FIG. 8, when all of the slave machines 202-1 to 20-m finish the task 111 by the time t1e, the slave machines 202-1 to 20-m execute a transfer process.

図8の例では、スレーブマシン202−1〜mは、時刻t2sまでに転送処理を完了させている。そして、時刻t2sからステージ2が開始し、スレーブマシン202−1〜mの全てがタスク111を終了させた時刻t2eにステージ2が終了する。   In the example of FIG. 8, the slave machines 202-1 to m have completed the transfer process by time t2s. Then, stage 2 starts from time t2s, and stage 2 ends at time t2e when all of the slave machines 202-1 to 202-m have finished the task 111.

(複数マシンにおける実行時間の算出例)
次に、複数マシンにおける実行時間Ta、Tbの算出例について説明する。まず、実行時間Taの算出例について示す。マスタマシン201は、実行時間Taを算出するため、下記(ma1)式に従って、データ処理におけるステージ2以降の1つのタスク111にかかる時間T2を算出する。
(Example of calculating execution time on multiple machines)
Next, an example of calculating the execution times Ta and Tb in a plurality of machines will be described. First, an example of calculating the execution time Ta will be described. In order to calculate the execution time Ta, the master machine 201 calculates the time T2 required for one task 111 after stage 2 in the data processing according to the following equation (ma1).

T2=T1×(M1/M2) …(ma1)   T2 = T1 × (M1 / M2) (ma1)

ここで、T1は、データ処理におけるステージ1にかかった時間を示す。なお、複数マシンの例では、1ステージ内での並列処理を行うため、1つのステージにかかる時間であるT1やT2は、1タスクの処理時間×マシン台数のような単純計算にはならない。また、M1は、ステージ1におけるスレーブマシン202−1〜m上で動作するJVMの転送用領域mt_m1のサイズの総和を示す。同様に、M2は、転送用領域mtを変更する際のステージ2以降におけるスレーブマシン202−1〜m上で動作するJVMの転送用領域mt_m2のサイズの総和を示す。マスタマシン201は、例えばスレーブマシン202−1〜m上で動作するJVMがタスク111を実行した際にタスク111に使用した使用量を、mt_m1のサイズの総和から引いた値を算出する。そして、マスタマシン201は、算出して得られた値をM1に追加した値を、M2としてもよい。なお、(ma1)式は、あくまでも概算であり、実際にステージ2にかかる時間とは異なる場合がある。   Here, T1 indicates the time taken for stage 1 in data processing. In the example of a plurality of machines, since parallel processing is performed in one stage, T1 and T2 which are times required for one stage are not simple calculations such as processing time of one task × number of machines. M1 represents the total size of the transfer area mt_m1 of the JVM operating on the slave machines 202-1 to 20-m in stage 1. Similarly, M2 represents the sum of the sizes of the transfer areas mt_m2 of the JVM operating on the slave machines 202-1 to m in stage 2 and subsequent stages when the transfer area mt is changed. For example, the master machine 201 calculates a value obtained by subtracting the usage amount used for the task 111 when the JVM running on the slave machines 202-1 to 202-m executes the task 111 from the sum of the sizes of mt_m1. Then, the master machine 201 may set a value obtained by adding the calculated value to M1 as M2. Note that the formula (ma1) is only an approximation and may be different from the actual time required for the stage 2.

そして、マスタマシン201は、下記(ma2)式に従って、単一マシンにおける実行時間Taを算出する。   Then, the master machine 201 calculates an execution time Ta in a single machine according to the following formula (ma2).

Ta=T1+(Ts+Tm+Tr)+(T2×(n−1)) …(ma2)   Ta = T1 + (Ts + Tm + Tr) + (T2 × (n−1)) (ma2)

ここで、Tsは、JVMの停止にかかる時間を示す。Tmは、JVMのメモリを設定する処理にかかる時間を示す。Trは、JVMの再起動にかかる時間を示す。従って、(ma2)式における第2項は、メモリの割り当て変更を行う処理にかかる時間を示す。また、Ts、Tm、Trは、予め実測され、それぞれ固定値として与えられる。   Here, Ts indicates the time required for stopping the JVM. Tm indicates the time required for the process of setting the JVM memory. Tr indicates the time required for restarting the JVM. Therefore, the second term in the equation (ma2) indicates the time required for the process of changing the memory allocation. Ts, Tm, and Tr are measured in advance and are given as fixed values.

次に、複数マシンにおける実行時間Tbの算出例について示す。マスタマシン201は、(mb1)式に従って、実行時間Tbを算出する。   Next, an example of calculating the execution time Tb in a plurality of machines is shown. The master machine 201 calculates the execution time Tb according to the equation (mb1).

Tb=T1×n …(mb1)   Tb = T1 × n (mb1)

次に、複数マシンにおけるデータ処理のフローチャートについて、図9を用いて説明する。   Next, a flowchart of data processing in a plurality of machines will be described with reference to FIG.

図9は、複数マシンにおけるデータ処理手順の一例を示すフローチャートである。複数マシンにおけるデータ処理は、複数のスレーブマシン202でデータ処理を行う処理である。   FIG. 9 is a flowchart illustrating an example of a data processing procedure in a plurality of machines. Data processing in a plurality of machines is processing in which data processing is performed by a plurality of slave machines 202.

マスタマシン201は、アプリを実行開始する(ステップS901)。そして、マスタマシン201は、スレーブマシン202−1〜mのいずれかから処理用領域mpのサイズおよび転送用領域mtのサイズを取得する(ステップS902)。次に、マスタマシン201の指示によって、スレーブマシン202−1〜mは、データ処理に含まれる1回目のタスク111を実行する(ステップS903)。   The master machine 201 starts executing the application (step S901). Then, the master machine 201 acquires the size of the processing area mp and the size of the transfer area mt from any of the slave machines 202-1 to 202-1m (step S902). Next, according to an instruction from the master machine 201, the slave machines 202-1 to 202-1 to m execute the first task 111 included in the data processing (step S903).

そして、マスタマシン201は、スレーブマシン202−1〜mの全てから1回目のタスク111の実行結果を受信した後、転送用領域mtにデータが載りきれずにディスクに書き出したスレーブマシン202があるか否かを判断する(ステップS904)。転送用領域mtにデータが載りきれずにディスクに書き出したスレーブマシン202がある場合(ステップS904:Yes)、マスタマシン201は、スレーブマシン202−1〜mの全てに対してメモリの割り当て変更を行う場合の実行時間Taを算出する(ステップS905)。また、マスタマシン201は、メモリの割り当て変更を行わない場合の実行時間Tbを算出する(ステップS906)。   Then, the master machine 201 receives the execution result of the first task 111 from all of the slave machines 202-1 to 202-m, and then has the slave machine 202 that has written data to the disk without being able to place data in the transfer area mt. It is determined whether or not (step S904). If there is a slave machine 202 that has written data to the disk without data being stored in the transfer area mt (step S904: Yes), the master machine 201 changes the memory allocation to all of the slave machines 202-1 to m. An execution time Ta for performing is calculated (step S905). Further, the master machine 201 calculates an execution time Tb when the memory allocation is not changed (step S906).

そして、マスタマシン201は、TaがTb以下か否かを判断する(ステップS907)。TaがTb以下である場合(ステップS907:Yes)、マスタマシン201がスレーブマシン202−1〜mに指示した後、スレーブマシン202−1〜mは、メモリの割り当てを変更する(ステップS908)。   Then, the master machine 201 determines whether Ta is equal to or less than Tb (step S907). When Ta is equal to or less than Tb (step S907: Yes), after the master machine 201 instructs the slave machines 202-1 to m, the slave machines 202-1 to m change the memory allocation (step S908).

ステップS908の処理終了後、TaがTbより大きい場合(ステップS907:No)または転送用領域mtにデータが載りきれずにディスクに書き出したスレーブマシン202がない場合(ステップS904:No)、マスタマシン201の指示によって、スレーブマシン202−1〜mは、2回目以降のタスク111を実行する(ステップS909)。次に、マスタマシン201は、タスク111をn回繰り返したか否かを判断する(ステップS910)。タスク111をn回繰り返していない場合(ステップS910:No)、マスタマシン201は、ステップS909の処理に移行する。なお、スレーブマシン202−1〜mは、ステップS903の処理によりタスク111を1回実行したため、ステップS909の処理によりタスク111をn−1回実行することになる。   When Ta is larger than Tb after the process of step S908 is completed (step S907: No), or when there is no slave machine 202 that has not written data in the transfer area mt and has not been written to the disk (step S904: No). In accordance with the instruction 201, the slave machines 202-1 to 202-1m execute the second and subsequent tasks 111 (step S909). Next, the master machine 201 determines whether or not the task 111 has been repeated n times (step S910). If the task 111 has not been repeated n times (step S910: No), the master machine 201 proceeds to the process of step S909. Since the slave machines 202-1 to 20-m have executed the task 111 once by the process of step S903, the task 111 is executed n-1 times by the process of step S909.

一方、タスク111をn回繰り返した場合(ステップS910:Yes)、マスタマシン201は、複数マシンにおけるデータ処理を終了する。ここで、単一マシンがデータ処理を行う場合と同様に、複数マシンが協働してデータ処理を行う場合でも、ステップS905〜S907の各処理では、Ta、Tbを算出した後に、TaとTbとを比較していたが、これに限らない。例えば、マスタマシン201は、ステップS905〜S907の各処理の代わりに、下記不等式を実行し、不等式が満たされればステップS907:Yesとし、不等式が満たされなければステップS907:Noとしてもよい。   On the other hand, when the task 111 is repeated n times (step S910: Yes), the master machine 201 ends data processing in a plurality of machines. Here, similarly to the case where a single machine performs data processing, even when a plurality of machines cooperate to perform data processing, Ta and Tb are calculated after Ta and Tb are calculated in steps S905 to S907. However, the present invention is not limited to this. For example, the master machine 201 may execute the following inequality instead of the processes of steps S905 to S907, and if the inequality is satisfied, step S907: Yes, and if the inequality is not satisfied, step S907: No may be performed.

Tb−Ta≧0   Tb-Ta ≧ 0

上記不等式の変形は、単一マシンがデータ処理を行う場合と同様であるため、説明を省略する。   Since the transformation of the inequality is the same as that in the case where a single machine performs data processing, a description thereof will be omitted.

以上説明したように、マスタマシン201は、インメモリ型のデータ処理のタスクの1回目を実行した際に、使用量uに基づき転送用領域を増やすことで短縮する時間と、メモリの割り当て変更にかかる時間ratとから、メモリの割り当て変更の要否を判断する。また、マスタマシン201は、実行時間Tbから実行時間Taを減じた時間rtに基づいて、メモリの割り当て変更の要否を判断してもよい。これにより、マスタマシン201は、メモリの割り当て変更にかかる時間ratを考慮して、メモリの割り当て変更の要否を適切に判断することができ、結果、データ処理にかかる時間を短縮することができる。   As described above, when the master machine 201 executes the first task of in-memory data processing, the master machine 201 can reduce the time required for increasing the transfer area based on the usage amount u, and change the memory allocation. From this time rat, it is determined whether or not the memory allocation needs to be changed. The master machine 201 may determine whether or not the memory allocation needs to be changed based on a time rt obtained by subtracting the execution time Ta from the execution time Tb. Accordingly, the master machine 201 can appropriately determine whether or not the memory allocation needs to be changed in consideration of the time rat required to change the memory allocation, and as a result, the time required for data processing can be reduced. .

また、マスタマシン201は、タスク111の実行中にディスクにタスク111の実行結果を書き出したと判定した場合に、時間rtを算出してもよい。これにより、タスク111の実行中にディスクにタスク111の実行結果を書き出したときに限り時間rtを算出することになるため、マスタマシン201にかかる負荷を抑えることができる。   Further, when the master machine 201 determines that the execution result of the task 111 is written to the disk during the execution of the task 111, the master machine 201 may calculate the time rt. As a result, the time rt is calculated only when the execution result of the task 111 is written to the disk during the execution of the task 111, so that the load on the master machine 201 can be suppressed.

また、マスタマシン201は、複数のスレーブマシン202の各々にタスク111を実行させ、複数のスレーブマシン202の全てがタスク111の完了後に、複数のスレーブマシン202の各々に転送処理を実行させ、再び、タスク111を実行させてもよい。これにより、インメモリ型データ処理システム200は、インメモリ型のデータ処理を、複数のスレーブマシン202を用いて分散しつつ並列に実行することができる。   Further, the master machine 201 causes each of the plurality of slave machines 202 to execute the task 111, and after all of the plurality of slave machines 202 complete the task 111, causes each of the plurality of slave machines 202 to execute transfer processing, and again The task 111 may be executed. Thereby, the in-memory type data processing system 200 can execute in-memory type data processing in parallel using a plurality of slave machines 202 while being distributed.

また、マスタマシン201は、複数マシンがデータ処理を行う場合、複数のスレーブマシン202のいずれかがタスク111の実行中にディスクにタスク111の実行結果を書き出した場合に、短縮時間を算出してもよい。これにより、複数マシンがデータ処理を行う場合でも、タスク111の実行中にディスクにタスク111の実行結果を書き出したスレーブマシン202がなければ短縮時間を算出しなくてよいため、マスタマシン201にかかる負荷を抑えることができる。   Further, the master machine 201 calculates the shortened time when a plurality of machines perform data processing, and when any of the plurality of slave machines 202 writes the execution result of the task 111 to the disk while the task 111 is being executed. Also good. As a result, even when a plurality of machines perform data processing, if there is no slave machine 202 that has written the execution result of the task 111 to the disk during the execution of the task 111, it is not necessary to calculate the shortened time. The load can be suppressed.

また、マスタマシン201は、メモリの割り当てに要する時間を考慮して、メモリ割り当て変更の要否を判断することができる。また、転送用領域でデータあふれが起きる際に発生する処理速度の低下を抑制することができる。   Further, the master machine 201 can determine whether or not it is necessary to change memory allocation in consideration of the time required for memory allocation. Further, it is possible to suppress a decrease in processing speed that occurs when data overflow occurs in the transfer area.

なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。   The control method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This control program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM (Compact Disc-Read Only Memory), a DVD (Digital Versatile Disk), etc., and is read from the recording medium by the computer. Executed. The control program may be distributed via a network such as the Internet.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)コンピュータに、
メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
処理を実行させることを特徴とする制御プログラム。
(Supplementary note 1)
Obtaining the size of the processing area used by the task when repeatedly executing the task and the size of the transfer area for transferring the execution result of the task, allocated from the storage area of the memory,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control program characterized by causing a process to be executed.

(付記2)前記コンピュータに、
前記タスクの実行履歴に基づいて、前記タスクの実行中に前記メモリが有する記憶領域とは異なる他の記憶領域に前記タスクの実行結果を書き出したか否かを判定する、処理を実行させ、
前記算出する処理は、
前記タスクの実行結果を前記他の記憶領域に書き出したと判定した場合、前記使用量と、取得した前記処理用領域のサイズと前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出する、
ことを特徴とする付記1に記載の制御プログラム。
(Supplementary note 2)
Based on the execution history of the task, it is determined whether or not the execution result of the task has been written to another storage area different from the storage area of the memory during the execution of the task.
The calculation process is as follows:
When it is determined that the execution result of the task has been written to the other storage area, the transfer is performed based on the usage amount based on the usage amount, the acquired size of the processing area, and the size of the transfer area. When the size of the area for use is changed, a reduction time for reducing the time taken to repeatedly execute the task is calculated.
The control program according to supplementary note 1, wherein:

(付記3)前記算出する処理は、
前記タスクを実行した際にかかった時間に基づいて、前記サイズを変更しない場合の前記タスクを繰り返し実行する際にかかる第1の時間を算出するとともに、前記タスクを実行した際にかかった時間と、前記使用量と、前記メモリの割り当て変更にかかる時間と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合の前記タスクを繰り返し実行する際にかかる第2の時間を算出し、
前記判断する処理は、
算出した前記第1の時間から前記第2の時間を減ずることにより得られる時間に基づいて、前記メモリの割り当てを変更するか否かを判断する、
ことを特徴とする付記2に記載の制御プログラム。
(Supplementary note 3) The calculation process is as follows.
Based on the time taken when the task is executed, the first time required for repeatedly executing the task when the size is not changed is calculated, and the time taken when the task is executed, Based on the usage amount, the size of the transfer area is changed based on the usage amount, the time taken to change the allocation of the memory, and the acquired size of the processing area and the size of the transfer area. Calculating the second time it takes to repeatedly execute the task of the case,
The determination process is as follows:
Determining whether to change the memory allocation based on a time obtained by subtracting the second time from the calculated first time;
The control program according to supplementary note 2, characterized by:

(付記4)前記コンピュータに接続する複数のコンピュータの各々のコンピュータが、前記各々のコンピュータのメモリが有する記憶領域のうちの前記各々のコンピュータの間で同一のサイズとなる処理用領域を用いて前記タスクを実行し、前記複数のコンピュータが前記タスクを完了させた後に当該記憶領域のうちの前記各々のコンピュータの間で同一のサイズとなる転送用領域を用いて前記各々のコンピュータの間で前記タスクの実行結果を転送し、転送された前記実行結果に基づいて前記タスクを再び実行する、
ことを特徴とする付記2または3に記載の制御プログラム。
(Supplementary Note 4) Each of the plurality of computers connected to the computer uses the processing area having the same size among the computers in the storage area of the memory of each of the computers. The task is executed between the computers using a transfer area having the same size among the computers in the storage area after the plurality of computers complete the task. Transfer the execution result of and execute the task again based on the transferred execution result.
The control program according to appendix 2 or 3, characterized by the above.

(付記5)前記取得する処理は、
前記複数のコンピュータのうちのいずれかのコンピュータから、当該処理用領域のサイズおよび当該転送用領域のサイズを取得し、
前記判定する処理は、
前記各々のコンピュータの前記タスクの実行履歴に基づいて、前記複数のコンピュータのうちのいずれかのコンピュータが前記タスクの実行中に当該いずれかのコンピュータが有するメモリが有する記憶領域とは異なる他の記憶領域に前記タスクの実行結果を書き出したか否かを判定し、
前記算出する処理は、
当該いずれかのコンピュータが前記タスクの実行結果を当該他の記憶領域に書き出したと判定した場合、前記タスクを実行した際に使用された前記タスクが用いた当該処理用領域の使用量と、取得した当該処理用領域のサイズおよび当該転送用領域のサイズとに基づいて、前記複数のコンピュータが前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
前記判断する処理は、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
ことを特徴とする付記4に記載の制御プログラム。
(Supplementary note 5)
Obtaining the size of the processing area and the size of the transfer area from any one of the plurality of computers,
The determination process is as follows.
Based on the task execution history of each of the computers, any one of the plurality of computers is different from the storage area of the memory of any of the computers during execution of the task. Determine whether the task execution result has been written to the area,
The calculation process is as follows:
When it is determined that one of the computers has written the execution result of the task to the other storage area, the usage amount of the processing area used by the task used when the task is executed, and the acquired Based on the size of the processing area and the size of the transfer area, calculate a reduction time for reducing the time required for the plurality of computers to repeatedly execute the task,
The determination process is as follows:
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
The control program according to supplementary note 4, characterized in that:

(付記6)前記算出する処理は、
前記タスクを実行した際にかかった時間に基づいて、前記サイズを変更しない場合の前記タスクを繰り返し実行する際にかかる第1の時間を算出するとともに、前記タスクを実行した際にかかった時間と、前記使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合の前記タスクを繰り返し実行する際にかかる第3の時間を算出し、
前記判断する処理は、
前記第1の時間から前記第3の時間を減じた時間と、前記メモリの割り当て変更にかかる時間との比較結果に基づいて、前記メモリの割り当てを変更するか否かを判断する、
ことを特徴とする付記1〜5のいずれか一つに記載の制御プログラム。
(Additional remark 6) The said process to calculate is
Based on the time taken when the task is executed, the first time required for repeatedly executing the task when the size is not changed is calculated, and the time taken when the task is executed, Repetitively executing the task when the size of the transfer area is changed based on the usage amount based on the usage amount, the acquired size of the processing area, and the size of the transfer area. Calculate the third time,
The determination process is as follows:
Determining whether to change the memory allocation based on a comparison result between a time obtained by subtracting the third time from the first time and a time required for the memory allocation change;
The control program according to any one of appendices 1 to 5, characterized in that:

(付記7)メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
制御部を有することを特徴とする制御装置。
(Appendix 7) Obtaining the size of the processing area allocated by the storage area included in the memory and used by the task when the task is repeatedly executed and the size of the transfer area for transferring the execution result of the task,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control device comprising a control unit.

(付記8)コンピュータが、
メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
処理を実行することを特徴とする制御方法。
(Appendix 8) The computer
Obtaining the size of the processing area used by the task when repeatedly executing the task and the size of the transfer area for transferring the execution result of the task, allocated from the storage area of the memory,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control method characterized by executing processing.

mp 処理用領域
mt 転送用領域
u 使用量
T1、T2 実行時間
101 制御装置
102 実行装置
111 タスク
201 マスタマシン
202−1〜m スレーブマシン
400 制御部
401 取得部
402 判定部
403 算出部
404 判断部
405 割り当て変更部
mp processing area mt transfer area u usage T1, T2 execution time 101 control device 102 execution device 111 task 201 master machine 202-1 to m slave machine 400 control unit 401 acquisition unit 402 determination unit 403 calculation unit 404 determination unit 405 Allocation change part

Claims (7)

コンピュータに、
メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
処理を実行させることを特徴とする制御プログラム。
On the computer,
Obtaining the size of the processing area used by the task when repeatedly executing the task and the size of the transfer area for transferring the execution result of the task, allocated from the storage area of the memory,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control program characterized by causing a process to be executed.
前記コンピュータに、
前記タスクの実行履歴に基づいて、前記タスクの実行中に前記メモリが有する記憶領域とは異なる他の記憶領域に前記タスクの実行結果を書き出したか否かを判定する、処理を実行させ、
前記算出する処理は、
前記タスクの実行結果を前記他の記憶領域に書き出したと判定した場合、前記使用量と、取得した前記処理用領域のサイズと前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出する、
ことを特徴とする請求項1に記載の制御プログラム。
In the computer,
Based on the execution history of the task, it is determined whether or not the execution result of the task has been written to another storage area different from the storage area of the memory during the execution of the task.
The calculation process is as follows:
When it is determined that the execution result of the task has been written to the other storage area, the transfer is performed based on the usage amount based on the usage amount, the acquired size of the processing area, and the size of the transfer area. When the size of the area for use is changed, a reduction time for reducing the time taken to repeatedly execute the task is calculated.
The control program according to claim 1, wherein:
前記算出する処理は、
前記タスクを実行した際にかかった時間に基づいて、前記サイズを変更しない場合の前記タスクを繰り返し実行する際にかかる第1の時間を算出するとともに、前記タスクを実行した際にかかった時間と、前記使用量と、前記メモリの割り当て変更にかかる時間と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合の前記タスクを繰り返し実行する際にかかる第2の時間を算出し、
前記判断する処理は、
算出した前記第1の時間から前記第2の時間を減ずることにより得られる時間に基づいて、前記メモリの割り当てを変更するか否かを判断する、
ことを特徴とする請求項2に記載の制御プログラム。
The calculation process is as follows:
Based on the time taken when the task is executed, the first time required for repeatedly executing the task when the size is not changed is calculated, and the time taken when the task is executed, Based on the usage amount, the size of the transfer area is changed based on the usage amount, the time taken to change the allocation of the memory, and the acquired size of the processing area and the size of the transfer area. Calculating the second time it takes to repeatedly execute the task of the case,
The determination process is as follows:
Determining whether to change the memory allocation based on a time obtained by subtracting the second time from the calculated first time;
The control program according to claim 2.
前記コンピュータに接続する複数のコンピュータの各々のコンピュータが、前記各々のコンピュータのメモリが有する記憶領域のうちの前記各々のコンピュータの間で同一のサイズとなる処理用領域を用いて前記タスクを実行し、前記複数のコンピュータが前記タスクを完了させた後に当該記憶領域のうちの前記各々のコンピュータの間で同一のサイズとなる転送用領域を用いて前記各々のコンピュータの間で前記タスクの実行結果を転送し、転送された前記実行結果に基づいて前記タスクを再び実行する、
ことを特徴とする請求項2または3に記載の制御プログラム。
Each of a plurality of computers connected to the computer executes the task using a processing area having the same size among the respective computers in a storage area of a memory of each of the computers. The execution result of the task between the computers using the transfer area having the same size among the computers in the storage area after the plurality of computers complete the task. Transfer, and execute the task again based on the transferred execution result,
The control program according to claim 2 or 3, wherein
前記取得する処理は、
前記複数のコンピュータのうちのいずれかのコンピュータから、当該処理用領域のサイズおよび当該転送用領域のサイズを取得し、
前記判定する処理は、
前記各々のコンピュータの前記タスクの実行履歴に基づいて、前記複数のコンピュータのうちのいずれかのコンピュータが前記タスクの実行中に当該いずれかのコンピュータが有するメモリが有する記憶領域とは異なる他の記憶領域に前記タスクの実行結果を書き出したか否かを判定し、
前記算出する処理は、
当該いずれかのコンピュータが前記タスクの実行結果を当該他の記憶領域に書き出したと判定した場合、前記タスクを実行した際に使用された前記タスクが用いた当該処理用領域の使用量と、取得した当該処理用領域のサイズおよび当該転送用領域のサイズとに基づいて、前記複数のコンピュータが前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
前記判断する処理は、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
ことを特徴とする請求項4に記載の制御プログラム。
The process to obtain is
Obtaining the size of the processing area and the size of the transfer area from any one of the plurality of computers,
The determination process is as follows.
Based on the task execution history of each of the computers, any one of the plurality of computers is different from the storage area of the memory of any of the computers during execution of the task. Determine whether the task execution result has been written to the area,
The calculation process is as follows:
When it is determined that one of the computers has written the execution result of the task to the other storage area, the usage amount of the processing area used by the task used when the task is executed, and the acquired Based on the size of the processing area and the size of the transfer area, calculate a reduction time for reducing the time required for the plurality of computers to repeatedly execute the task,
The determination process is as follows:
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
The control program according to claim 4.
メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
制御部を有することを特徴とする制御装置。
Obtaining the size of the processing area used by the task when repeatedly executing the task and the size of the transfer area for transferring the execution result of the task, allocated from the storage area of the memory,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control device comprising a control unit.
コンピュータが、
メモリが有する記憶領域から割り当てられた、タスクを繰り返し実行する際に前記タスクによって用いられる処理用領域のサイズおよび前記タスクの実行結果を転送する転送用領域のサイズを取得し、
前記タスクを実行した際に使用された前記タスクが用いた前記処理用領域の使用量と、取得した前記処理用領域のサイズおよび前記転送用領域のサイズとに基づいて、前記使用量に基づき前記転送用領域のサイズを変更した場合に前記タスクを繰り返し実行する際にかかる時間が短縮する短縮時間を算出し、
算出した前記短縮時間と、前記メモリの割り当て変更にかかる時間とに基づいて、前記メモリの割り当てを変更するか否かを判断する、
処理を実行することを特徴とする制御方法。
Computer
Obtaining the size of the processing area used by the task when repeatedly executing the task and the size of the transfer area for transferring the execution result of the task, allocated from the storage area of the memory,
Based on the usage amount of the processing area used by the task used when the task is executed, and the acquired size of the processing area and the size of the transfer area, based on the usage amount When the size of the transfer area is changed, the time required for repeatedly executing the task is calculated.
Determining whether to change the memory allocation based on the calculated shortened time and the time taken to change the memory allocation;
A control method characterized by executing processing.
JP2015249469A 2015-12-22 2015-12-22 Control program, control device, and control method Active JP6485343B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015249469A JP6485343B2 (en) 2015-12-22 2015-12-22 Control program, control device, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015249469A JP6485343B2 (en) 2015-12-22 2015-12-22 Control program, control device, and control method

Publications (2)

Publication Number Publication Date
JP2017117048A JP2017117048A (en) 2017-06-29
JP6485343B2 true JP6485343B2 (en) 2019-03-20

Family

ID=59234870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015249469A Active JP6485343B2 (en) 2015-12-22 2015-12-22 Control program, control device, and control method

Country Status (1)

Country Link
JP (1) JP6485343B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240265686A1 (en) * 2021-09-13 2024-08-08 Shimadzu Corporation Memory capacity determination system in learning of cell images and memory capacity determination method in learning of cell images

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104494B2 (en) * 2007-04-13 2015-08-11 Nec Corporation Virtual computer system and its optimization method
JP5941494B2 (en) * 2014-05-01 2016-06-29 ウイングアーク1st株式会社 In-memory management system and in-memory management program

Also Published As

Publication number Publication date
JP2017117048A (en) 2017-06-29

Similar Documents

Publication Publication Date Title
US8499010B2 (en) Garbage collection in a multiple virtual machine environment
US9032175B2 (en) Data migration between storage devices
US8443178B2 (en) Operating system image shrinking apparatus and method and computer readable tangible medium storing a program for operating system image shrinking
JP5808450B1 (en) Control device for executing sequential program using multi-core processor
US9547520B1 (en) Virtual machine load balancing
JP4894745B2 (en) Virtual machine migration control method
EP2804099A1 (en) Apparatus and method managing power based on data
US9288109B2 (en) Enabling cluster scaling
JP7035858B2 (en) Migration management program, migration method and migration system
US11163594B2 (en) Rescheduling JIT compilation based on jobs of parallel distributed computing framework
JP5321748B2 (en) Multi-core processor system, thread control method, and thread control program
JP6485343B2 (en) Control program, control device, and control method
CN104700255B (en) Multi-process processing method, device and system
JP5687603B2 (en) Program conversion apparatus, program conversion method, and conversion program
JP5780296B2 (en) Thread processing method and thread processing system
JP5671050B2 (en) Dynamic management of random access memory
WO2012098684A1 (en) Scheduling method and scheduling system
US10318422B2 (en) Computer-readable recording medium storing information processing program, information processing apparatus, and information processing method
JP6627475B2 (en) Processing resource control program, processing resource control device, and processing resource control method
JP2016062311A (en) Update device and information processing method
JP6524733B2 (en) Parallel computing device, parallel computing system, and job control program
JP4668562B2 (en) Memory management program and memory management method
JP5390947B2 (en) Job management system, job management apparatus and program thereof
JP6973856B2 (en) Information processing device, execution method and program modification method
JP2018156146A (en) Information processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6485343

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150