JP6535304B2 - Distributed synchronous processing system and distributed synchronous processing method - Google Patents
Distributed synchronous processing system and distributed synchronous processing method Download PDFInfo
- Publication number
- JP6535304B2 JP6535304B2 JP2016166182A JP2016166182A JP6535304B2 JP 6535304 B2 JP6535304 B2 JP 6535304B2 JP 2016166182 A JP2016166182 A JP 2016166182A JP 2016166182 A JP2016166182 A JP 2016166182A JP 6535304 B2 JP6535304 B2 JP 6535304B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- calculation
- distributed
- vertex
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 505
- 230000001360 synchronised effect Effects 0.000 title claims description 72
- 238000003672 processing method Methods 0.000 title claims description 18
- 238000004364 calculation method Methods 0.000 claims description 210
- 230000005540 biological transmission Effects 0.000 claims description 101
- 238000000034 method Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 26
- 230000000052 comparative effect Effects 0.000 description 11
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Description
本発明は、分散配置された複数のサーバを同期させて処理を実行する分散同期処理システムおよび分散同期処理方法に関する。 The present invention relates to a distributed synchronization processing system and a distributed synchronization processing method that execute processing by synchronizing a plurality of distributed servers.
ネットワーク上に複数のサーバを分散配置する分散処理システムのフレームワークとして、非特許文献1にはMapReduceが開示されている。但し、このMapReduceは、処理の度に、外部のデータストアからの入力データの読み込みや、結果の書き出し処理が必要であるため、ある処理の結果を次の処理で利用するようなイテレーティブな(反復する)処理には向いていない。この種の処理には、非特許文献2に開示されているBSP(Bulk Synchronous Parallel:バルク同期並列)が適している。
Non-Patent
このBSPは、「スーパーステップ(SS:superstep)」という処理単位を繰り返し実行することにより、分散環境でのデータ処理を実行する。図1は、BSP計算モデルを説明するための図である。 The BSP executes data processing in a distributed environment by repeatedly executing a processing unit called "superstep (SS)". FIG. 1 is a diagram for explaining a BSP calculation model.
1つのスーパーステップは、図1に示すように、次の3つのフェーズ(PH:phase)、「ローカル計算(LC:Local computation)」(フェーズPH1)、「データ交換(Com:Communication)」(フェーズPH2)、「同期(Sync)」(フェーズPH3)から構成される。
具体的には、複数のノード(ノード1〜ノード4)のうちのいずれかのノードがデータを受信すると、そのノード(例えば、ノード1)がフェーズPH1において、そのデータについての計算処理(ローカル計算(LC))を実行する。続いて、フェーズPH2において、各ノードが保持しているローカル計算の結果であるデータについて、ノード間でのデータ交換を実行する。次に、フェーズPH3において、同期処理を行う、より詳細には、すべてのノード間でのデータ交換の終了を待つ。
そして、スーパーステップSS1として、一連のスーパーステップの処理(PH1〜PH3)が終了すると、各ノードはその計算結果を保持した上で、次の一連の処理であるスーパーステップSS2へと進む。
As shown in FIG. 1, one super step includes the following three phases (PH: phase), “local computation (LC: Local computation) (phase PH1),“ data exchange (Com: Communication) (phase: PH2), “Sync” (phase PH3).
Specifically, when any of a plurality of nodes (
Then, when the series of super step processing (PH1 to PH3) is finished as the super step SS1, each node holds the calculation result, and proceeds to the next series of processing, super step SS2.
このBSPを採用した分散処理フレームワークとして、非特許文献3にはPregelが開示されている。このPregel等のフレームワークでは、全体の処理をグラフG=(V,E)として表現し、これをBSPに適用して実行する。ここで、Vは「バーテックス(vertex:頂点)の集合」であり、Eは「エッジ(edge:辺)の集合」を意味する。 Non-Patent Document 3 discloses Pregel as a distributed processing framework adopting this BSP. In the framework such as Pregel, the entire processing is expressed as a graph G = (V, E), which is applied to BSP and executed. Here, V is a “set of vertexes”, and E is a “set of edges”.
ここで、図2を参照し、交通シミュレーションにBSPを適用した例を説明する。
図2においては、各交差点(v)がバーテックス(vertex)に対応付けられる(図2のv1〜v4)。また、各交差点を結ぶ道路(e)がエッジ(edge)に対応付けられる(図2のe1〜e6)。ここで、エッジ(edge)は一方通行であり、双方向の道路は2つのエッジに対応付けられる。また、あるバーテックス(vertex)から見て、車両が出てゆく方向のエッジを、「出力エッジ(outgoing edge)」と呼び、車両が流入する方向のエッジを「入力エッジ(incoming edge)」と呼ぶ。例えば、図2において、バーテックスv2からみると、エッジe1は入力エッジであり、エッジe2は出力エッジになる。逆に、バーテックスv1からみると、エッジe1は出力エッジであり、エッジe2は入力エッジになる。
Here, with reference to FIG. 2, an example in which BSP is applied to traffic simulation will be described.
In FIG. 2, each intersection (v) is associated with a vertex (v 1 to v 4 in FIG. 2). In addition, the road (e) connecting each intersection is associated with an edge (e 1 to e 6 in FIG. 2). Here, the edge is one-way, and a bidirectional road is associated with two edges. Also, an edge in the direction in which the vehicle exits is referred to as an "outgoing edge" as viewed from a certain vertex, and an edge in the direction in which the vehicle flows in is referred to as an "incoming edge". . For example, in FIG. 2, when viewed from the vertex v 2, the edge e 1 is input edge, the edge e 2 is the output edge. Conversely, when viewed from the vertex v 1, the edge e 1 is the output edge, the edge e 2 is the input edge.
図1で示したスーパーステップでは、フェーズPH1(ローカル計算)において、バーテックス(vertex)毎に、経過時間(Δt)における、各バーテックスv1〜v4に対応付けられている交差点の状態(例えば、信号の色(青、黄、赤)や交差点内の車両の動き等)と、それに付随する出力エッジとしての道路内の状態(車両の動き(台数・平均速度等))とをシミュレートする。フェーズPH2(データ交換)では、あるバーテックスは、出力エッジを介して接する他のバーテックスに対して、当該出力エッジを介して出てゆく車両の動きの情報(台数等)を送信するとともに、入力エッジを介して入ってくる車両の動きの情報(台数等)を受信する。フェーズPH3(同期)では、バーテックス間で、シミュレーション時刻tを同期する。つまり、全てのバーテックス間でデータ交換の完了を待つ。
この交通シミュレーションにおいては、このように交差点(バーテックス)単位で、並列処理することにより、計算時間を短縮することが可能となる。
In the super step shown in FIG. 1, in phase PH1 (local calculation), for each vertex (vertex), the state of the intersection associated with each vertex v 1 to v 4 (e.g. It simulates the color of the signal (blue, yellow, red), the movement of the vehicle in the intersection, etc., and the state in the road (movement of vehicles (average number, etc.)) as an output edge accompanying it. In phase PH2 (data exchange), one vertex transmits information (such as the number of vehicles) of a vehicle moving out through the output edge to another vertex contacting via the output edge, and also inputs the input edge. Receive information (number etc.) of incoming vehicle movement via. In phase PH3 (synchronization), simulation time t is synchronized between vertices. That is, it waits for completion of data exchange among all the vertices.
In this traffic simulation, it is possible to reduce the calculation time by performing parallel processing in intersection units (vertex) in this way.
上記のような、BSPを採用した分散処理フレームワークを実現するためのアーキテクチャとして、master/worker構成が採用されている。図3に示すように、master/worker構成は、処理単位となるバーテックス20aを複数備えるworker(処理サーバ30a)が複数台と、workerの処理について進行状況の管理等を行うmaster(管理サーバ10a)1台とで、構成される。
The master / worker configuration is adopted as an architecture for realizing the distributed processing framework adopting BSP as described above. As shown in FIG. 3, in the master / worker configuration, a plurality of workers (
ここで、master(管理サーバ10a)の役割は、worker(処理サーバ30a)への処理(バーテックス20a)の割り振り(グラフGのパーティショニング)、workerの処理の進行状況の管理、全workerに共通となる全体としてのスーパーステップの管理、バーテックスやエッジの追加や削除に伴うグラフトポロジの管理等である。
また、worker(処理サーバ30a)の役割は、各スーパーステップにおけるフェーズPH1のローカル計算、フェーズPH2における、隣接するバーテックスとの間のデータの送受信、masterへの報告である。
Here, the role of master (
The role of the worker (
既存のフレームワークにおけるアーキテクチャの多くは、このmaster/worker構成を採用しており、BSPが適用されるときには、workerは、自身が備える全てのバーテックスの処理(フェーズPH1,2)が完了すると、masterに報告する。masterは、全workerからの報告を受けると、スーパーステップを「+1」し、次のスーパーステップに移行するように、各workerに指示を出すこととなる。 Many of the architectures in the existing framework adopt this master / worker configuration, and when BSP is applied, the worker will be master when processing of all vertices that he / she has (phase PH1, 2) is completed. Report to When the master receives a report from all the workers, it instructs the workers to "+1" the super step and to shift to the next super step.
しかしながら、上記の構成では、スーパーステップ毎に、全バーテックスを同期するため、最も処理が遅いバーテックスにあわせることとなる。よって、たった一つでも全体から著しく遅いバーテックスがあると、その影響が全体に及ぶ。つまり、最も処理が遅いバーテックスにあわせて、全体が著しく遅延してしまう。
また、大規模なグラフGを処理対象とする場合、つまり、多数のバーテックスとエッジを備えた計算対象を扱うときには、master/worker構成では、一つのmasterでグラフ全体を管理するため、グラフGの規模が大きいと、masterがボトルネックとなってしまう。
However, in the above configuration, since all vertices are synchronized every super step, it is matched with the latest processing vertex. Therefore, if there is only one vertex that is extremely slow from the whole, the influence will be overall. That is, the whole is significantly delayed according to the slowest processing vertex.
Also, when processing a large graph G, that is, when dealing with a calculation object having a large number of vertices and edges, in the master / worker configuration, one master manages the entire graph; If the scale is large, the master will be a bottleneck.
そこで、本発明では、前記した問題を解決し、同期処理に伴うシステム全体の処理遅延を低減することができる、分散同期処理システムおよび分散同期処理方法を提供することを課題とする。 Therefore, it is an object of the present invention to provide a distributed synchronization processing system and a distributed synchronization processing method capable of solving the above-mentioned problems and reducing the processing delay of the entire system involved in synchronization processing.
前記した課題を解決するため、請求項1に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムであって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信するとともに、前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する分散処理管理部を備え、前記管理サーバが、前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する隣接同期処理部を備えることを特徴とする分散同期処理システムとした。
In order to solve the problems described above, the invention according to
また、請求項3に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムの分散同期処理方法であって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信する手順と、前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行し、前記管理サーバが、前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する手順を実行することを特徴とする分散同期処理方法とした。 The invention according to claim 3 is that the plurality of processing servers performing processing in parallel, the plurality of distributed processing units operating on the processing server, and the plurality of distributed processing units necessary for the target calculation processing A distributed synchronous processing method of a distributed synchronous processing system, comprising: a management server that assigns the plurality of processing servers to the plurality of processing servers, wherein the processing server performs calculation processing and calculation results in predetermined calculation steps by the distributed processing unit. Detecting completion of calculation / transmission processing indicating transmission processing to the distributed processing unit connected as an output destination of the process, generating a completion report indicating completion of the calculation / transmission processing, and transmitting it to the management server Receiving an instruction to move to the next step, which is an instruction to shift to the next calculation step, from the management server, and outputting the instruction to the distributed processing unit that has completed the calculation and transmission process. The management server receives the completion report, and the distributed processing unit that has completed the calculation / transmission process calculates whether or not the acquisition of the calculation result required in the next calculation step is completed. The determination is made based on whether or not the completion report from the distributed processing unit connected as the input source of is received, and when the acquisition of the calculation result is completed, the completion report is transmitted with the next step shift instruction The distributed synchronous processing method is characterized in that the procedure for transmitting to the processing server which has been performed is executed.
このように、分散同期処理システムは、管理サーバが、分散処理部ごとに、次の計算ステップに移行してよいのかを判定することができる。よって、全ての分散処理部の計算・送信処理の終了まで待機する必要がないため、同期処理に伴うシステム全体の処理遅延を低減することができる。 As described above, the distributed synchronous processing system can determine, for each distributed processing unit, whether the management server may shift to the next calculation step. Therefore, since it is not necessary to wait until the end of the calculation / transmission processing of all the distributed processing units, it is possible to reduce the processing delay of the entire system accompanying the synchronization processing.
請求項2に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムであって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する隣接同期分散管理部を備えることを特徴とする分散同期処理システムとした。 The invention according to claim 2 is a distributed synchronous processing system having a plurality of processing servers performing processing in parallel, and a plurality of distributed processing units operating on the processing server, wherein the processing server is Calculation processing and transmission processing completion indicating the transmission processing to the distributed processing unit connected as an output destination of the calculation result in a predetermined calculation step by the distributed processing unit is detected, and the distribution processing completed the calculation and transmission processing The processing unit determines from the distributed processing unit connected as an input source of the calculation result whether acquisition of the calculation result necessary in the next calculation step is completed and acquisition of the calculation result is completed. And an adjacent synchronization and dispersion management unit for outputting, to the distributed processing unit that has completed the calculation / transmission processing, an instruction for moving to the next calculation step, which is an instruction to move to the next calculation step. It was distributed synchronization system that.
また、請求項4に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムの分散同期処理方法であって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出する手順と、前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行することを特徴とする分散同期処理方法とした。 The invention according to claim 4 is a distributed synchronous processing method of a distributed synchronous processing system including a plurality of processing servers performing processing in parallel and a plurality of distributed processing units operating on the processing server, A procedure in which the processing server detects the completion of the calculation processing and transmission processing indicating the calculation processing and the transmission processing to the distributed processing unit connected as an output destination of the calculation result in the predetermined calculation step by the distributed processing unit; The distributed processing unit that has completed the calculation / transmission processing determines whether acquisition of the calculation result necessary in the next calculation step has been completed from the distributed processing unit connected as an input source of the calculation result, When acquisition of the calculation result is completed, an instruction to output a next step shift instruction which is an instruction to shift to the next calculation step to the distributed processing unit which has completed the calculation / transmission processing When, it was distributed synchronization processing method, characterized by the execution.
このように、分散同期処理システムは、処理サーバが、分散処理部ごとに、次の計算ステップに移行してよいのかを判定することができる。よって、全ての分散処理部の計算・送信処理の終了まで待機する必要がないため、同期処理に伴うシステム全体の処理遅延を低減することができる。
さらに、各処理サーバが自律分散的に、次の計算ステップへの移行を判定するため、処理サーバおよび分散処理部が多数となる大規模なシステムであっても、システム全体の処理遅延を低減することが可能となる。
As described above, the distributed synchronous processing system can determine, for each distributed processing unit, whether the processing server may shift to the next calculation step. Therefore, since it is not necessary to wait until the end of the calculation / transmission processing of all the distributed processing units, it is possible to reduce the processing delay of the entire system accompanying the synchronization processing.
Furthermore, since each processing server autonomously determines the shift to the next calculation step in a distributed manner, the processing delay of the entire system is reduced even in a large-scale system in which the number of processing servers and distributed processing units are large. It becomes possible.
本発明によれば、同期処理に伴うシステム全体の処理遅延を低減する、分散同期処理システムおよび分散同期処理方法を提供することができる。 According to the present invention, it is possible to provide a distributed synchronization processing system and a distributed synchronization processing method that reduce the processing delay of the entire system involved in synchronization processing.
<比較例の分散処理手法の内容と課題の詳細な説明>
初めに、本実施形態に係る分散同期処理システム1および分散同期処理方法の特徴構成を説明するため、比較例として従来技術における分散同期処理システム1aおよび分散同期処理方法を、詳細に説明する。
<Details of contents and problems of distributed processing method of comparative example>
First, in order to describe the characteristic configurations of the distributed
比較例の分散同期処理システム1aは、図3に示したような、master/worker構成を採用し、複数のworkerそれぞれが、複数のバーテックス(vertex)を備える。そして、このmaster/worker構成にBSPを適用するとき、各workerは、自身が備える全てのバーテックスの処理(フェーズPH1,2)が完了するとmasterに報告し、masterは、全workerからの報告を受けると、スーパーステップを次のスーパーステップに移行する。 The distributed synchronous processing system 1a of the comparative example adopts a master / worker configuration as shown in FIG. 3, and each of a plurality of workers has a plurality of vertices. Then, when applying BSP to this master / worker configuration, each worker reports to master that all vertex processing (phase PH1, 2) that it has is completed, and master receives reports from all workers. And move the superstep to the next superstep.
ここで、バーテックスに着目すると、各バーテックスは、次に示す処理を実行する。
バーテックスは、BSPのフェーズPH1において、現在のバーテックスの状態、出力エッジの状態、および、前スーパーステップ(以下、単に「ステップ」と称することがある。)の入力メッセージにより取得した情報(入力エッジの状態)をパラメータとして計算を行い、バーテックスの状態および出力エッジの状態を更新する。そして、バーテックスは、フェーズPH2において、更新した出力エッジの状態を出力メッセージとして、その出力エッジに隣接するバーテックスに送信する。なお、この「出力エッジに隣接するバーテックス」は、「計算結果の出力先として接続されたバーテックス」を意味する。
Here, focusing on vertices, each vertex executes the following processing.
Vertexes are information obtained in the phase PH1 of the BSP, the state of the current vertex, the state of the output edge, and the input message of the previous super step (hereinafter may be simply referred to as "step") (the input edge's The calculation is performed with the state) as a parameter, and the state of the vertex and the state of the output edge are updated. Then, in phase PH2, the vertex transmits the updated output edge state as an output message to the vertex adjacent to the output edge. The "vertex adjacent to the output edge" means "vertex connected as an output destination of the calculation result".
上記の処理(計算・送信処理)は、次の式(1)として表わすことができる。
f(vvid,n,Eout,n,Min,n-1)=(vvid,n+1,Eout,n+1,Mout,n) ・・・式(1)
ここで、バーテックスの各構成要素の定義について、図4に示す。
The above process (calculation and transmission process) can be expressed as the following equation (1).
f (v vid, n , E out, n , M in, n-1 ) = (v vid, n + 1 , E out, n + 1 , M out, n ) (1)
Here, the definition of each component of vertex is shown in FIG.
図4に示すように、「vid」は、「vertex ID」を示す。「vvid,n」は、「バーテックスの状態」を示す。「n」は、現在のステップ(スーパーステップ)を示す。「Eout,n」は、出力エッジの状態の集合を示す。「Min,n」は、入力エッジの状態を示す入力メッセージのバッファに記憶される情報(現在のステップ用)を示す。「Min,n-1」は、入力メッセージのバッファに記憶される情報(1つ前のステップ用)を示す。「sn」は、現在のステップの「状態フラグ(active/inactive)」を示す。「sn+1」は、次のステップの「状態フラグ(active/inactive)」を示す。f(vvid,n,Eout,n,Min,n-1)=(vvid,n+1,Eout,n+1,Mout,n)は、式(1)において示したように、計算・送信処理を示す。ここで、以降、ステップ(スーパーステップ)nにおける計算・送信処理を、「計算・送信処理fn」と記載する。
なお、「sn」の状態フラグは、そのバーテックスがBSPのフェーズ1,2の処理を実行している間は、「active」の状態とし、フェーズPH3の同期処理で他のバーテックスの処理待ち状態であるときに、「inactive」の状態とする。また、「sn+1」は、次のステップの処理に移行する設定の場合に「active」の状態とし、シミュレーション処理の設定時間が終了したこと等により、次のステップにおいて処理を実行しない設定の場合に、「inactive」の状態とする。
As shown in FIG. 4, “vid” indicates “vertex ID”. "V vid, n " indicates "state of vertex". "N" indicates the current step (super step). “E out, n ” indicates a set of output edge states. “M in, n ” indicates information (for the current step) stored in the buffer of the input message indicating the state of the input edge. “M in, n−1 ” indicates the information (for the previous step) stored in the buffer of the input message. "S n " indicates the "status flag (active / inactive)" of the current step. “S n + 1 ” indicates the “status flag (active / inactive)” of the next step. f (v vid, n , E out, n , M in, n-1 ) = (v vid, n + 1 , E out, n + 1 , M out, n ) is as shown in the equation (1) Shows the calculation and transmission process. Here, hereinafter, the calculation / transmission process in step (super step) n will be referred to as “calculation / transmission process f n ”.
The status flag “s n ” is in the “active” status while the vertex is executing the processing of
図5は、1つのバーテックスに注目した場合の構成要素を例示する図である。
図5に示すように、現在のステップ「n」における「vertex ID」が「1」のバーテックス「1」は、ステップ「n」おけるバーテックスの状態「v1,n」を保持する。また、バーテックス「1」は、出力エッジの状態として、「e1,3,n」をバーテックス「3」に出力し、「e1,4,n」をバーテックス「4」に出力する。そして、バーテックス「1」は、入力メッセージの情報(入力エッジの状態)として、バーテックス「2」から「m2,1,n」を受信し、バーテックス「3」から「m3,1,n」を受信する。
FIG. 5 is a diagram illustrating components in the case of focusing on one vertex.
As shown in FIG. 5, the vertex "1" with "vertex ID""1" in the current step "n" holds the state "v 1, n " of the vertex in the step "n". Also, vertex "1" outputs "e 1,3, n " as vertex "3" and "e 1,4, n " as vertex "4" as the output edge state. Then, vertex “1” receives “m 2,1, n ” from vertex “2” as information (state of input edge) of the input message, and vertex “3” to “m 3,1, n ” Receive
worker(図3参照)は、自身が備えるバーテックス毎に、現在のステップ(スーパーステップ)の状態フラグ(active/inactive)と次のステップ(スーパーステップ)の状態フラグ(active/inactive)を管理する。また、workerは、自身に属するバーテックスから、他のworkerに属するバーテックスに出力エッジの状態を出力メッセージとして送信するときには、同じworkerに属するバーテックスへのメッセージをバッファリングすることにより、まとめて送信するようにしてもよい。このようにすることで、通信コストを削減することができる。 The worker (see FIG. 3) manages the status flag (active / inactive) of the current step (superstep) and the status flag (active / inactive) of the next step (superstep), for each vertex that the worker has. Also, when a worker sends an output edge status as an output message from a vertex that belongs to itself to a vertex that belongs to another worker, it sends messages collectively by buffering messages to a vertex that belongs to the same worker. You may By doing this, communication costs can be reduced.
次に、図7を参照して、比較例の分散同期処理システム1aが実行する処理の流れについて説明する。なお、ここでは、グラフGの計算対象が、図6に示すグラフトポロジであるものとして説明する。また、図7に示すように、1台のmasterと2台のworker(worker1,worker2)で構成され、バーテックスv1〜v6のうち、バーテックスv1〜v3をworker1が担当し、バーテックスv4〜v6をworker2が担当するものとする。以下、全体の処理の流れを通して説明する。
Next, with reference to FIG. 7, the flow of processing executed by the distributed synchronous processing system 1a of the comparative example will be described. Here, it is assumed that the calculation target of the graph G is the graph topology shown in FIG. Further, as shown in FIG. 7, consists of one master and two worker (worker1, worker2), among the
まず、masterは、図6に示すグラフGの各バーテックス(バーテックスv1〜v6)を、処理対象として設定しworkerに割り振る(ステップS101)、つまり、グラフGのパーティショニングを実行する。
ここでは、図6に示すように、バーテックスv1〜v6のうち、バーテックスv1〜v3をworker1に割り振り、バーテックスv4〜v6をworker2に割り振るものとする。
First, master may each vertex of a graph G shown in FIG. 6 (
Here, as shown in FIG. 6, of the
続いて、各worker(worker1,worker2)は、担当するバーテックスのスーパーステップを実行する(ステップS102)。具体的には、フェーズPH1のローカル計算を実行し、スーパーステップの処理を開始する。 Subsequently, each worker (worker1, worker2) executes the superstep of the vertex in charge (step S102). Specifically, the local calculation of phase PH1 is performed, and the processing of the superstep is started.
次に、各workerは、自身が担当するバーテックスの処理の進行を監視し、各バーテックスが、フェーズPH2のデータ交換まで完了したか否かを判定する。そして、各workerは、担当する全てのバーテックスが、フェーズPH2までの処理を完了したと確認した場合に、各バーテックスの次のスーパーステップにおける状態フラグをmasterに報告(送信)する(ステップS103)。ここで、workerは、各バーテックスの次のスーパーステップにおける状態フラグとして「active」(次のスーパーステップの処理に移行する設定であること)を報告する。 Next, each worker monitors the progress of processing of the vertex that he is in charge of, and determines whether or not each vertex is completed until the data exchange of the phase PH2. Then, each worker, when confirming that all the vertexes in charge have completed the processing up to the phase PH2, reports (sends) the status flag in the next super step of each vertex to the master (step S103). Here, the worker reports “active” (setting to shift to the processing of the next super step) as a status flag in the next super step of each vertex.
そして、masterは、全てのworker(worker1,worker2)から、処理の完了を示す状態フラグの報告を受けたか否かを確認する。masterは、全てのworkerから報告を受けた場合に、スーパーステップを「+1」に更新する(ステップS104)。
ここで、masterは、グラフトポロジに変更がある場合、例えば、バーテックスやエッジの追加や削除がある場合には、そのグラフトポロジの変更を、各workerに通知する。
Then, the master confirms whether or not a status flag indicating the completion of the process has been received from all the workers (worker1, worker2). When the master receives a report from all the workers, it updates the super step to "+1" (step S104).
Here, if there is a change in graph topology, for example, if there is a vertex or edge addition or deletion, the master notifies each worker of the change in graph topology.
続いて、masterは、全てのworker(worker1,worker2)に対して、次にスーパーステップに移行するように指示する(ステップS105)。そして、各workerは、ステップS102〜S105を繰り返す。 Subsequently, the master instructs all the workers (worker1, worker2) to shift to the super step next (step S105). And each worker repeats step S102-S105.
比較例の分散同期処理システム1aにおいては、スーパーステップ毎に、計算対象となる全てのバーテックスを同期する、具体的には、図7に示す全体同期ポイントにおいて同期するため、最も遅いバーテックスにあわせることとなる。例えば、図7のスーパーステップSS1では、バーテックスv1〜v6のうち、最も遅いバーテックスv2にあわせることとなる。また、スーパーステップSS2では、最も遅いバーテックスv6にあわせることとなる。よって、著しく遅いバーテックスがあると、そのバーテックスにあわせるために、バーテックスの処理全体が著しく遅延してしまう。
また、master/worker構成では、一つのmasterで全体を管理することになるため、グラフGの規模が大きくなった場合、つまり、バーテックスの数やworkerの数が多くなるときに、masterがボトルネックとなる。
In the distributed synchronous processing system 1a of the comparative example, all vertices to be calculated are synchronized at each superstep, specifically, in order to synchronize at the entire synchronization point shown in FIG. It becomes. For example, the Super step SS1 in FIG. 7, of the
Also, in the master / worker configuration, one master manages the whole, so when the scale of the graph G becomes large, that is, when the number of vertices and the number of workers increase, the master becomes a bottleneck It becomes.
上記した全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いこと(処理の効率性)の問題(以下、「処理速度/効率性」の問題と称する。)を解決するために、非同期型の分散処理フレームワークが提案されている(例えば、非特許文献4参照)。
ここで、非特許文献4は、「Low, Y., et al., “Distributed GraphLab”, Proc. of the VLDB Endowment, 2012.」である。
It solves the above-mentioned delay of the processing speed as a whole and the problem of not performing processing in phase PH3 but having many synchronization waits (processing efficiency) (hereinafter referred to as the "processing speed / efficiency" problem). For this purpose, an asynchronous distributed processing framework has been proposed (see, for example, Non-Patent Document 4).
Here, Non-Patent Document 4 is “Low, Y., et al.,“ Distributed Graph Lab ”, Proc. Of the VLDB Endowment, 2012.”.
しかしながら、非特許文献4に記載の非同期型の分散処理フレームワークでは、処理速度/効率性と計算精度がトレードオフの関係になるため、処理を設計する際におけるプログラマの負担(プラグラムの複雑性)が増大してしまう。
具体的には、非同期型では、各バーテックスによって、同じスーパーステップを実行していることが保証されないため、プログラマが、バーテックス間の処理の追い越しや上書きの考慮が必要となる。追い越されたイテレーション(反復処理)は、無効になってしまうため、精度の低下をまねくこととなる。また、スーパーステップの追い越し数が無制限に増えることにより、精度の理論的保証が困難になってしまう。
However, in the asynchronous distributed processing framework described in Non-Patent Document 4, there is a trade-off between processing speed / efficiency and calculation accuracy, so the programmer's burden in designing processing (complexity of program) Will increase.
Specifically, in the asynchronous type, since each vertex does not guarantee that the same superstep is executed, it is necessary for the programmer to consider overtaking or overwriting of processing between the vertices. Passed over iterations will be invalidated, which will lead to a loss of accuracy. In addition, the theoretical guarantee of accuracy becomes difficult as the number of superstep overtakings increases without limit.
本実施形態に係る分散同期処理システム1(図9参照)および分散同期処理方法では、これらの問題に対し、同期型で、プログラマに優しい(つまり、処理の追い越しや上書きの考慮が不要となる)シンプルなフレームワークを提供しつつ、同期型で問題であった処理速度/効率性を改善することを課題とする。
さらに、masterのボトルネック化を回避し、大規模なグラフGでも処理速度/効率性を担保することを課題とする。
The distributed synchronous processing system 1 (refer to FIG. 9) and the distributed synchronous processing method according to the present embodiment are synchronous type and programmer-friendly for these problems (that is, no consideration of overtaking or overwriting of processing becomes necessary). The task is to improve the processing speed / efficiency that has been synchronous and problematic while providing a simple framework.
Furthermore, it is an object to prevent the bottleneck of the master and secure processing speed / efficiency even for a large graph G.
なお、本来masterが実行するグラフトロポジの管理のうち、「要素(バーテックスおよびエッジ)の動的な追加」については、システムとして構成の変更等が必要となるため、本発明の適用対象外とし、「要素の動的な追加」の必要がないケースを本発明の対象とする。 Of the management of graph topology that the master originally executes, “Dynamic addition of elements (vertex and edges)” requires a change in the configuration as a system, so this is not applicable to the present invention. The subject of the present invention is the case where there is no need for 'dynamic addition of elements'.
<本実施形態の概要>
次に、本実施形態に係る分散同期処理システム1が実行する処理の概要について説明する。
本実施形態に係る分散同期処理システム1(後記する図9)では、master(後記する「管理サーバ10」)による全バーテックス(後記する「分散処理部20」)での同期処理を行わず、バーテックス毎に次のスーパーステップへの移行を判断することを特徴とする。これにより、分散同期処理システム1は、著しく処理の遅いバーテックスの影響を低減する。
<Overview of this embodiment>
Next, an outline of processing executed by the distributed
In the distributed synchronous processing system 1 (FIG. 9 described later) according to the present embodiment, synchronization processing is not performed on all vertices (the “distributed processing unit 20” described later) by the master (the “
具体的には、分散同期処理システム1において、次のスーパーステップへの移行条件を「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」と設定する。なお、「入力エッジで接する全てのバーテックス」は、計算結果の入力元として接続された全てのバーテックス」を意味する。以下、この「次のスーパーステップへの移行条件」を「隣接同期」と称する。この隣接同期の詳細を、図8を参照して説明する。
Specifically, in the distributed
図8は、図7において示した比較例の分散同期処理システム1aが実行する処理(図8(a)参照)と、本実施形態に係る分散同期処理システム1が実行する処理(図8(b)参照)とを示す図である。
本実施形態に係る分散同期処理システム1では、上記のように、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」(「隣接同期」)により、次のスーパーステップに移行する。
8 shows a process (see FIG. 8A) executed by the distributed synchronous processing system 1a of the comparative example shown in FIG. 7 and a process executed by the distributed
In the distributed
例えば、図8(b)のバーテックスv2に着目すると、バーテックスv2は、入力エッジで接するバーテックスv1,v3,v4の計算・送信処理fnと自身の計算・送信処理fnが終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスv2は、スーパーステップSS1のとき、自身の計算・送信処理f1の終了がバーテックスv1,v3,v4より遅く一番後であったので、その時点が隣接同期ポイントとなっている。
バーテックスv3に着目すると、バーテックスv3は、入力エッジで接するバーテックスv2,v4の計算・送信処理fnと自身の計算・送信処理fnが終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスv3は、スーパーステップSS1のとき、自身の計算・送信処理f1が終わった時点では、バーテックスv4の計算・送信処理f1は終わっているが、バーテックスv2の計算・送信処理f1が終わっていないため、「inactive」の状態で待機し(図8(b)の符号α)、バーテックスv2の計算・送信処理f1が終わった時点が隣接同期する隣接同期ポイントとなる。
また、バーテックスv1に着目すると、バーテックスv1は、入力エッジで接するバーテックスは存在しない、よって、スーパーステップSS1のとき、自バーテックスの計算・送信処理f1が終了した時点が隣接同期する隣接同期ポイントとなる。
For example, focusing on the vertex v 2 in FIG. 8 (b), the vertex v 2 is the vertex v 1, v 3, v calculation and transmission processing of 4 f n and their calculation and transmission processing f n in contact with the input edge The end point is the adjacent sync point adjacent sync. Here vertex v 2, when the super step SS1, since the end of calculation and transmission processing f 1 itself was later slowest from vertex v 1, v 3, v 4 , and that point adjacent synchronization points It has become.
Focusing on the vertex v 3, Vertex v 3 is an adjacent sync point when the vertex v 2, v 4 of calculation and transmission processing f n and their calculation and transmission processing f n in contact with input edge is finished is adjacent sync Become. Here vertex v 3, when the super step SS1, at the time the end of the calculation and transmission processing f 1 itself, calculation and transmission processing f 1 Vertex v 4 is ending, the vertex v 2 calculation and transmission since the process f 1 is not finished, waiting in the state of "inactive" (reference numeral α in FIG. 8 (b)), and neighboring synchronization point when the calculation and transmission processing f 1 vertex v 2 is finished is adjacent sync Become.
Further, when focusing on the vertex v 1, vertex v 1, the vertex in contact with the input edge is not present, therefore, when the super step SS1, adjacent synchronization when the calculation and transmission processing f 1 of the own vertex is completed adjacent sync It becomes a point.
図8(b)に示すように、処理全体のある時点でみると、各バーテックス間においてスーパーステップがずれる可能性がある。そのため、バーテックス間でメッセージを送受信するときには上書きせずに、スーパーステップ毎に管理する。つまり、スーパーステップの情報(ステップ番号)をあわせて記憶するようにする。そのため、図4において示したバーテックスの要素に加え、本実施形態における各バーテックスは、「Min,n+m」を入力メッセージのバッファに記憶する。ここで、「Min,n+m」は、ステップ番号n+m(「m」は正の整数)において、入力エッジの状態としてバッファに記憶される情報を示す。各バーテックスは、自身のスーパーステップ(例えば、ステップ番号「n」(現在のステップ))よりも先に、次のスーパーステップに移行したバーテックスから、入力エッジの状態を取得した場合、ステップ番号n+1,n+2,…,n+m、としたステップ番号とともに、入力メッセージの状態を記憶しておく。 As shown in FIG. 8 (b), there is a possibility that the superstep may be shifted between the vertices when viewed at a certain point in the entire process. Therefore, when transmitting and receiving messages between vertices, management is performed for each super step without overwriting. That is, super step information (step number) is stored together. Therefore, in addition to the elements of the vertices shown in FIG. 4, each vertex in the present embodiment stores “M in, n + m ” in the buffer of the input message. Here, “M in, n + m ” indicates the information stored in the buffer as the state of the input edge at the step number n + m (“m” is a positive integer). When each vertex acquires the state of the input edge from the vertex which has shifted to the next super step before its own super step (for example, step number “n” (current step)), the step number n + 1, The state of the input message is stored together with the step numbers n + 2,..., n + m.
このように、隣接同期に基づき次のスーパーステップに移行することにより、論理的には、バーテックスそれぞれに着目すると同一スーパーステップ内での同期がとれている。そのため、プログラマは、非同期型のような処理速度/効率性と計算精度のトレードオフを考慮する必要がなくすことができる。
また、図8(a)に示す比較例にくらべ、inactiveとして同期待ちをする時間が大幅に削減されるため(図8(b)の符号β)、処理速度/効率性を改善することが可能となる。つまり、システム全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いこと(処理の効率性)の問題を解決することができる。
As described above, by shifting to the next super step based on the adjacent synchronization, logically, when focusing on each of the vertices, synchronization within the same super step is established. Therefore, the programmer can eliminate the need to consider the trade-off between processing speed / efficiency and calculation accuracy such as asynchronous processing.
Further, compared to the comparative example shown in FIG. 8A, the time for waiting for synchronization as inactive is significantly reduced (symbol β in FIG. 8B), so that processing speed / efficiency can be improved. It becomes. That is, it is possible to solve the problem of the delay of the processing speed of the whole system and the fact that the processing is not performed in the phase PH3 and the number of synchronization waits is large (processing efficiency).
≪分散同期処理システムの構成≫
次に、本実施形態に係る分散同期処理システム1の構成について具体的に説明する。
図9に示すように、分散同期処理システム1は、管理サーバ10(master)と、管理サーバ10にそれぞれ接続され並列に処理を行う複数の処理サーバ30(worker)と、処理サーバ30上で動作する複数の分散処理部20(vertex)と、を備える。
<< Configuration of Distributed Synchronous Processing System >>
Next, the configuration of the distributed
As shown in FIG. 9, the distributed
管理サーバ10および処理サーバ30は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等、一般的なコンピュータとしてのハードウエアを備えており、HDDには、OS(Operating System)、アプリケーションプログラム、各種データ等が格納されている。OSおよびアプリケーションプログラムは、RAMに展開され、CPUによって実行される。なお、図9において、管理サーバ10、分散処理部20および処理サーバ30の内部は、RAMに展開されたアプリケーションプログラム等によって実現される機能(特徴構成)を、ブロックとして示している。
The
管理サーバ10は、システム全体を管理するmasterとして機能する。管理サーバ10は、対象とする計算処理の全体について所定単位に細分化した複数の計算処理を、workerとして機能する処理サーバ30にそれぞれ割り振る。個々の計算処理には、データ入力、計算、メッセージの送受信等が含まれる。並列に処理を行う複数の処理サーバ30(worker)上では、個々の計算処理にそれぞれ対応した複数の分散処理部20が動作する。対象とする計算処理をグラフG=(V,E)として表現したときに、この計算処理に必要な個々の計算処理は、グラフG中の個々の頂点(バーテックス:vertex)として表現される。つまり、分散処理部20は頂点(バーテックス:vertex)として機能する。
以下、分散同期処理システム1を構成する各装置について詳細に説明する。
The
Hereinafter, each device constituting the distributed
<管理サーバ(master)>
管理サーバ10は、対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30(worker)への割り振りを行う。また、管理サーバ10は、システム上に設定したバーテックス(vertex)毎に、BSPにおける、次のスーパーステップに移行するか否かを判断する処理を行うことにより、対象とする計算処理の全体を管理する。
図3に示した、従来の分散同期処理システム1aのmasterとの違いは、次のスーパーステップへの移行を、全てのバーテックスの処理が終了していることにより判断するのではなく、本実施形態に係る管理サーバ10(master)では、バーテックス毎に、上記した「隣接同期」に基づき判定することである。
<Management server (master)>
The
The difference between the conventional distributed synchronous processing system 1a shown in FIG. 3 and the master is that the transition to the next super step is not judged by the completion of processing of all vertices, and this embodiment In the management server 10 (master) according to the present invention, the determination is made based on the “adjacent synchronization” described above for each vertex.
この管理サーバ10は、その特徴構成として、隣接同期処理部11を備える。
隣接同期処理部11は、各処理サーバ30(worker)から、分散処理部20(vertex)毎に、計算・送信処理fnが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、計算・送信処理fnの完了報告(以下、「計算・送信処理完了報告」と称する。)を受信する。
そして、隣接同期処理部11は、受信した計算・送信処理完了報告で示される分散処理部20(vertex)、すなわち、計算・送信処理が完了した分散処理部20(vertex)について、次のスーパーステップへの移行判断を上記の「隣接同期」の条件に基づき行う。つまり、隣接同期処理部11は、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」(隣接同期)の条件を満たすか否かを判定する。なお、この隣接同期の判定は、次のスーパーステップにおいて必要な計算結果の取得が完了しているか否かを、隣接する分散処理部20(vertex)からの計算・送信処理完了報告を受信しているか否かに基づき判定することを意味する。
The
The adjacent
Then, the adjacent
隣接同期処理部11は、受信した計算・送信処理完了報告で示される分散処理部20(vertex)が、隣接同期の条件を満たす場合には、その分散処理部20(vertex)について、次のスーパーステップに移行する(スーパーステップを「+1」する。)ように、その分散処理部20(vertex)を担当する処理サーバ30(worker)に指示を送信する。なお、隣接同期処理部11による、次のスーパーステップへの移行指示を、以下「次ステップ移行指示」と称する。
When the distributed processing unit 20 (vertex) indicated by the received calculation / transmission processing completion report satisfies the adjacent synchronization condition, the adjacent
また、隣接同期処理部11は、ある分散処理部20(vertex)の計算・送信処理完了報告を受信した場合に、その計算・送信処理完了報告で示される分散処理部20(vertex)が出力エッジで接する分散処理部20(vertex)のうち、当該分散処理部20(vertex)のみからの入力メッセージ待ち(入力エッジの状態の取得待ち)」の理由により、inactive状態で待機している分散処理部20(vertex)がある場合には、その分散処理部20(vertex)を次のスーパーステップへ移行させるように、次ステップ移行指示を送信する。
Further, when the adjacent
具体的には、図8(b)を参照して説明する。スーパーステップSS1のときのバーテックスv3に着目すると、バーテックスv3は、入力エッジで接するバーテックスv2,v4と自身の計算・送信処理f1が終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスv3は、自身の計算・送信処理f1が終わった時点では、バーテックスv4の計算・送信処理f1は終わっているが、バーテックスv2の計算・送信処理f1が終わっていないため、「inactive」の状態で待機している。この状態において、管理サーバ10の隣接同期処理部11が、処理サーバ30(worker1)からバーテックスv2の計算・送信処理f1が終わった旨の計算・送信処理完了報告を受信した場合には、バーテックスv2のみからの入力メッセージ待ち(入力エッジの状態の取得待ち)をしていた、バーテックスv3に対して、次ステップ移行指示を送信する。
このようにすることで、自身の計算・送信処理fnが終了し、inactive状態で待機していた分散処理部20(vertex)について、次にステップに移行させることができる。
Specifically, this will be described with reference to FIG. Focusing on the vertex v 3 when the super step SS1, Vertex v 3 is a neighboring synchronization point time when the vertex v 2, v 4 and its own calculation and transmission processing f 1 in contact with input edge finished is adjacent sync . Here vertex v 3 is the time when the calculation and transmission processing f 1 itself is finished, calculation and transmission processing f 1 Vertex v 4 is ending, not end calculation and transmission processing f 1 Vertex v 2 is Because there is no, it is waiting in the state of "inactive". In this state, when the adjacent
By doing so, ends the calculation and transmission processing f n itself, the distributed processing unit was waiting in inactive state 20 (vertex), it can be then proceeds to step.
<分散処理部(vertex)>
図9に戻り、分散処理部20(vertex)は、所定単位に区分された計算処理を実行し、数値計算部21およびメッセージ送受信部22を含んで構成される。
<Distributed processing unit (vertex)>
Returning to FIG. 9, the distributed processing unit 20 (vertex) executes calculation processing divided into predetermined units, and includes a
数値計算部21は、BSPにおけるフェーズPH1(ローカル計算)の処理を実行する。この数値計算部21は、メッセージ送受信部22を介して受信する次ステップ移行指示に従い、次のスーパーステップへの移行を行う。なお、数値計算部21は、自身の計算・送信処理fnが完了した後、次ステップ移行指示を受信するまで、inactive状態で待機する。
The
メッセージ送受信部22は、他の分散処理部20や処理サーバ30(worker)との間での情報の送受信を行う。具体的には、メッセージ送受信部22は、BSPにおけるフェーズPH2(データ交換)において、自身の出力エッジの状態を出力メッセージとして、その出力エッジで接続するバーテックスへ向けて送信する。なお、この出力メッセージには、その出力エッジの状態に対応付けてその時点でのスーパーステップのステップ番号が付される。また、メッセージ送受信部22は、入力エッジで接続するバーテックスから入力エッジの状態を入力メッセージとして受信する。また、この入力メッセージには、その入力エッジに状態に対応付けてその時点でのスーパーステップのステップ番号が付される。なお、メッセージ送受信部22は、この出力メッセージおよび入力メッセージを、処理サーバ(worker)30のメッセージ処理部32を介して送受信する。
また、このメッセージ送受信部22は、自身が属する処理サーバ30(worker)から、次ステップ移行指示を受信し、数値計算部21に出力する。
The message transmission /
Further, the message transmitting / receiving
<処理サーバ(worker)>
処理サーバ30(worker)(図9参照)は、管理サーバ10(master)や他の処理サーバ30(worker)と接続される。この処理サーバ30(worker)は、処理単位となる分散処理部20(vertex)を複数備え、自身が備える分散処理部20(vertex)の処理の進行状態等を管理するとともに、他の処理サーバ30(worker)や管理サーバ10(master)との間での情報の送受信を行う。また、この処理サーバ30(worker)は、仮想化制御部31、メッセージ処理部32およびバーテックス管理部33(分散処理管理部)を含んで構成される。
<Processing server (worker)>
The processing server 30 (worker) (see FIG. 9) is connected to the management server 10 (master) and other processing servers 30 (worker). The processing server 30 (worker) includes a plurality of distributed processing units 20 (vertex) which are processing units, and manages the progress of the processing of the distributed processing unit 20 (vertex) provided in itself, and the
仮想化制御部31は、仮想化技術に基づき、処理サーバ30上に仮想化プラットホームを構築し、複数の分散処理部20(仮想マシン)を配置する制御を行う。
The
メッセージ処理部32は、自身に属する各分散処理部20(vertex)から、BSPにおけるフェーズPH2(データ交換)の際に、出力エッジの状態を示す出力メッセージを受け取り、計算対象のグラフGのグラフトポロジに基づき、その出力エッジで接続するバーテックスに、受信した出力メッセージを、入力エッジの状態を示す入力メッセージとして出力する。なお、以降、出力メッセージと入力メッセージとを特に区別しない場合、単に「メッセージ」と称する場合がある。
The
メッセージ処理部32は、出力エッジで隣接する分散処理部20(vertex)へのメッセージを、例えば、次に示す2つのタイミングで送信することができる。
(タイミング1)
自分散処理部20(vertex)の計算終了後に直ちに送信する。
具体的には、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、自身に属する分散処理部20(vertex)であるとき、および、他の処理サーバ30に属する分散処理部20(vertex)であるときに、直ちに、その分散処理部20(vertex)に送信する。
このようにすることにより、通信遅延の影響を低減させることができる。
The
(Timing 1)
It transmits immediately after the end of the calculation of the self-distributed processing unit 20 (vertex).
Specifically, when the
By doing so, the influence of communication delay can be reduced.
(タイミング2)
出力エッジで接続する分散処理部20(vertex)(隣接バーテックス)が、次のスーパーステップに移行する直前までバッファリングする。
具体的には、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、他の処理サーバ30に属する分散処理部20(vertex)であるときに、その分散処理部20(vertex)が次のスーパーステップに移行する情報(次ステップ移行指示)を受ける状態になった時点で、管理サーバ10から、その次ステップ移行指示を出す旨の情報を事前に取得する。そして、移行直前にバッファリングしたメッセージをまとめて出力エッジで接続する分散処理部20(vertex)に送信する。
このようにすることで、他の処理サーバ30に属する分散処理部20(vertex)に送信する回数(通信回数)を削減することができる。
なお、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、自身に属する分散処理部20(vertex)であるとき、上記のような通信回数の削減効果は得られないので、バッファリングせず、直ちに送信するようにする。
(Timing 2)
The distributed processing unit 20 (vertex) (adjacent vertex) connected at the output edge buffers until immediately before moving to the next super step.
Specifically, when the
By doing this, it is possible to reduce the number of transmissions (the number of communication) to the distributed processing unit 20 (vertex) belonging to another
When the
バーテックス管理部33(分散処理管理部)は、自身に属する分散処理部20(vertex)を監視し、各分散処理部20(vertex)が、計算・送信処理fnが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、計算・送信処理fnの完了報告(計算・送信処理完了報告)を生成し、管理サーバ10(master)に送信する。
そして、バーテックス管理部33は、管理サーバ10(master)から、計算・送信処理完了報告に対する応答として、次ステップ移行指示を受信した場合に、その次ステップ移行指示を対象となる分散処理部20(vertex)に出力する。
The vertex management unit 33 (distributed processing management unit) monitors the distributed processing unit 20 (vertex) belonging to itself, and when each distributed processing unit 20 (vertex) completes the calculation and transmission processing f n , that is, the phase When PH1 (local calculation) and phase PH2 (data exchange) are completed, a completion report (calculation / transmission process completion report) of calculation / transmission process f n is generated and transmitted to the management server 10 (master).
Then, the
≪分散同期処理システムの動作≫
次に、分散同期処理システム1の動作について説明する。
図10は、本実施形態に係る分散同期処理システム1の処理の流れを示すシーケンス図である。
なお、ここでは、管理サーバ10(master)により、対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30(worker)への割り振りがすでに終わっているものとして説明する。
<< Operation of distributed synchronous processing system >>
Next, the operation of the distributed
FIG. 10 is a sequence diagram showing a flow of processing of the distributed
Here, the management server 10 (master) sets individual calculation processes (vertex) required for the target calculation process and sets the individual calculation processes (vertex) to each processing server 30 (worker). Explain that allocation has already been completed.
まず、処理サーバ30(worker)のバーテックス管理部33(分散処理管理部)は、自身に属する分散処理部20(vertex)を監視することにより、ある分散処理部20(vertex)について計算・送信処理fnが完了したことを検出する(ステップS10)。そして、バーテックス管理部33は、その分散処理部20(vertex)の識別番号とその時点でのスーパーステップのステップ番号(n)とを付した計算・送信処理完了報告を、管理サーバ10に送信する(ステップS11)。
First, the vertex management unit 33 (distributed processing management unit) of the processing server 30 (worker) monitors and calculates the distributed processing unit 20 (vertex) by monitoring the distributed processing unit 20 (vertex) belonging to the processing server 30 (worker). It is detected that f n has been completed (step S10). Then, the
次に、計算・送信処理完了報告を受信した管理サーバ10(master)は、隣接同期処理部11が、受信した計算・送信処理完了報告で示される分散処理部20(vertex)について、隣接同期の条件を満たすか否かを判定する(ステップS12)。具体的には、隣接同期処理部11は、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」を満たすか否かを判定する。
Next, the management server 10 (master) that has received the calculation / transmission processing completion report determines that the adjacent
そして、管理サーバ10(master)の隣接同期処理部11は、隣接同期の条件を満たさない場合には(ステップS12→No)、処理サーバ30(worker)から次の計算・送信処理完了報告を受信するまで待つ。
Then, when the condition for adjacent synchronization is not satisfied (step S12 → No), the adjacent
一方、ステップS12において、管理サーバ10(master)の隣接同期処理部11は、隣接同期の条件を満たす場合に(ステップS12→Yes)、計算・送信処理完了報告を送信してきた処理サーバ30(worker)に、その分散処理部20(vertex)について、次のスーパーステップに移行するように、次ステップ移行指示を送信する(ステップS13)。
On the other hand, in step S12, the adjacent
また、管理サーバ10(master)の隣接同期処理部11は、ステップS12において、受信した計算・送信処理完了報告で示される分散処理部20(vertex)が出力エッジで接する分散処理部20(vertex)のうち、当該分散処理部20(vertex)のみからの入力メッセージ待ち(入力エッジの状態の取得待ち)」の理由により、inactive状態で待機している分散処理部20(vertex)があるか否かを判定する。そして、隣接同期処理部11は、該当する分散処理部20(vertex)がある場合には、その分散処理部20(vertex)が属する処理サーバ30(worker)に対しても、次ステップ移行指示を送信する。
Further, in step S12, the adjacent
次ステップ移行指示を受信した処理サーバ30(worker)のバーテックス管理部33は、その計算・送信処理fnが完了した分散処理部20(vertex)、および、上記ステップS12の際に、inactive状態で待機していたと判定された分散処理部20(vertex)に対し、次ステップ移行指示を出力する(ステップS14)。これにより、次ステップ移行指示を受信した分散処理部20(vertex)の数値計算部21は、次のスーパーステップ(n+1)の計算・送信処理fn+1を実行する。
The
以上説明したように、本実施形態に係る分散同期処理システム1および分散同期処理方法によれば、比較例の分散同期処理システムにおいて問題であった、システム全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いことの問題、つまり、処理速度/効率性の問題を解決し、処理が著しく遅い分散処理部20(vertex)の影響を低減することができる。
また、プログラマは、バーテックス間の処理の追い越しや上書きを考慮する必要がなく、シンプルなフレームワークとして、本システムのプログラムを作成することが可能となる。
As described above, according to the distributed
Also, the programmer does not have to consider overtaking or overwriting of processing between vertices, and can create a program of this system as a simple framework.
〔本実施形態の変形例〕
次に、本実施形態に係る分散同期処理システム1の変形例について説明する。
図11は、本実施形態の変形例に係る分散同期処理システム1Aの全体構成を示す図である。
図9で示した本実施形態に係る分散同期処理システム1では、管理サーバ10(master)が、各分散処理部20(vertex)について、隣接同期の条件を満たすか否かの判定を行っていた。つまり、隣接同期の判定を管理サーバ10が行う「master集中型」であった。これに対し、図11に示す、分散同期処理システム1Aは、管理サーバ10(master)を備えず、各分散処理部20(vertex)について、隣接同期の条件を満たすか否かの判定を、各処理サーバ30(worker)において自律分散的に実行する。つまり、分散同期処理システム1Aは、自律分散型(master-less型)で、隣接同期を行うことを特徴とする。
具体的には、本実施形態の変形例に係る分散同期処理システム1Aでは、図9に示す分散同期処理システム1における管理サーバ10(master)を備えない構成とするとともに、各処理サーバ30A(worker)におけるバーテックス管理部33を備えないものとし、その代わりに、図11に示すように、処理サーバ30Aに、隣接同期バーテックス管理部34(隣接同期分散管理部)を備えるものとした。
なお、図9で示す構成と同じ機能を備える構成については、同一の名称と符号を付し、説明を省略する。
[Modification of this embodiment]
Next, a modification of the distributed
FIG. 11 is a diagram showing an entire configuration of a distributed synchronous processing system 1A according to a modification of the present embodiment.
In the distributed
Specifically, in the distributed synchronous processing system 1A according to the modification of the present embodiment, the management server 10 (master) in the distributed
In addition, about the structure provided with the same function as the structure shown in FIG. 9, the same name and code | symbol are attached | subjected and description is abbreviate | omitted.
隣接同期バーテックス管理部34(隣接同期分散管理部)は、自身に属する分散処理部20(vertex)を監視し、各分散処理部20(vertex)が、計算・送信処理fnが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、入力エッジで接する全ての分散処理部20(vertex)からの入力メッセージ(入力エッジの状態)が揃っているか否かを判定する。なお、隣接同期バーテックス管理部34は、各分散処理部20(vertex)の入力メッセージ(incomingメッセージ)のバッファ(図4の「Min,n」(現在のステップ用))を参照して、入力メッセージ(入力エッジの状態)が揃っているか否かを判定する。
なお、本実施形態の変形例においても、本実施形態と同様に、処理全体のある時点でみると、各バーテックス間においてスーパーステップがずれる可能性がある。そのため、バーテックス間でメッセージを送受信するときには上書きせずに、スーパーステップ毎に管理する。よって、各バーテックスは、自身のスーパーステップよりも先に、次のスーパーステップに移行した入力エッジで接するバーテックスから取得した入力エッジの状態を、「Min,n+m」として入力メッセージのバッファに記憶しておく。
The adjacent synchronization vertex management unit 34 (adjacent synchronization distribution management unit) monitors the distributed processing units 20 (vertex) belonging to itself, and when each distributed processing unit 20 (vertex) completes the calculation and transmission processing f n , That is, when the phase PH1 (local calculation) and the phase PH2 (data exchange) are completed, whether or not the input messages (state of the input edge) from all the distributed processing units 20 (vertex) in contact with the input edge are aligned. Determine The adjacent synchronization
Also in the modification of the present embodiment, as in the present embodiment, there is a possibility that supersteps may be shifted between the respective vertices when viewed at a certain point in the entire processing. Therefore, when transmitting and receiving messages between vertices, management is performed for each super step without overwriting. Therefore, each vertex uses the state of the input edge acquired from the vertex that is in contact with the input edge that has shifted to the next super step prior to its own super step as “M in, n + m ” in the buffer of the input message. Remember.
そして、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っている場合、つまり、隣接する分散処理部20(vertex)から、次の計算ステップにおいて必要な計算結果の取得が完了している場合には、本実施形態における隣接同期の条件「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」を満たすものとする。隣接同期バーテックス管理部34は、この場合に、次のスーパーステップに移行する(スーパーステップを「+1」する。)ように、「次ステップ移行指示」を、計算・送信処理fnが完了した分散処理部20(vertex)に出力する。
Then, when the input message (the state of the input edge) is complete, the adjacent synchronization
隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)に対し入力エッジで接するいずれかの分散処理部20(vertex)から、当該分散処理部20(vertex)が入力メッセージ(入力エッジの状態)を受信した場合には、その受信を契機として、再度、入力メッセージ(入力エッジの状態)が揃っているか否か、つまり、隣接同期の条件を満たすか否かの判定を実行する。
The adjacent
なお、処理サーバ30A(worker)のメッセージ処理部32は、隣接同期バーテックス管理部34の上記した隣接同期の判定のため、入力エッジの状態としてのデータがない場合(例えば、データが「0」)であっても、フェーズPH1(ローカル計算)が終わった時点で、出力エッジで接する分散処理部20(vertex)に対して、入力メッセージを送信する。また、処理サーバ30A(worker)のメッセージ処理部32は、隣接同期バーテックス管理部34の隣接同期の条件による判定のため、出力メッセージをバッファリングせずに、直ちに送信する。
When the
≪変形例の分散同期処理システムの動作≫
次に、変形例に係る分散同期処理システム1Aの動作について説明する。
図12は、本実施形態の変形例に係る分散同期処理システム1Aの処理の流れを示すフローチャートである。
なお、ここでは、予め対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30A(worker)への割り振りが終わっているものとして説明する。この個々の計算処理(vertex)の設定と、各処理サーバ30A(worker)への割り振りとは、例えば、これらの機能を、システム全体の管理サーバを備えさせたり、処理サーバ30Aの中の代表サーバに備えさせたりすることにより、事前に実行しておけばよい。
<< Operation of the distributed synchronous processing system of the modified example >>
Next, the operation of the distributed synchronous processing system 1A according to the modification will be described.
FIG. 12 is a flowchart showing the process flow of the distributed synchronous processing system 1A according to the modification of the present embodiment.
Here, it is assumed that setting of individual calculation processing (vertex) necessary for target calculation processing and allocation of each calculation processing (vertex) to each
まず、処理サーバ30A(worker)の隣接同期バーテックス管理部34(隣接同期分散管理部)は、自身に属する分散処理部20(vertex)を監視することにより、ある分散処理部20(vertex)について計算・送信処理fnが完了したことを検出する(ステップS20)。
First, the adjacent synchronization vertex management unit 34 (adjacent synchronization distribution management unit) of the
続いて、隣接同期バーテックス管理部34は、その分散処理部20(vertex)について、入力エッジで接する全ての分散処理部20(vertex)からの入力メッセージ(入力エッジの状態)が揃っているか否かを判定する(ステップS21)。
Subsequently, with respect to the distributed processing unit 20 (vertex), the adjacent synchronous
ここで、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っていると判定した場合には(ステップS21→Yes)、隣接同期の条件「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fnが完了していること」を満たすものし、後記するステップS24(「次ステップ移行指示」の出力)に進む。
Here, when the adjacent synchronization
一方、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っていないと判定した場合には(ステップS21→No)、「次ステップ移行指示」を出力しない。そのため、その計算・送信処理fnが完了した分散処理部20(vertex)は、inactive状態での待機となる(ステップS22)。
On the other hand, when the adjacent synchronization
続いて、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)に対し、入力エッジで接するいずれかの分散処理部20(vertex)から、当該分散処理部20(vertex)が入力メッセージ(入力エッジの状態)を受信したか否かを判定する(ステップS23)。そして、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)が入力メッセージを受信していなければ(ステップS23→No)、受信するまで待つ。一方、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)が入力メッセージを受信した場合には(ステップS23→Yes)、そのことを契機として、ステップS21に戻る。
Subsequently, the adjacent synchronization
一方、隣接同期バーテックス管理部34は、隣接同期の条件を満たす場合には(ステップS21→Yes)、ステップS24において、その分散処理部20(vertex)について、次のスーパーステップに移行するように、「次ステップ移行指示」を出力する。これにより、「次ステップ移行指示」を受信した分散処理部20(vertex)の数値計算部21は、次のスーパーステップ(n+1)の計算・送信処理fn+1を実行する。
On the other hand, when the condition for adjacent synchronization is satisfied (step S21 → Yes), the adjacent synchronization
以上説明したように、本実施形態の変形例に係る分散同期処理システム1Aおよび分散同期処理方法によれば、本実施形態に係る分散同期処理システム1の効果に加えて、自律分散型を採用することにより、管理サーバ10(master)のボトルネックを回避し、大規模なグラフGにおいても、処理速度/効率性を担保することができる。
As described above, according to the distributed synchronization processing system 1A and the distributed synchronization processing method according to the modification of the present embodiment, in addition to the effects of the distributed
1,1A 分散同期処理システム
10 管理サーバ(master)
11 隣接同期処理部
20 分散処理部(vertex)
21 数値計算部
22 メッセージ送受信部
30,30A 処理サーバ(worker)
31 仮想化制御部
32 メッセージ処理部
33 バーテックス管理部(分散処理管理部)
34 隣接同期バーテックス管理部(隣接同期分散管理部)
1,1A Distributed
11 adjacent synchronization processing unit 20 distributed processing unit (vertex)
21
31.
34 Adjacent sync vertex manager (adjacent sync distribution manager)
Claims (4)
前記処理サーバは、
前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信するとともに、
前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する分散処理管理部を備え、
前記管理サーバは、
前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する隣接同期処理部を備えること
を特徴とする分散同期処理システム。 A management that assigns a plurality of processing servers performing processing in parallel, a plurality of distributed processing units operating on the processing server, and a plurality of distributed processing units required for the target calculation processing to the plurality of processing servers A distributed synchronous processing system having a server;
The processing server is
It detects the completion of calculation / transmission processing indicating the transmission processing to the distributed processing unit connected as the output destination of the calculation processing and the calculation result in the predetermined calculation step by the distributed processing unit, and completes the calculation / transmission processing Generating a completion report to be sent to the management server,
The distributed processing management unit is configured to receive, from the management server, an instruction to move to the next step, which is an instruction to shift to the next calculation step, and output the instruction to the distributed processing unit that has completed the calculation and transmission process.
The management server is
The distributed processing unit that has received the completion report and completed the calculation / transmission process is connected as an input source of the calculation result whether acquisition of the calculation result necessary in the next calculation step is completed. It determines based on whether the completion report from the distributed processing unit has been received, and transmits the next step shift instruction to the processing server that has sent the completion report when acquisition of the calculation result is completed. A distributed synchronization processing system comprising: an adjacent synchronization processing unit.
前記処理サーバは、
前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、
前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する隣接同期分散管理部を備えること
を特徴とする分散同期処理システム。 A distributed synchronous processing system, comprising: a plurality of processing servers performing processing in parallel; and a plurality of distributed processing units operating on the processing server,
The processing server is
Detection of completion of calculation / transmission processing indicating transmission processing to the distributed processing unit connected as the output destination of the calculation processing and the calculation result in a predetermined calculation step by the distributed processing unit;
The distributed processing unit that has completed the calculation / transmission processing determines whether acquisition of the calculation result necessary in the next calculation step has been completed from the distributed processing unit connected as an input source of the calculation result, The adjacent synchronization and distribution management unit which outputs, to the distributed processing unit that has completed the calculation / transmission processing, an instruction to move to the next step, which is an instruction to shift to the next calculation step, when acquisition of the calculation result is completed. A distributed synchronous processing system comprising:
前記処理サーバは、
前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信する手順と、
前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行し、
前記管理サーバは、
前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する手順を実行すること
を特徴とする分散同期処理方法。 A management that assigns a plurality of processing servers performing processing in parallel, a plurality of distributed processing units operating on the processing server, and a plurality of distributed processing units required for the target calculation processing to the plurality of processing servers A distributed synchronous processing method of a distributed synchronous processing system having a server;
The processing server is
It detects the completion of calculation / transmission processing indicating the transmission processing to the distributed processing unit connected as the output destination of the calculation processing and the calculation result in the predetermined calculation step by the distributed processing unit, and completes the calculation / transmission processing A procedure for generating a completion report to be sent and sending it to the management server;
Receiving from the management server an instruction to move to the next step, which is an instruction to shift to the next calculation step, and outputting the calculation / transmission processing to the distributed processing unit that has completed the processing;
The management server is
The distributed processing unit that has received the completion report and completed the calculation / transmission process is connected as an input source of the calculation result whether acquisition of the calculation result necessary in the next calculation step is completed. It determines based on whether the completion report from the distributed processing unit has been received, and transmits the next step shift instruction to the processing server that has sent the completion report when acquisition of the calculation result is completed. A distributed synchronous processing method characterized in performing a procedure.
前記処理サーバは、
前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出する手順と、
前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行すること
を特徴とする分散同期処理方法。 A distributed synchronous processing method of a distributed synchronous processing system, comprising: a plurality of processing servers performing processing in parallel; and a plurality of distributed processing units operating on the processing server,
The processing server is
A procedure for detecting completion of calculation / transmission processing indicating transmission processing to a distributed processing unit connected as a calculation processing and output destination of calculation results in a predetermined calculation step by the distributed processing unit;
The distributed processing unit that has completed the calculation / transmission processing determines whether acquisition of the calculation result necessary in the next calculation step has been completed from the distributed processing unit connected as an input source of the calculation result, Executing a procedure of outputting a next step shift instruction, which is an instruction to shift to the next calculation step, to the distributed processing unit that has completed the calculation / transmission process when the acquisition of the calculation result is completed Distributed synchronous processing method characterized by:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016166182A JP6535304B2 (en) | 2016-08-26 | 2016-08-26 | Distributed synchronous processing system and distributed synchronous processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016166182A JP6535304B2 (en) | 2016-08-26 | 2016-08-26 | Distributed synchronous processing system and distributed synchronous processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018032344A JP2018032344A (en) | 2018-03-01 |
JP6535304B2 true JP6535304B2 (en) | 2019-06-26 |
Family
ID=61303509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016166182A Active JP6535304B2 (en) | 2016-08-26 | 2016-08-26 | Distributed synchronous processing system and distributed synchronous processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6535304B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023188256A1 (en) * | 2022-03-31 | 2023-10-05 | 日本電信電話株式会社 | Model learning device, secret federated learning device, method for these, and program |
WO2023188257A1 (en) * | 2022-03-31 | 2023-10-05 | 日本電信電話株式会社 | Secret global model calculation device, local model registration method, and program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2772304B2 (en) * | 1992-04-10 | 1998-07-02 | 富士通株式会社 | Load balancing method for parallel processing |
JP5304194B2 (en) * | 2008-11-19 | 2013-10-02 | 富士通株式会社 | Barrier synchronization apparatus, barrier synchronization system, and control method of barrier synchronization apparatus |
JP2013069189A (en) * | 2011-09-26 | 2013-04-18 | Hitachi Ltd | Parallel distributed processing method and parallel distributed processing system |
JP6160571B2 (en) * | 2014-07-18 | 2017-07-12 | 株式会社デンソー | Data processing device |
-
2016
- 2016-08-26 JP JP2016166182A patent/JP6535304B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018032344A (en) | 2018-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025205B (en) | Method and equipment for training model in distributed system | |
EP2834755B1 (en) | Platform for continuous graph update and computation | |
CN109697120B (en) | Method for application migration and electronic device | |
JP6450330B2 (en) | Parallel computing device and parallel computing method | |
EP3253027A1 (en) | Resource allocation method and apparatus for virtual machines | |
IL223484A (en) | Method for configuring a distributed avionics control system | |
CN103077070B (en) | Cloud computing management system and management method for cloud computing systems | |
US10498817B1 (en) | Performance tuning in distributed computing systems | |
KR101578177B1 (en) | Method and system for migration based on resource utilization rate in cloud computing | |
JP7050957B2 (en) | Task scheduling | |
JP6371778B2 (en) | Process migration method and computer system | |
CN104239120A (en) | State information synchronization method, state information synchronization device and state information synchronization system for virtual machine | |
JP6535304B2 (en) | Distributed synchronous processing system and distributed synchronous processing method | |
US9124587B2 (en) | Information processing system and control method thereof | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
CN105978712A (en) | Method for cloud computation management system | |
US9645867B2 (en) | Shuffle optimization in map-reduce processing | |
Mubeen et al. | Extracting timing models from component-based multi-criticality vehicular embedded systems | |
Yoginath et al. | Parallel vehicular traffic simulation using reverse computation-based optimistic execution | |
Pedarsani et al. | Scheduling tasks with precedence constraints on multiple servers | |
JP6688240B2 (en) | Distributed synchronous processing system and distributed synchronous processing method | |
Eisele et al. | Towards an architecture for evaluating and analyzing decentralized fog applications | |
CN111465920A (en) | Management of data written to a memory controller via a bus interface during a remote copy operation | |
US10216547B2 (en) | Hyper-threaded processor allocation to nodes in multi-tenant distributed software systems | |
US10353735B2 (en) | Computing system including independent coupling facilities maintaining equivalency based on sequence values |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180813 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190424 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190531 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6535304 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |