JP2010218307A - Distributed calculation controller and method - Google Patents

Distributed calculation controller and method Download PDF

Info

Publication number
JP2010218307A
JP2010218307A JP2009065232A JP2009065232A JP2010218307A JP 2010218307 A JP2010218307 A JP 2010218307A JP 2009065232 A JP2009065232 A JP 2009065232A JP 2009065232 A JP2009065232 A JP 2009065232A JP 2010218307 A JP2010218307 A JP 2010218307A
Authority
JP
Japan
Prior art keywords
calculation
distributed
processing
cost
virtual machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009065232A
Other languages
Japanese (ja)
Inventor
Hiroyasu Nishiyama
博泰 西山
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009065232A priority Critical patent/JP2010218307A/en
Publication of JP2010218307A publication Critical patent/JP2010218307A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the following problem: because a conventional Map/Reduce type distributed calculation processing system is configured by assuming a physical computer, a distributed arrangement method of calculation processing under environment using system virtualization technology or a communication method between virtual machines are not considered, so that deterioration of calculation processing performance occurs. <P>SOLUTION: In this distributed calculation controller and method for distributedly arranging a plurality of pieces of second calculation processing constituting first calculation processing in the plurality of virtual machines operating on one or more physical machines, various kinds of arrangement patterns wherein the plurality of pieces of the second calculation processing are distributedly arranged in the plurality of virtual machines are detected, cost of each arrangement pattern is calculated, the arrangement pattern wherein the cost becomes minimum is selected based on a calculation result of the calculation, and the plurality of pieces of the second calculation processing are distributedly arranged in the plurality of virtual machines according to the arrangement pattern. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は分散計算制御装置及び方法に関し、システム仮想化機能を用いて分散計算処理を行う分散計算システムに適用して好適なものである。   The present invention relates to a distributed calculation control apparatus and method, and is suitable for application to a distributed calculation system that performs distributed calculation processing using a system virtualization function.

近年、Webデータや、センサからの入力データ、音声データ及び動画データなどの大量かつ大規模なデータの処理要求が増大している。このような大量かつ大規模なデータを処理するための処理システムとして、Map/Reduce型の分散計算システムが存在する(非特許文献1参照)。   In recent years, processing demands for large-scale and large-scale data such as Web data, input data from sensors, audio data, and moving image data are increasing. As a processing system for processing such a large amount of large-scale data, there is a Map / Reduce type distributed computing system (see Non-Patent Document 1).

Map/Reduce型の分散計算システムでは、計算ノード上に仮想的な分散ファイルシステムを設け、1つの計算処理を複数の計算ノードで分散して行う。このとき、かかる分散計算システムでは、目的とする計算処理をMap処理及びReduce処理の2つの計算処理に分けて定義する。Map処理は、<key, value>の組で表わされたデータ集合を別の<key', value'>の組の集合へ変換する処理である。またReduce処理は、Map処理の処理結果を集計する処理である。   In a map / reduce type distributed calculation system, a virtual distributed file system is provided on a calculation node, and one calculation process is distributed among a plurality of calculation nodes. At this time, in such a distributed calculation system, the target calculation process is defined by being divided into two calculation processes of a map process and a reduce process. The Map process is a process of converting a data set represented by a set of <key, value> into a set of another set of <key ', value'>. The Reduce process is a process for counting the processing results of the Map process.

Map処理及びReduce処理間の入出力データは、分散計算システム上に構築された分散ファイルシステムを通してやり取りされる。分散ファイルシステムに対する操作は、分散ファイルシステムの管理プログラムと、Map/Reduce処理を実行するデータ処理プログラムとの間の通信により行われる。Map/Reduce型の分散計算処理では、分散ファイルシステム上のデータをデータブロックと呼ばれる単位に分割し、これらのデータブロックに対してMap処理及びReduce処理を順次適用する。   Input / output data between Map processing and Reduce processing is exchanged through a distributed file system constructed on a distributed computing system. An operation on the distributed file system is performed by communication between the management program of the distributed file system and a data processing program that executes Map / Reduce processing. In the Map / Reduce type distributed calculation processing, data on the distributed file system is divided into units called data blocks, and Map processing and Reduce processing are sequentially applied to these data blocks.

このようなMap/Reduce型の分散計算システムによれば、各データブロックに対する一連の計算処理を複数の計算ノードで同時に分散して実行することが可能となる。各計算ノードに対する処理の配置は、基本的に処理の完了順に処理を計算ノードに割り当てることにより行われる。   According to such a map / reduce type distributed calculation system, a series of calculation processes for each data block can be simultaneously distributed and executed by a plurality of calculation nodes. Arrangement of processes for each computation node is basically performed by assigning processes to the computation nodes in the order of completion of the processes.

一方、近年では、物理的なマシン(以下、これを物理マシンと呼ぶ)上で複数の仮想的なマシンを稼動させる技術が知られている。このような仮想化技術はシステム仮想化技術と呼ばれ、物理マシン上で動作する仮想的なマシンは仮想マシンと呼ばれる。仮想マシンは、当該仮想マシン上で動作するソフトウェアからは物理マシンと同様に見える。
J. Dean他,「MapReduce: Simplified Data Processing on Large Clusters」,In Proceedings of OSDI'04, 2004
On the other hand, in recent years, a technique for operating a plurality of virtual machines on a physical machine (hereinafter referred to as a physical machine) is known. Such a virtualization technique is called a system virtualization technique, and a virtual machine that operates on a physical machine is called a virtual machine. A virtual machine looks like a physical machine to software running on the virtual machine.
J. Dean et al., “MapReduce: Simplified Data Processing on Large Clusters”, In Proceedings of OSDI'04, 2004

従来のMap/Reduce型の分散計算システムは、Map処理やReduce処理を実行する個々の計算ノードが物理マシンであることを想定している。このため従来のMap/Reduce型の分散計算システムでは、システム仮想化技術を用いた環境下における計算処理の分散配置方法や、仮想マシン間における通信方法については何らの考慮もされていない。この結果、従来のMap/Reduce型の分散計算システムでは、システム仮想化技術を用いた環境下においては、システム全体として計算処理性能が低下するという事態が生じていた。   A conventional Map / Reduce type distributed computation system assumes that each computation node that executes Map processing and Reduce processing is a physical machine. For this reason, in the conventional Map / Reduce type distributed computing system, no consideration is given to the distributed arrangement method of calculation processing in an environment using system virtualization technology and the communication method between virtual machines. As a result, in the conventional map / reduce type distributed computing system, there has been a situation in which the computing performance of the entire system deteriorates in an environment using system virtualization technology.

本発明は以上の点を考慮してなされたもので、システム仮想化技術を用いた環境下における計算処理性能を向上させ得る分散計算制御装置及び方法を提案しようとするものである。   The present invention has been made in consideration of the above points, and an object of the present invention is to propose a distributed calculation control apparatus and method capable of improving the calculation processing performance in an environment using a system virtualization technique.

かかる課題を解決するため本発明においては、第1の計算処理を構成する複数の第2の計算処理を、1又は複数の物理マシン上で動作する複数の仮想マシンに分散配置する分散計算制御装置において、前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する各種の配置パターンを検出する配置パターン検出部と、前記配置パターンごとのコストを計算するコスト計算部と、前記コスト計算部の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従って前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する分散配置部とを備えることを特徴とする。   In order to solve such a problem, in the present invention, a distributed calculation control device that distributes and arranges a plurality of second calculation processes constituting the first calculation process in a plurality of virtual machines operating on one or a plurality of physical machines. The arrangement pattern detection unit for detecting various arrangement patterns for distributing and arranging the plurality of second calculation processes in the plurality of virtual machines, the cost calculation unit for calculating the cost for each arrangement pattern, and the cost calculation A distribution arrangement unit that selects an arrangement pattern that minimizes the cost based on the calculation results of the units, and distributes the plurality of second calculation processes to the plurality of virtual machines according to the arrangement pattern. And

また本発明においては、第1の計算処理を構成する複数の第2の計算処理を、1又は複数の物理マシン上で動作する複数の仮想マシンに分散配置する分散計算制御方法において、前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する各種の配置パターンを検出する第1のステップと、前記配置パターンごとのコストを計算する第2のステップと、当該計算の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従って前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する第3のステップとを備えることを特徴とする。   According to the present invention, in the distributed calculation control method for distributing and arranging a plurality of second calculation processes constituting the first calculation process in a plurality of virtual machines operating on one or a plurality of physical machines, Based on a first step of detecting various arrangement patterns in which the second calculation process is distributed and arranged in the plurality of virtual machines, a second step of calculating a cost for each of the arrangement patterns, and a calculation result of the calculation And a third step of selecting an arrangement pattern with the lowest cost and distributing the plurality of second calculation processes to the plurality of virtual machines according to the arrangement pattern.

本発明によれば、システム仮想化技術を用いた環境下における計算処理性能を向上させることができる。   ADVANTAGE OF THE INVENTION According to this invention, the calculation processing performance in the environment using a system virtualization technique can be improved.

以下図面について、本発明の一実施の形態を詳述する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

(1)第1の実施の形態
図1において、100は全体として本実施の形態による分散計算システムを示す。この分散計算システム100は、分散計算制御ノード101、第1及び第2の分散計算ノード102,103並びにネットワーク104から構成される。なお、図1では分散計算ノードが2台(第1及び第2の分散計算ノード102,103)存在する場合について例示しているが、分散計算システム100内に3以上の分散計算ノードが存在する場合であっても本発明を適用することができる。
(1) 1st Embodiment In FIG. 1, 100 shows the distributed calculation system by this embodiment as a whole. The distributed calculation system 100 includes a distributed calculation control node 101, first and second distributed calculation nodes 102 and 103, and a network 104. Although FIG. 1 illustrates the case where there are two distributed calculation nodes (first and second distributed calculation nodes 102 and 103), there are three or more distributed calculation nodes in the distributed calculation system 100. Even in this case, the present invention can be applied.

分散計算制御ノード101は、ハードウェア110及び外部記憶装置111を備えて構成される。ハードウェア110は、CPU(Central Processing Unit)110A及び共有メモリ等の情報処理資源を備えており、このハードウェア110上で分散計算制御システム112が動作する。   The distributed computation control node 101 includes hardware 110 and an external storage device 111. The hardware 110 includes information processing resources such as a CPU (Central Processing Unit) 110 </ b> A and a shared memory, and the distributed calculation control system 112 operates on the hardware 110.

分散計算制御システム112は、ハードウェア110を構成するCPU110Aが外部記憶装置111に格納された対応するプログラムを実行することにより実現される機能であり、外部記憶装置111に格納された分散計算定義113を読み込み、当該分散計算定義113に基づいて第1及び第2の分散計算ノード102,103に対する計算処理の分散配置を行う。分散計算制御システム112は、本分散計算システム100の特徴的な処理であるジョブ配置処理を実行するための機能であるジョブ配置処理部114を備える。   The distributed calculation control system 112 is a function realized by the CPU 110 </ b> A constituting the hardware 110 executing a corresponding program stored in the external storage device 111, and the distributed calculation definition 113 stored in the external storage device 111. Is distributed based on the distributed calculation definition 113 for the first and second distributed calculation nodes 102 and 103. The distributed computation control system 112 includes a job placement processing unit 114 that is a function for executing job placement processing that is characteristic processing of the present distributed computation system 100.

第1及び第2の分散計算ノード102,103は、ハードウェア120,130と、外部記憶装置121,131とを備えて構成される。ハードウェア120,130は、CPU(Central Processing Unit)120A,130A及び共有メモリ120B,130B等の情報処理資源を備えており、このハードウェア120,130上でシステム仮想化機能122,132が動作する。   The first and second distributed computation nodes 102 and 103 include hardware 120 and 130 and external storage devices 121 and 131. The hardware 120 and 130 includes information processing resources such as CPUs (Central Processing Units) 120A and 130A and shared memories 120B and 130B, and the system virtualization functions 122 and 132 operate on the hardware 120 and 130. .

システム仮想化機能122,132は、ハードウェア120,130を構成するCPU120A,130Aが同じ分散計算ノード102,103内の外部記憶装置121,131に格納された対応するプログラムを実行することにより実現される機能である。そして第1の分散計算ノード102のシステム仮想化機能122上で仮想マシン123,124が動作し、これら仮想マシン123,124上で分散処理アプリケーション125,126が動作する。また第2の分散計算ノード103のシステム仮想化機能132上では仮想マシン134,135が動作し、これら仮想マシン134,135上で分散処理アプリケーション136,136が動作する。なお図1では、システム仮想化機能122,132上で動作する仮想マシンの数がそれぞれ2つである場合について例示しているが、システム仮想化機能122,132上で動作する仮想マシンの数が3以上である場合でも本発明を適用することができる。   The system virtualization functions 122 and 132 are realized by the CPUs 120A and 130A constituting the hardware 120 and 130 executing corresponding programs stored in the external storage devices 121 and 131 in the same distributed computing nodes 102 and 103. It is a function. Then, virtual machines 123 and 124 operate on the system virtualization function 122 of the first distributed computing node 102, and distributed processing applications 125 and 126 operate on these virtual machines 123 and 124. In addition, virtual machines 134 and 135 operate on the system virtualization function 132 of the second distributed computing node 103, and distributed processing applications 136 and 136 operate on these virtual machines 134 and 135. 1 illustrates the case where the number of virtual machines operating on the system virtualization functions 122 and 132 is two, the number of virtual machines operating on the system virtualization functions 122 and 132 is illustrated. The present invention can be applied even when the number is three or more.

同一の分散計算ノード(第1又は第2の分散計算ノード102,103)上で動作する仮想マシン123,124又は134,135間は、その第1又は第2の分散計算ノード102,103内の共有メモリ120B,130Bを利用した通信路127,137によって高速にデータ転送を行うことができる。一方、別の分散計算ノード上で動作する仮想マシン123,124又は134,135間は、ネットワーク104を介したより低速な通信路140を介してデータ転送が行われる。   Between the virtual machines 123, 124 or 134, 135 operating on the same distributed computing node (first or second distributed computing node 102, 103), the first or second distributed computing node 102, 103 Data can be transferred at high speed by the communication paths 127 and 137 using the shared memories 120B and 130B. On the other hand, data is transferred between the virtual machines 123, 124 or 134, 135 operating on another distributed computing node via a slower communication path 140 via the network 104.

図2は、従来の分散計算システム200の構成例を示す。この分散計算システム200は、分散計算制御ノード201と、第1〜第4の分散計算ノード202〜205とがネットワーク206を介して接続されることにより構成されている。   FIG. 2 shows a configuration example of a conventional distributed computing system 200. The distributed calculation system 200 is configured by connecting a distributed calculation control node 201 and first to fourth distributed calculation nodes 202 to 205 via a network 206.

分散計算制御ノード201は、ハードウェア210及び外部記憶装置211を備えて構成され、ハードウェア210上で分散計算制御システム212が動作する。分散計算制御システム212は、ハードウェア210を構成するCPUが外部記憶装置211に格納された対応するプログラムを実行することにより実現される機能であり、外部記憶装置211に格納された分散計算定義213を読み込み、第1〜第4の分散計算ノード202〜205に対する計算処理の分散配置を行う。   The distributed calculation control node 201 includes hardware 210 and an external storage device 211, and the distributed calculation control system 212 operates on the hardware 210. The distributed calculation control system 212 is a function realized by the CPU constituting the hardware 210 executing a corresponding program stored in the external storage device 211, and the distributed calculation definition 213 stored in the external storage device 211. Is distributed and calculation processing is distributed to the first to fourth distributed calculation nodes 202 to 205.

第1〜第4の分散計算ノード202〜205は、それぞれハードウェア220,230,240,250と外部記憶装置221,231,241,251から構成される。ハードウェア220,230,240,250は、CPU、メモリ及び通信インタフェース等の情報処理資源から構成されており、これらのハードウェア220,230,240,250上でそれぞれ分散計算アプリケーション222,232,242,252が動作する。分散計算アプリケーション222,232,242,252間におけるデータ転送は、比較的低速のネットワーク206を利用した通信路260を介して行われる。   The first to fourth distributed computation nodes 202 to 205 are configured by hardware 220, 230, 240, 250 and external storage devices 221, 231, 241, 251 respectively. The hardware 220, 230, 240, 250 includes information processing resources such as a CPU, a memory, and a communication interface, and the distributed computing applications 222, 232, 242 on these hardware 220, 230, 240, 250, respectively. 252 operates. Data transfer between the distributed calculation applications 222, 232, 242, and 252 is performed via a communication path 260 using a relatively low-speed network 206.

図3は、本発明が対象としている分散計算処理の定義を示す。分散計算処理は、Map処理301及びReduce処理302からなる。Map処理301は、複数の<key, value>の対を各々の分散計算ノード102,103上の外部記憶装置121,131に格納された分散ファイルシステムのデータブロックから入力し、<key, 1>の対を出力する。Reduce処理では、各々のkeyについて、その出現回数を集計し、<key, 集計値>を出力する。なお、以下においては、個々のMap処理301及びReduce処理を、適宜、単位計算処理と呼ぶものとする。   FIG. 3 shows the definition of the distributed calculation process targeted by the present invention. The distributed calculation process includes a map process 301 and a reduce process 302. The map processing 301 inputs a plurality of <key, value> pairs from the data blocks of the distributed file system stored in the external storage devices 121 and 131 on the respective distributed computing nodes 102 and 103, and <key, 1>. Output a pair of In Reduce processing, the number of occurrences of each key is totaled and <key, total value> is output. In the following, each Map process 301 and Reduce process will be appropriately referred to as a unit calculation process.

かかる一連の計算処理を、図2について上述した従来の分散計算システム200において分散配置する場合の配置例を図5に示す。図5の例では、第1〜第4の分散計算ノード202〜205内のハードウェア220,230,240,250において個々のデータ501に対するMap処理502及び又はReduce処理503が実行され、最終的な結果であるデータ504が出力される。   FIG. 5 shows an arrangement example in which such a series of calculation processing is distributed in the conventional distributed calculation system 200 described above with reference to FIG. In the example of FIG. 5, the Map processing 502 and / or the Reduce processing 503 for the individual data 501 are executed in the hardware 220, 230, 240, 250 in the first to fourth distributed computing nodes 202-205, and the final The result data 504 is output.

この場合において、第1〜第4の分散計算ノード202〜205はそれぞれ独立した存在であるため、ハードウェア220,230,240,250間のデータ転送はネットワーク206を利用した低速な通信路260を介して行う必要がある。例えば図5において、「BLK#1」というデータ501に対する「MAP#1」というMAP処理503の処理結果と、「BLK#2」というデータ501に対する「MAP#2」というMAP処理503の処理結果とを「RED#1」というReduce処理で利用するためには、「MAP#2」というMAP処理503の処理結果を「RED#1」というReduce処理を実行するハードウェア(ハードウェア220,230,240,250のいずれか)に転送する必要がある。   In this case, since the first to fourth distributed computation nodes 202 to 205 are independent from each other, data transfer between the hardware 220, 230, 240, and 250 is performed via the low-speed communication path 260 using the network 206. Need to do through. For example, in FIG. 5, the processing result of the MAP process 503 “MAP # 1” for the data 501 “BLK # 1” and the processing result of the MAP process 503 “MAP # 2” for the data 501 “BLK # 2” Is used in the Reduce process “RED # 1”, the hardware (hardware 220, 230, 240) that executes the Reduce process “RED # 1” from the processing result of the MAP process 503 “MAP # 2”. , 250).

一方、図4(A)及び(B)は、図3に示す一連の計算処理を、本実施の形態による分散計算システム100(図1)において分散配置する場合の配置例を示す。   On the other hand, FIGS. 4A and 4B show an arrangement example when the series of calculation processing shown in FIG. 3 is distributed in the distributed calculation system 100 (FIG. 1) according to the present embodiment.

図4(A)は、「MAP#1」及び「MAP#2」という2つのMap処理402と、これに続く「RED#1」というReduce処理403とを同一のハードウェア120上で実行し、「MAP#3」及び「MAP#4」という2つのMap処理403と、これに続く「RED#2」というReduce処理404とを同一のハードウェア130上で実行するパターン(パターン#1)を示す。   In FIG. 4A, two Map processes 402 “MAP # 1” and “MAP # 2” and a subsequent Reduce process 403 “RED # 1” are executed on the same hardware 120. A pattern (pattern # 1) in which two Map processes 403 "MAP # 3" and "MAP # 4" and a subsequent Reduce process 404 "RED # 2" are executed on the same hardware 130 is shown. .

また図4(B)は、「MAP#1」及び「MAP#2」という2つのMap処理403と、これに続く「RED#1」というReduce処理404とを別々のハードウェア120,130上で実行し、「MAP#3」及び「MAP#4」という2つのMap処理403と、これに続く「RED#2」というReduce処理404とを別々のハードウェア130,120上で実行するパターン(パターン#2)を示す。   4B shows that two Map processes 403 “MAP # 1” and “MAP # 2” and a subsequent Reduce process 404 “RED # 1” are performed on different hardware 120 and 130. A pattern (pattern that executes two Map processes 403 “MAP # 3” and “MAP # 4” and a subsequent Reduce process 404 “RED # 2” on different hardware 130 and 120. # 2).

図4(A)のパターン(パターン#1)では、Map処理403の処理結果をReduce処理404で利用する際のデータ転送を高速な通信路127(図1)を介して行うことができるのに対し、図4(B)のパターン(パターン#2)では、Map処理403の処理結果をReduce処理404で利用する際のデータ転送を低速な通信路140(図1)を介して行うことが必要となる。   In the pattern (pattern # 1) in FIG. 4A, the data transfer when the processing result of the map process 403 is used in the reduce process 404 can be performed via the high-speed communication path 127 (FIG. 1). On the other hand, in the pattern (pattern # 2) of FIG. 4B, it is necessary to perform data transfer when using the processing result of the Map process 403 in the Reduce process 404 via the low-speed communication path 140 (FIG. 1). It becomes.

図6は、図1の分散計算制御システム112の具体的な構成を示す。この図6に示すように、分散計算制御システム112は、分散計算処理全体の制御を行うジョブ制御部601と、個別の単位計算処理の制御を行うタスク制御部602と、分散ファイルシステム上の個別データの管理を行うデータ管理部603と、分散ファイルシステムの論理データの管理を行うメタデータ管理部604とから構成される。   FIG. 6 shows a specific configuration of the distributed calculation control system 112 of FIG. As shown in FIG. 6, the distributed calculation control system 112 includes a job control unit 601 that controls the entire distributed calculation processing, a task control unit 602 that controls individual unit calculation processing, and an individual on the distributed file system. A data management unit 603 that manages data and a metadata management unit 604 that manages logical data of the distributed file system are configured.

タスク制御部602及びデータ管理部603は、第1及び第2の分散計算ノード102,103上に複数存在する。ジョブ制御部601は、本分散計算システム100の特徴的な処理であるジョブ配置処理を実行するジョブ配置処理部114を備える。ジョブ配置処理部114は、分散計算定義113を入力として個々の分散計算処理をどの仮想マシンに配置するかを計算し、計算結果に基づいてタスク制御部602を制御する。   A plurality of task control units 602 and data management units 603 exist on the first and second distributed computation nodes 102 and 103. The job control unit 601 includes a job placement processing unit 114 that executes job placement processing that is characteristic processing of the distributed computing system 100. The job placement processing unit 114 receives the distributed calculation definition 113 as an input, calculates which virtual machine the individual distributed calculation processing is placed in, and controls the task control unit 602 based on the calculation result.

ジョブ配置処理部114により実行されるジョブ配置処理の処理手順を図7に示す。ジョブ配置処理部114は、例えばユーザ操作等に応じてこの図7に示すジョブ配置処理を開始し、まず、ユーザにより入力設定された計算処理のフローグラフ(以下、これを処理フローグラフGと呼ぶ)と、そのとき利用可能な仮想マシンの集合(以下、これを仮想マシン集合Mと呼ぶ)とを求める(SP1)。   FIG. 7 shows a processing procedure of job placement processing executed by the job placement processing unit 114. The job placement processing unit 114 starts the job placement processing shown in FIG. 7 in response to, for example, a user operation. First, a flow graph of calculation processing input by the user (hereinafter referred to as a processing flow graph G). ) And a set of virtual machines available at that time (hereinafter referred to as a virtual machine set M) (SP1).

なお、処理フローグラフGは、既存のコンパイラ実装技術により求めることができる。ステップSP1の処理により、例えば図4(A)及び(B)に示すような処理フローグラフGを得ることができる。また仮想マシン集合Mは、分散計算システム100内に存在するすべての仮想マシンの情報を収集し、これら仮想マシンの中から利用可能な仮想マシンを抽出することにより求めることができる。   The processing flow graph G can be obtained by existing compiler mounting technology. By the processing in step SP1, for example, a processing flow graph G as shown in FIGS. 4A and 4B can be obtained. The virtual machine set M can be obtained by collecting information on all virtual machines existing in the distributed computing system 100 and extracting available virtual machines from these virtual machines.

続いてジョブ配置処理部114は、処理フローグラフGの各要素(単位計算処理)を、それぞれ仮想マシン集合Mに属するいずれかの仮想マシンにランダムに配置したパターン(以下、これを配置パターンqと呼ぶ)の集合(以下、これを配置パターン集合Qと呼ぶ)を求める(SP2)。そしてジョブ配置処理部114は、このようにして得られた配置パターン集合Qの情報をハードウェア110(図1)内の図示しないメモリに保存する。   Subsequently, the job arrangement processing unit 114 randomly arranges each element (unit calculation process) of the processing flow graph G in any of the virtual machines belonging to the virtual machine set M (hereinafter referred to as an arrangement pattern q). (Referred to as an arrangement pattern set Q hereinafter) (SP2). Then, the job arrangement processing unit 114 stores the information of the arrangement pattern set Q obtained in this way in a memory (not shown) in the hardware 110 (FIG. 1).

図8は、図4に示す一連の計算処理を図1の分散計算システム100で実行する場合における配置パターン集合Qを示す。この配置パターン集合Qには、「MAP#1」〜「MAP#4」という4つのMap処理と、「RED#1」及び「RED#2」という2つのReduce処理とを、それぞれ「VM#1」〜「VM#4」という4つの仮想マシン123,124,133,134に分散配置した場合の全配置パターンqが含まれる。   FIG. 8 shows an arrangement pattern set Q when the series of calculation processes shown in FIG. 4 is executed by the distributed calculation system 100 of FIG. In this arrangement pattern set Q, four Map processes “MAP # 1” to “MAP # 4” and two Reduce processes “RED # 1” and “RED # 2” are respectively referred to as “VM # 1”. ”To“ VM # 4 ”, the entire arrangement pattern q in the case of distributed arrangement in the four virtual machines 123, 124, 133, and 134 is included.

図8では、各行が個々の配置パターンqを表しており、例えば、項番が「1」の配置パターンqは、すべての単位計算処理(4つのMap処理及び2つのReduce処理のすべて)を「VM#1」という仮想マシン123に配置した配置パターンを表し、項番が「2」の配置パターンqは、4つのMap処理及び1つのReduce処理(「RED#1」)を「VM#1」という仮想マシン123に配置し、もう1つのReduce処理(「RED#2」)を「VM#2」という仮想マシン124に配置した配置パターンを表す。   In FIG. 8, each row represents an individual arrangement pattern q. For example, an arrangement pattern q having an item number “1” represents all unit calculation processes (all four Map processes and two Reduce processes) as “ “VM # 1” represents an arrangement pattern arranged in the virtual machine 123, and an arrangement pattern q having an item number “2” is obtained by performing four Map processes and one Reduce process (“RED # 1”) on “VM # 1”. Represents a placement pattern in which another Reduce process (“RED # 2”) is placed in the virtual machine 124 called “VM # 2”.

次いでジョブ配置処理部114は、上述の配置パターン集合Qを構成する各配置パターンqについて、そのコスト合計値Cqをそれぞれ計算する(SP3)。さらにジョブ配置処理部114は、かかるコスト合計値Cqが最低となるような配置パターンqを選択し(SP4)、この後、このジョブ配置処理を終了する。   Next, the job placement processing unit 114 calculates the total cost value Cq of each placement pattern q constituting the placement pattern set Q described above (SP3). Furthermore, the job arrangement processing unit 114 selects an arrangement pattern q that minimizes the total cost value Cq (SP4), and thereafter ends the job arrangement process.

以上のジョブ配置処理のステップSP3におけるジョブ配置処理部114の具体的な処理内容を図9に示す。ジョブ配置処理部114は、ジョブ配置処理のステップSP3に進むと、この図9に示すコスト計算処理を開始し、まず、ジョブ配置処理のステップSP2において求めた配置パターン集合Qの情報をメモリから読み出す(SP10)。   FIG. 9 shows specific processing contents of the job placement processing unit 114 in step SP3 of the job placement processing described above. When the job placement processing unit 114 proceeds to step SP3 of the job placement processing, the job placement processing portion 114 starts the cost calculation processing shown in FIG. 9, and first reads out information of the placement pattern set Q obtained in step SP2 of the job placement processing from the memory. (SP10).

続いてジョブ配置処理部114は、配置パターン集合Qが空集合であるか否かを判定し(SP11)、配置パターン集合Qが空集合である場合には(SP11:YES)、このコスト計算処理を終了してジョブ配置処理に戻る。   Subsequently, the job arrangement processing unit 114 determines whether or not the arrangement pattern set Q is an empty set (SP11). If the arrangement pattern set Q is an empty set (SP11: YES), this cost calculation process is performed. To return to the job placement process.

これに対してジョブ配置処理部114は、かかる配置パターン集合Qが空集合でない場合には(SP11:NO)、配置パターン集合Qから要素(配置パターンq)を1つ取り出し、その配置パターンqを配置パターン集合Qから削除する。またジョブ配置処理部114は、その配置パターンqにおける個々の単位計算処理がそれぞれ割り当てられた仮想マシンの集合(以下、これを割当て仮想マシン集合Pと呼ぶ)を求める。さらにジョブ配置処理部114は、上述のコスト合計値Cqを「0」に初期化する(SP12)。   On the other hand, when the arrangement pattern set Q is not an empty set (SP11: NO), the job arrangement processing unit 114 extracts one element (arrangement pattern q) from the arrangement pattern set Q, and determines the arrangement pattern q. Delete from the arrangement pattern set Q. Further, the job placement processing unit 114 obtains a set of virtual machines to which each unit calculation process in the placement pattern q is assigned (hereinafter referred to as an assigned virtual machine set P). Furthermore, the job placement processing unit 114 initializes the above-described total cost value Cq to “0” (SP12).

続いてジョブ配置処理部114は、割当て仮想マシン集合Pが空集合か否かを判断する(SP13)。そしてジョブ配置処理部114は、かかる割当て仮想マシン集合Pが空集合でない場合には(SP13:NO)、割当て仮想マシン集合Pから要素p(単位計算処理が割り当てられた仮想マシン)を1つ選択し、選択した仮想マシンを割当て仮想マシン集合Pから除去する。またジョブ配置処理部114は、その選択した仮想マシンに関するコストCpを計算し、得られたコストCpをコスト合計値Cqに加算する(SP14)。   Subsequently, the job placement processing unit 114 determines whether or not the assigned virtual machine set P is an empty set (SP13). If the assigned virtual machine set P is not an empty set (SP13: NO), the job placement processing unit 114 selects one element p (virtual machine to which unit calculation processing is assigned) from the assigned virtual machine set P. Then, the selected virtual machine is removed from the assigned virtual machine set P. The job placement processing unit 114 calculates the cost Cp related to the selected virtual machine, and adds the obtained cost Cp to the total cost value Cq (SP14).

続いてジョブ配置処理部114は、ステップSP13に戻り、この後、そのとき対象としている配置パターンqの割当て仮想マシン集合Pが空集合となるまで、同様の処理を繰り返す(SP13−SP14−SP13)。   Subsequently, the job placement processing unit 114 returns to step SP13, and thereafter repeats the same processing until the assigned virtual machine set P of the target placement pattern q becomes an empty set (SP13-SP14-SP13). .

そしてジョブ配置処理部114は、やがてそのとき対象としている配置パターンqの割当て仮想マシン集合Pに含まれる各仮想マシンに対するコストCpをすべて合計したコスト合計値Cqを得ることによりステップSP13において肯定結果を得ると(SP13:YES)、その配置パターンqのコスト合計値Cqを記憶した後(SP15)、ステップSP11に戻る。   Then, the job placement processing unit 114 eventually obtains an affirmative result in step SP13 by obtaining the total cost value Cq obtained by summing all the costs Cp for the virtual machines included in the assigned virtual machine set P of the placement pattern q that is the target at that time. If obtained (SP13: YES), after storing the cost total value Cq of the arrangement pattern q (SP15), the process returns to step SP11.

またジョブ配置処理部114は、この後、ステップSP11において肯定結果を得るまで同様の処理を繰り返す(SP11〜SP15)。そしてジョブ配置処理部114は、やがてステップSP10において取得した配置パターン集合Qを構成するすべての配置パターンqについて同様の処理を終えることによりステップSP11において肯定結果を得ると、このコスト計算処理を終了する。   The job placement processing unit 114 thereafter repeats the same processing until a positive result is obtained in step SP11 (SP11 to SP15). When the job placement processing unit 114 eventually obtains a positive result in step SP11 by completing the same processing for all the placement patterns q constituting the placement pattern set Q acquired in step SP10, it ends this cost calculation processing. .

なお、上述のコスト計算処理のステップSP15における個々の単位計算処理に関するコスト計算処理時には、最適化したい対象に応じて、適宜、条件を設定することができる。かかる条件としては、実行時間、消費電力及び又はI/O量などを適用することが考えられる。このような条件の一例を図10に示す。条件欄1000に示す条件にマッチする場合、その処理をその仮想マシンに割り当てたときのコストがコスト欄1001に示すコストとして計算される。   It should be noted that conditions can be set as appropriate according to the target to be optimized during the cost calculation process related to each unit calculation process in step SP15 of the above-described cost calculation process. As such conditions, it is conceivable to apply execution time, power consumption, and / or I / O amount. An example of such conditions is shown in FIG. When the condition shown in the condition column 1000 is matched, the cost when the process is assigned to the virtual machine is calculated as the cost shown in the cost column 1001.

この場合において、本実施の形態においては、Map処理と、当該Map処理の処理結果を利用するReduce処理とを同一のハードウェア120,130上で動作する仮想マシンに割り当てることを目的として、このような関係を有するMap処理及びReduce処理が、同一のハードウェア120,130上で動作する1又は複数の仮想マシンに分散配置されているときのコストが低く設定され(図10の項番「1」参照)、かかる関係を有するMap処理及びReduce処理が、異なるハードウェア120,130上で動作する1又は複数の仮想マシンに分散配置されているときのコスト高く設定されている(図10の項番「2」参照)。   In this case, in the present embodiment, for the purpose of allocating the Map process and the Reduce process using the processing result of the Map process to the virtual machines operating on the same hardware 120 and 130, The cost when the Map processing and Reduce processing having the above relationship are distributed and arranged in one or a plurality of virtual machines operating on the same hardware 120, 130 is set low (item number “1” in FIG. 10). The map processing and the Reduce processing having such a relationship are set high in cost when they are distributed and arranged in one or a plurality of virtual machines operating on different hardware 120 and 130 (item numbers in FIG. 10). (See “2”).

この結果、図4(A)の配置パターンには図10の項番「1」の条件のみが該当するため、この配置パターンのコストは「1」と計算することができる。また図4(B)の配置パターンには図10の項番「2」〜「5」の条件が該当するため、この配置パターンのコストは「18」と計算することができる。よって、図4(A)及び(B)の例の場合、ジョブ配置処理部114は、図7のステップSP4において図4(A)の配置パターンを選択することとなり、より高性能な分散配置を行うことが可能となる。   As a result, since only the condition of item number “1” in FIG. 10 is applicable to the arrangement pattern in FIG. 4A, the cost of this arrangement pattern can be calculated as “1”. Further, since the conditions of item numbers “2” to “5” in FIG. 10 correspond to the arrangement pattern of FIG. 4B, the cost of this arrangement pattern can be calculated as “18”. Therefore, in the example of FIGS. 4A and 4B, the job placement processing unit 114 selects the placement pattern of FIG. 4A in step SP4 of FIG. Can be done.

以上の観点より、本実施の形態の場合、コスト計算時の条件が登録された図10に示すような条件テーブルが外部記憶装置111に格納されており、ジョブ配置処理部114は、この条件テーブルを参照して、コスト計算処理のステップSP15におけるコスト計算処理を実行する。   From the above viewpoint, in the case of the present embodiment, a condition table as shown in FIG. 10 in which the conditions at the time of cost calculation are registered is stored in the external storage device 111. The cost calculation process in step SP15 of the cost calculation process is executed with reference to FIG.

図11は、コスト計算処理のステップSP15において実行される、そのとき対象としている配置パターンqの割当て仮想マシン集合Pの要素pごとのコスト計算処理について、実行時間を条件とした場合の処理内容の一例を示す。   FIG. 11 shows the processing contents when the execution time is a condition for the cost calculation processing for each element p of the allocation virtual machine set P of the allocation pattern q to be executed at that time in step SP15 of the cost calculation processing. An example is shown.

ジョブ配置処理部114は、図9について上述したジョブ配置処理のステップSP15に進むと、この図11に示す要素コスト計算処理を開始し、上述のコストCp及び後述する合計通信時間ptをそれぞれ「0」に初期化する(SP20)。   When the job placement processing unit 114 proceeds to step SP15 of the job placement process described above with reference to FIG. 9, it starts the element cost calculation process shown in FIG. ”(SP20).

続いて、ジョブ配置処理部114は、そのとき対象としている仮想マシン集合Pの要素p(単位計算処理が割り当てられた仮想マシン)の通信先となる仮想マシン(以下、これを通信先仮想マシンと呼ぶ)の集合(以下、適宜、これを通信先集合Dと呼ぶ)を求め(SP21)、この通信先集合Dが空集合であるか否かを判断する(SP22)。   Subsequently, the job placement processing unit 114 is a virtual machine (hereinafter referred to as a communication destination virtual machine) that is a communication destination of the element p (a virtual machine to which unit calculation processing is assigned) of the target virtual machine set P at that time. (Referred to as a communication destination set D hereinafter) (SP21), and determines whether the communication destination set D is an empty set (SP22).

そしてジョブ配置処理部114は、かかる判断において否定結果を得ると(SP23)、通信先集合Dの要素d(通信先仮想マシン)を1つ取り出し、その通信先仮想マシンを通信先集合Dから削除する。またジョブ配置処理部114は、そのとき対象としている単位計算処理が割り当てられた仮想マシン(以下、適宜、これを通信元仮想マシンと呼ぶ)と、その通信先仮想マシンとの間における通信時間tを合計通信時間ptに加算する(SP23)。   If the job placement processing unit 114 obtains a negative result in this determination (SP23), it extracts one element d (communication destination virtual machine) of the communication destination set D and deletes the communication destination virtual machine from the communication destination set D. To do. In addition, the job placement processing unit 114 communicates between the virtual machine to which the target unit calculation process is assigned (hereinafter referred to as a communication source virtual machine as appropriate) and the communication destination virtual machine. Is added to the total communication time pt (SP23).

続いてジョブ配置処理部114は、ステップSP22に戻り、この後、そのとき対象としている通信元仮想マシンについての通信先集合Dが空集合となるまで、同様の処理を繰り返す(SP22−SP23−SP22)。   Subsequently, the job placement processing unit 114 returns to step SP22, and thereafter repeats the same processing until the communication destination set D for the target communication source virtual machine becomes an empty set (SP22-SP23-SP22). ).

そしてジョブ配置処理部114は、やがてそのとき対象としている通信元仮想マシンと各通信先仮想マシンとの間の通信時間tの合計値である合計通信時間ptを得ることによりステップSP22において肯定結果を得ると(SP22:YES)、そのとき取得した合計通信時間ptと、分散計算定義113に含まれる図10について上述した条件とに基づいて、そのとき対象としている割当て仮想マシン集合Pの要素pについてのコストCpを取得し(SP24)、この後、コスト計算処理(図9)に戻る。   Then, the job placement processing unit 114 eventually obtains an affirmative result in step SP22 by obtaining the total communication time pt that is the total value of the communication times t between the communication source virtual machine and the communication destination virtual machines that are the target at that time. If obtained (SP22: YES), based on the total communication time pt acquired at that time and the condition described above with reference to FIG. 10 included in the distributed calculation definition 113, the element p of the assigned virtual machine set P that is the target at that time Cost Cp is acquired (SP24), and then the process returns to the cost calculation process (FIG. 9).

なお、コスト計算の条件が消費電力及びI/O処理の場合についても、図11と同様のアルゴリズムによってコスト計算を行うことが可能である。   Even when the cost calculation conditions are power consumption and I / O processing, it is possible to perform cost calculation using the same algorithm as in FIG.

以上のように本実施の形態による分散計算システム100では、個々の単位計算処理を割り当て可能な仮想マシンに分散配置した配置パターンをすべて求め、これら配置パターンpについてそれぞれコストを計算し、最もコストが低い配置パターンpを選択するようにしたことにより、Map処理及び当該Map処理の処理結果を使用するReduce処理を、同一の物理マシン(第1又は第2の分散計算ノード102,103)上で動作する仮想マシンに分散配置することができる。かくするにつき、分散計算システム100における分散計算処理の処理性能を向上させることができる。   As described above, in the distributed calculation system 100 according to the present embodiment, all the arrangement patterns distributed to the virtual machines to which individual unit calculation processes can be allocated are obtained, the costs are calculated for each of the arrangement patterns p, and the cost is the highest. By selecting a low arrangement pattern p, the Map process and the Reduce process using the processing result of the Map process are operated on the same physical machine (first or second distributed computing node 102, 103). Can be distributed to virtual machines. As a result, the processing performance of the distributed calculation processing in the distributed calculation system 100 can be improved.

(2)第2の実施の形態
第1の実施の形態によれば、Map処理及び当該Map処理の処理結果を使用するReduce処理を同一の物理マシン上で動作する仮想マシンに分散配置することができる。
(2) Second Embodiment According to the first embodiment, Map processing and Reduce processing using the processing result of the Map processing can be distributed and arranged in virtual machines operating on the same physical machine. it can.

この場合において、同一の物理マシン上で動作する仮想マシン間は、共有メモリ120B,130B(図1)を利用した高速な通信路127(図1)を利用したデータ転送を行うことができるため、かかるMap処理の処理結果をReduce処理に転送する際、共有メモリ120B,130Bを利用した通信路127(図1)を介して行うことにより分散計算処理の高速化を図ることができる。   In this case, data transfer using the high-speed communication path 127 (FIG. 1) using the shared memories 120B and 130B (FIG. 1) can be performed between the virtual machines operating on the same physical machine. When the processing result of the Map process is transferred to the Reduce process, the speed of the distributed calculation process can be increased by using the communication path 127 (FIG. 1) using the shared memories 120B and 130B.

図12は、このような観点に基づいてジョブ配置処理部114により実行される、仮想マシン間の通信路を設定する処理(以下、これを通信路設定処理と呼ぶ)の処理内容を示す。ジョブ配置処理部114は、この図12に示す通信路設定処理を、外部記憶装置111(図1)に格納されている対応するプログラムに基づいて実行する。   FIG. 12 shows the processing contents of processing for setting a communication path between virtual machines (hereinafter referred to as communication path setting processing) executed by the job placement processing unit 114 based on such a viewpoint. The job placement processing unit 114 executes the communication path setting process shown in FIG. 12 based on a corresponding program stored in the external storage device 111 (FIG. 1).

すなわちジョブ配置処理部114は、図7について上述したジョブ配置処理を終了すると、この図12に示す通信路設定処理を開始し、まず、かかるジョブ配置処理のステップSP4において選択した配置パターンqの割当て仮想マシン集合Pを求める(SP30)。   That is, when the job placement processing unit 114 finishes the job placement processing described above with reference to FIG. 7, the job placement processing unit 114 starts the communication path setting processing shown in FIG. 12, and first assigns the placement pattern q selected in step SP4 of the job placement processing. A virtual machine set P is obtained (SP30).

続いてジョブ配置処理部114は、その割当て仮想マシン集合Pが空集合であるか否かを判断し(SP31)、当該割当て仮想マシン集合Pが空集合でない場合には(SP31:NO)、割当て仮想マシン集合Pの要素p(単位計算処理が割り当てられた仮想マシン)を1つ選択して、その通信先集合Dを求める(SP32)。またジョブ配置処理部114は、これと併せてその要素pを割当て仮想マシン集合Pから削除する。   Subsequently, the job placement processing unit 114 determines whether or not the assigned virtual machine set P is an empty set (SP31). If the assigned virtual machine set P is not an empty set (SP31: NO), the assigned virtual machine set P is assigned. One element p (virtual machine to which unit calculation processing is assigned) of the virtual machine set P is selected, and its communication destination set D is obtained (SP32). In addition, the job placement processing unit 114 deletes the element p from the assigned virtual machine set P together with this.

続いてジョブ配置処理部114は、かかる通信先集合Dが空集合であるか否かを判断し(SP33)、否定結果を得ると(SP33:NO)、かかる通信先集合Dの要素d(通信先仮想マシン)を1つ選択して(SP34)、かかる通信先仮想マシンとステップSP32において選択した仮想マシン(通信元仮想マシン)とが同一のハードウェア120,130上で動作するか否かを判断する(SP35)。この際、ジョブ配置処理部114は、その要素dを通信先集合Dから削除する。   Subsequently, the job placement processing unit 114 determines whether or not the communication destination set D is an empty set (SP33), and if a negative result is obtained (SP33: NO), the element d (communication) of the communication destination set D is obtained. (Destination Virtual Machine) is selected (SP34), and whether or not the communication destination virtual machine and the virtual machine (communication source virtual machine) selected in Step SP32 operate on the same hardware 120, 130. Judgment is made (SP35). At this time, the job placement processing unit 114 deletes the element d from the communication destination set D.

ジョブ配置処理部114は、かかる判断において肯定結果(SP35:YES)を得ると、これら通信元仮想マシン及び通信先仮想マシン間の通信路として共有メモリ120B,130Bを利用した通信路127を設定する(SP36)。そしてジョブ配置処理部114は、この後、ステップSP33に戻る。   If the job placement processing unit 114 obtains a positive result (SP35: YES) in this determination, it sets the communication path 127 using the shared memories 120B and 130B as the communication path between the communication source virtual machine and the communication destination virtual machine. (SP36). Then, the job placement processing unit 114 returns to step SP33.

これに対してジョブ配置処理部114は、ステップSP35の判断において否定結果(SP35:NO)を得ると、かかる通信元仮想マシン及び通信先仮想マシン間の通信路としてネットワーク104(図1)を利用した通信路140(図1)を設定する(SP37)。そしてジョブ配置処理部114は、この後、ステップSP33に戻る。   On the other hand, when the job placement processing unit 114 obtains a negative result (SP35: NO) in the determination at step SP35, it uses the network 104 (FIG. 1) as a communication path between the communication source virtual machine and the communication destination virtual machine. The established communication path 140 (FIG. 1) is set (SP37). Then, the job placement processing unit 114 returns to step SP33.

そしてジョブ配置処理部114は、やがてステップSP32において選択した仮想マシン(通信元仮想マシン)の通信先集合Dのすべての要素dについて同様の処理を終えることによりステップSP33において肯定結果を得るとステップSP31に戻り、この後、ステップSP31以降を同様に処理する。   When the job placement processing unit 114 eventually obtains an affirmative result in step SP33 by completing similar processing for all elements d of the communication destination set D of the virtual machine (communication source virtual machine) selected in step SP32, step SP31 is obtained. Thereafter, the processing after step SP31 is similarly performed.

そしてジョブ配置処理部114は、やがてジョブ配置処理(図7)のステップSP4において選択した配置パターンqの割当て仮想マシン集合Pのすべての要素pについて同様の処理を終えることによりステップSP31において肯定結果を得ると(SP31:YES)、この通信路設定処理を終了する。   Then, the job placement processing unit 114 eventually gives a positive result in step SP31 by completing the same processing for all the elements p of the assigned virtual machine set P to which the placement pattern q selected in step SP4 of the job placement processing (FIG. 7). If it is obtained (SP31: YES), this communication path setting process is terminated.

以上のように本実施の形態によれば、同一ハードウェア120,130上で動作する仮想マシン間におけるデータ転送の通信路として共有メモリ120B,130Bを利用した通信路127を設定することができるため、分散計算処理の高速化を図ることができる。   As described above, according to the present embodiment, the communication path 127 using the shared memories 120B and 130B can be set as a communication path for data transfer between virtual machines operating on the same hardware 120 and 130. Therefore, it is possible to speed up the distributed calculation processing.

(3)第3の実施の形態
第1の実施の形態によれば、Map処理及び当該Map処理の処理結果を使用するReduce処理を同一の物理マシン上で動作する仮想マシンに分散配置することができるが、このような入出力関係を有するMap処理及びreduce処理を同一の仮想マシンにおいて実行することによって、より一層と分散計算処理の高速化を図ることができる。
(3) Third Embodiment According to the first embodiment, Map processing and Reduce processing using the processing result of the Map processing can be distributed and arranged in virtual machines operating on the same physical machine. However, by executing the map process and the reduce process having such an input / output relationship in the same virtual machine, the speed of the distributed calculation process can be further increased.

図13は、かかる入出力関係を有するMap処理及びReduce処理を1つの仮想マシンにまとめて配置するジョブまとめ処理の処理手順を示すフローチャートである。ジョブ配置処理部114は、この図13に示すジョブまとめ処理を、外部記憶装置111(図1)に格納されたプログラムに基づいて、例えば図7について上述したジョブ配置処理の終了後であって、図12について上述した通信路設定処理の実行前に実行する。   FIG. 13 is a flowchart illustrating a processing procedure of job summarization processing in which Map processing and Reduce processing having such an input / output relationship are collectively arranged in one virtual machine. The job placement processing unit 114 performs the job summarization processing shown in FIG. 13 after the job placement processing described above with reference to FIG. 7, for example, based on the program stored in the external storage device 111 (FIG. 1). This is executed before the communication path setting process described above with reference to FIG.

すなわちジョブ配置処理部114は、かかるジョブ配置処理が終了すると、このジョブまとめ処理を開始し、まず、かかるジョブ配置処理のステップSP4において選択した配置パターンpにおいて、Map処理及び当該Map処理の処理結果を使用するReduce処理の組の集合(以下、これを関連処理集合Yと呼ぶ)を求め(SP40)、その関連処理集合Yが空集合であるか否かを判断する(SP41)。   That is, when the job placement processing unit 114 completes the job placement processing, the job placement processing unit 114 starts the job summarization processing. First, in the placement pattern p selected in step SP4 of the job placement processing, the map processing and the processing result of the map processing are performed. Is obtained (hereinafter referred to as a related processing set Y) (SP40), and it is determined whether or not the related processing set Y is an empty set (SP41).

ジョブ配置処理部114は、この関連処理集合Yの要素y(Map処理及びReduce処理の組)を1つ選択し(SP42)、その要素yについて、Map処理を実行する仮想マシンと、Reduce処理を実行する仮想マシンとが同一ハードウェア120,130上で動作するか否かを判断する(SP43)。   The job placement processing unit 114 selects one element y (a combination of the map process and the reduce process) of the related process set Y (SP42), and for the element y, the virtual machine that executes the map process and the reduce process are selected. It is determined whether or not the virtual machine to be executed operates on the same hardware 120 and 130 (SP43).

そしてジョブ配置処理部114は、この判断において否定結果を得るとステップSP41に戻り、これに対して肯定結果を得ると、かかるMap処理及びReduce処理を融合可能であるか否かを判断する(SP44)。   If the job placement processing unit 114 obtains a negative result in this determination, the job placement processing unit 114 returns to step SP41. If the job placement processing unit 114 obtains a positive result, the job placement processing unit 114 determines whether the map processing and the reduce processing can be merged (SP44). ).

ジョブ配置処理部114は、この判断において否定結果を得るとステップSP41に戻り、これに対して肯定結果を得ると、かかるMap処理及びReduce処理を融合し、この融合により得られた一連のMap/Reduce処理をそれまでそのMap処理又はReduce処理が割り当てられていたいずれかの仮想マシンに再割り当てした後(SP45)、ステップSP41に戻る。   If the job placement processing unit 114 obtains a negative result in this determination, it returns to step SP41, and if it obtains a positive result, it merges such Map processing and Reduce processing, and a series of Map / After the Reduce process is reassigned to one of the virtual machines to which the Map process or Reduce process has been assigned (SP45), the process returns to step SP41.

この後、ジョブ配置処理部114は、ステップSP41において肯定結果を得るまで同様の処理を繰り返す(SP41〜SP45−SP41)。そしてジョブ配置処理部は、やがて関連処理集合Yに属するすべての要素yについて同様の処理を実行し終えることによりステップSP41において肯定結果を得ると、このジョブまとめ処理を終了する。   Thereafter, the job placement processing unit 114 repeats the same processing until a positive result is obtained in step SP41 (SP41 to SP45-SP41). If the job placement processing unit eventually obtains a positive result in step SP41 by completing the same processing for all elements y belonging to the related processing set Y, it ends this job summarization processing.

以上のように本実施の形態によれば、Map処理及び当該Map処理の処理結果を使用するReduce処理を同一の仮想マシンにまとめて配置することができるため、より一層と分散計算処理の高速化を図ることができる。   As described above, according to the present embodiment, Map processing and Reduce processing using the processing result of the Map processing can be collectively arranged in the same virtual machine, so the speed of distributed calculation processing can be further increased. Can be achieved.

(4)他の実施の形態
なお上述の第1〜第3の実施の形態においては、本発明を図1のように構成された分散計算システム100に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成の分散計算システムに広く適用することができる。
(4) Other Embodiments In the above first to third embodiments, the case where the present invention is applied to the distributed computing system 100 configured as shown in FIG. 1 has been described. The present invention is not limited to this, and can be widely applied to other distributed computing systems having various configurations.

また上述の第1〜第3の実施の形態においては、Map処理及びReduce処理を複数の仮想マシンに分散配置する各種の配置パターンを検出する配置パターン検出部と、配置パターンごとのコストを計算するコスト計算部と、コスト計算部の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従ってMap処理及びReduce処理を複数の仮想マシンに分散配置する分散配置部との3つの機能を1つのジョブ配置処理部114により実現するようにした場合について述べたが、本発明はこれに限らず、例えば分散計算制御ノード101を複数用意し、かかる3つの機能をこれら複数の分散計算制御ノード101に分散させるようにしてもよい。   In the first to third embodiments described above, the arrangement pattern detection unit that detects various arrangement patterns that distribute and arrange Map processing and Reduce processing in a plurality of virtual machines, and the cost for each arrangement pattern are calculated. 3 of a cost calculation unit and a distributed arrangement unit that selects an arrangement pattern that minimizes the cost based on the calculation result of the cost calculation unit and distributes map processing and reduce processing to a plurality of virtual machines according to the arrangement pattern. The case where one function is realized by one job placement processing unit 114 has been described. However, the present invention is not limited to this. For example, a plurality of distributed calculation control nodes 101 are prepared, and these three functions are distributed to the plurality of distributed functions. You may make it distribute to the calculation control node 101. FIG.

本発明は、システム仮想化機能を用いて分散計算処理を行う種々の構成の分散計算システムに適用することができる。   The present invention can be applied to distributed computing systems having various configurations that perform distributed computing processing using a system virtualization function.

第1〜第3の実施の形態による分散計算システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the distributed calculation system by 1st-3rd embodiment. 従来の分散計算システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the conventional distributed calculation system. 分散処理の定義例を示すフロー図である。It is a flowchart which shows the example of a definition of distributed processing. (A)及び(B)は、図1の分散計算システムにおける計算処理の分散配置例を示すフローグラフである。(A) And (B) is a flow graph which shows the example of distribution arrangement | positioning of the calculation process in the distributed calculation system of FIG. 図2の分散計算システムにおける計算処理の分散配置例を示すフローグラフである。3 is a flow graph showing an example of a distributed arrangement of calculation processing in the distributed calculation system of FIG. 2. 分散処理システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of a distributed processing system. ジョブ配置処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a job arrangement | positioning process. 配置パターン集合の説明に供する図表である。It is a chart used for description of the arrangement pattern set. コスト計算処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a cost calculation process. 条件テーブルの構成例を示す概念図である。It is a conceptual diagram which shows the structural example of a condition table. 実行時間を条件とする要素コスト計算処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the element cost calculation process on condition of execution time. 通信路設定処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a communication path setting process. ジョブまとめ処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a job summary process.

100……分散計算システム、101……分散計算制御ノード、102,103……分散計算ノード、104……ネットワーク、110,120,130……ハードウェア、110A,120A,130A……CPU、112……分散計算制御システム、113……分散計算定義、114……ジョブは一処理部、120B,130B……共有メモリ、111,121,131……外部記憶装置、122,132……システム仮想化機能、123,124,133,134……仮想マシン、301,402……Map処理、302,403……Reduce処理。
DESCRIPTION OF SYMBOLS 100 ... Distributed computing system, 101 ... Distributed computing control node, 102, 103 ... Distributed computing node, 104 ... Network, 110, 120, 130 ... Hardware, 110A, 120A, 130A ... CPU, 112 ... ... distributed calculation control system, 113 ... distributed calculation definition, 114 ... job is one processing unit, 120B, 130B ... shared memory, 111, 121, 131 ... external storage device, 122, 132 ... system virtualization function , 123, 124, 133, 134... Virtual machine, 301, 402... Map processing, 302, 403.

Claims (8)

第1の計算処理を構成する複数の第2の計算処理を、1又は複数の物理マシン上で動作する複数の仮想マシンに分散配置する分散計算制御装置において、
前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する各種の配置パターンを検出する配置パターン検出部と、
前記配置パターンごとのコストを計算するコスト計算部と、
前記コスト計算部の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従って前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する分散配置部と
を備えることを特徴とする分散計算制御装置。
In a distributed calculation control apparatus that distributes and arranges a plurality of second calculation processes constituting the first calculation process in a plurality of virtual machines operating on one or a plurality of physical machines
An arrangement pattern detection unit for detecting various arrangement patterns for distributing and arranging the plurality of second calculation processes in the plurality of virtual machines;
A cost calculation unit for calculating a cost for each arrangement pattern;
A distribution arrangement unit that selects an arrangement pattern that minimizes the cost based on a calculation result of the cost calculation unit, and distributes and arranges the plurality of second calculation processes in the plurality of virtual machines according to the arrangement pattern. A distributed calculation control device.
前記コスト計算部は、
前記実行時間、消費電力及びI/O量の少なくとも1つを条件として、前記配置パターンごとのコストをそれぞれ計算する
ことを特徴とする請求項1に記載の分散計算制御装置。
The cost calculation unit
The distributed calculation control apparatus according to claim 1, wherein the cost for each of the arrangement patterns is calculated on the condition of at least one of the execution time, power consumption, and I / O amount.
前記物理マシンは、
当該物理マシン上で動作する複数の前記仮想マシンが共有する共有メモリを備え、
前記分散配置部は、
前記コスト計算部の計算結果に基づいて、入出力関係を有する複数の前記第2の計算処理を同一の前記物理マシン上で動作する前記仮想マシンに配置すると共に、当該入出力関係を有する複数の前記第2の計算処理が配置された前記仮想マシン間のデータ転送を前記共有メモリを介して行うように対応する前記物理マシンを設定する
ことを特徴とする請求項1に記載の分散計算制御装置。
The physical machine is
A shared memory shared by the plurality of virtual machines operating on the physical machine,
The distributed arrangement unit is
Based on the calculation result of the cost calculation unit, a plurality of the second calculation processes having an input / output relationship are arranged in the virtual machine operating on the same physical machine, and a plurality of the input / output relationships are provided. 2. The distributed calculation control device according to claim 1, wherein the corresponding physical machine is set to perform data transfer between the virtual machines in which the second calculation processing is arranged via the shared memory. 3. .
前記分散配置部は、
前記コスト計算部の計算結果に基づいて、入出力関係がある複数の前記第2の計算処理を1つの計算処理に融合して、前記仮想マシンに配置する
ことを特徴とする請求項1に記載の分散計算制御装置。
The distributed arrangement unit is
The plurality of second calculation processes having an input / output relationship are merged into one calculation process based on a calculation result of the cost calculation unit and arranged in the virtual machine. Distributed calculation control device.
第1の計算処理を構成する複数の第2の計算処理を、1又は複数の物理マシン上で動作する複数の仮想マシンに分散配置する分散計算制御方法において、
前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する各種の配置パターンを検出する第1のステップと、
前記配置パターンごとのコストを計算する第2のステップと、
当該計算の計算結果に基づいて、コストが最小となる配置パターンを選択し、当該配置パターンに従って前記複数の第2の計算処理を前記複数の仮想マシンに分散配置する第3のステップと
を備えることを特徴とする分散計算制御方法。
In a distributed calculation control method for distributing and arranging a plurality of second calculation processes constituting the first calculation process in a plurality of virtual machines operating on one or a plurality of physical machines,
A first step of detecting various arrangement patterns in which the plurality of second calculation processes are distributed and arranged in the plurality of virtual machines;
A second step of calculating a cost for each arrangement pattern;
A third step of selecting an arrangement pattern that minimizes the cost based on a calculation result of the calculation, and distributing and arranging the plurality of second calculation processes in the plurality of virtual machines according to the arrangement pattern. A distributed calculation control method characterized by the above.
前記第1のステップでは、
前記実行時間、消費電力及びI/O量の少なくとも1つを条件として、前記配置パターンごとのコストをそれぞれ計算する
ことを特徴とする請求項5に記載の分散計算制御方法。
In the first step,
The distributed calculation control method according to claim 5, wherein a cost for each of the arrangement patterns is calculated on the condition of at least one of the execution time, power consumption, and I / O amount.
前記物理マシンは、
当該物理マシン上で動作する複数の前記仮想マシンが共有する共有メモリを備え、
前記第3のステップでは、
前記コスト計算部の計算結果に基づいて、入出力関係がある複数の前記第2の計算処理を同一の前記物理マシン上で動作する前記仮想マシンに配置すると共に、当該入出力関係がある複数の前記第2の計算処理が配置された前記仮想マシン間のデータ転送を前記共有メモリを介して行うように対応する前記物理マシンを設定する
ことを特徴とする請求項5に記載の分散計算制御方法。
The physical machine is
A shared memory shared by the plurality of virtual machines operating on the physical machine,
In the third step,
Based on the calculation result of the cost calculation unit, a plurality of the second calculation processes having an input / output relationship are arranged in the virtual machine operating on the same physical machine, and a plurality of the input / output relationships are 6. The distributed calculation control method according to claim 5, wherein the corresponding physical machine is set so that data transfer between the virtual machines in which the second calculation processing is arranged is performed via the shared memory. .
前記第3のステップでは、
入出力関係がある複数の前記第2の計算処理を1つの計算処理に融合して、前記仮想マシンに配置する
ことを特徴とする請求項5に記載の分散計算制御方法。
In the third step,
The distributed calculation control method according to claim 5, wherein a plurality of the second calculation processes having an input / output relationship are merged into one calculation process and arranged in the virtual machine.
JP2009065232A 2009-03-17 2009-03-17 Distributed calculation controller and method Pending JP2010218307A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009065232A JP2010218307A (en) 2009-03-17 2009-03-17 Distributed calculation controller and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009065232A JP2010218307A (en) 2009-03-17 2009-03-17 Distributed calculation controller and method

Publications (1)

Publication Number Publication Date
JP2010218307A true JP2010218307A (en) 2010-09-30

Family

ID=42977075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009065232A Pending JP2010218307A (en) 2009-03-17 2009-03-17 Distributed calculation controller and method

Country Status (1)

Country Link
JP (1) JP2010218307A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013005290A1 (en) * 2011-07-04 2013-01-10 富士通株式会社 Deployment design program and method, and information processing device
WO2013024597A1 (en) * 2011-08-15 2013-02-21 日本電気株式会社 Distributed processing management device and distributed processing management method
JP2015001828A (en) * 2013-06-14 2015-01-05 富士通株式会社 Allocation program, allocation device, and allocation method
CN104981782A (en) * 2013-02-01 2015-10-14 日本电气株式会社 Resource control system, control pattern generation device, control device, resource control method and program
US9268603B2 (en) 2011-09-15 2016-02-23 Fujitsu Limited Virtual machine management device, and virtual machine move control method
US9569245B2 (en) 2014-03-31 2017-02-14 Fujitsu Limited System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
US9633040B2 (en) 2014-02-04 2017-04-25 Samsung Electronics Co., Ltd. Distributed processing system including a name node and a plurality of data nodes, and method of operating the same
US10503560B2 (en) 2015-03-16 2019-12-10 Nec Corporation Distributed processing control device
US10878318B2 (en) 2016-03-28 2020-12-29 Google Llc Adaptive artificial neural network selection techniques

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013005290A1 (en) * 2011-07-04 2013-01-10 富士通株式会社 Deployment design program and method, and information processing device
US9542225B2 (en) 2011-07-04 2017-01-10 Fujitsu Limited Method and apparatus for determining allocation design of virtual machines
JP5682709B2 (en) * 2011-07-04 2015-03-11 富士通株式会社 Arrangement design program and method, and information processing apparatus
WO2013024597A1 (en) * 2011-08-15 2013-02-21 日本電気株式会社 Distributed processing management device and distributed processing management method
JPWO2013024597A1 (en) * 2011-08-15 2015-03-05 日本電気株式会社 Distributed processing management apparatus and distributed processing management method
US9268603B2 (en) 2011-09-15 2016-02-23 Fujitsu Limited Virtual machine management device, and virtual machine move control method
CN104981782A (en) * 2013-02-01 2015-10-14 日本电气株式会社 Resource control system, control pattern generation device, control device, resource control method and program
JPWO2014119719A1 (en) * 2013-02-01 2017-01-26 日本電気株式会社 Resource control system, control pattern generation device, control device, resource control method, and program
CN104981782B (en) * 2013-02-01 2019-03-26 日本电气株式会社 For controlling system, the control model generating means of resource
JP2015001828A (en) * 2013-06-14 2015-01-05 富士通株式会社 Allocation program, allocation device, and allocation method
US9633040B2 (en) 2014-02-04 2017-04-25 Samsung Electronics Co., Ltd. Distributed processing system including a name node and a plurality of data nodes, and method of operating the same
US9569245B2 (en) 2014-03-31 2017-02-14 Fujitsu Limited System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
US10503560B2 (en) 2015-03-16 2019-12-10 Nec Corporation Distributed processing control device
US10878318B2 (en) 2016-03-28 2020-12-29 Google Llc Adaptive artificial neural network selection techniques
US11847561B2 (en) 2016-03-28 2023-12-19 Google Llc Adaptive artificial neural network selection techniques

Similar Documents

Publication Publication Date Title
JP2010218307A (en) Distributed calculation controller and method
CN103797462B (en) A kind of method and apparatus creating virtual machine
KR101502896B1 (en) Distributed memory cluster control apparatus and method using map reduce
JP4886918B1 (en) Method for processing a flashcopy process, and system and computer program therefor
US8381016B2 (en) Fault tolerance for map/reduce computing
CN104142853B (en) Virtual machine storage resource dispositions method and device
US9367359B2 (en) Optimized resource management for map/reduce computing
CN107066542B (en) Vector space superposition analysis parallel method and system in geographic information system
US8898422B2 (en) Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
CN102521051B (en) Task scheduling method, device and system in Map Reduce system applied to nomography
CN101957863A (en) Data parallel processing method, device and system
JP2007140710A (en) Task allocation method and task allocation device
JP6492977B2 (en) Parallel computing device, parallel computing system, node allocation program, and node allocation method
US10013359B2 (en) Redundant disk array storage system and method using heterogeneous disks and a lookup table
Long et al. A toolkit for modeling and simulating cloud data storage: An extension to cloudsim
KR20180045347A (en) Method for resource management of virtual environment
CN112948279A (en) Method, apparatus and program product for managing access requests in a storage system
Chen et al. Addressing performance heterogeneity in mapreduce clusters with elastic tasks
JP2007280397A (en) Method for loading program by computer system including a plurality of processing nodes, computer readable medium including program, and parallel computer system
Tran et al. A new data layout scheme for energy-efficient MapReduce processing tasks
CN104281636A (en) Concurrent distributed processing method for mass report data
CN107528871A (en) Data analysis in storage system
KR101640231B1 (en) Cloud Driving Method for supporting auto-scaled Hadoop Distributed Parallel Processing System
JP2010205208A (en) Host computer, multipath system, and method and program for allocating path
CN111459871A (en) FPGA heterogeneous computation based block chain acceleration system and method