JP2019035997A - Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program - Google Patents
Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program Download PDFInfo
- Publication number
- JP2019035997A JP2019035997A JP2017155099A JP2017155099A JP2019035997A JP 2019035997 A JP2019035997 A JP 2019035997A JP 2017155099 A JP2017155099 A JP 2017155099A JP 2017155099 A JP2017155099 A JP 2017155099A JP 2019035997 A JP2019035997 A JP 2019035997A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- distributed
- replica
- calculation
- processing server
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、分散配置された複数のサーバを同期させて処理を実行する分散同期処理システム、分散同期処理方法および分散同期処理プログラムに関する。 The present invention relates to a distributed synchronization processing system, a distributed synchronization processing method, and a distributed synchronization processing program that execute processing by synchronizing a plurality of distributed servers.
ネットワーク上に複数のサーバを分散配置する分散処理システムのフレームワークとして、非特許文献1にはMapReduceが開示されている。ただし、このMapReduceは、処理の度に、外部のデータストアからの入力データの読み込みや、結果の書き出し処理が必要であるため、ある処理の結果を次の処理で利用するようなイテレーティブな(反復する)処理には向いていない。この種の処理には、非特許文献2に開示されているBSP(Bulk Synchronous Parallel:バルク同期並列)が適している。
Non-Patent
このBSPは、「スーパーステップ(SS:superstep)」という処理単位を繰り返し実行することにより、分散環境でのデータ処理を実行する。図18は、BSP計算モデルを説明するための図である。
1つのスーパーステップは、図18に示すように、3つのフェーズ(PH:phase)として、「ローカル計算(LC:Local computation)」(フェーズPH1)、「データ交換(Com:Communication)」(フェーズPH2)、「同期(Sync)」(フェーズPH3)により構成される。
The BSP executes data processing in a distributed environment by repeatedly executing a processing unit called “superstep (SS)”. FIG. 18 is a diagram for explaining the BSP calculation model.
As shown in FIG. 18, one super-step includes three phases (PH: phase): “local computation (LC)” (phase PH1) and “data exchange (Com: Communication)” (phase PH2). ), “Sync” (phase PH3).
具体的には、複数のノード(ノード1〜ノード4)のうちのいずれかのノードがデータを受信すると、そのノード(例えば、ノード1)がフェーズPH1において、そのデータについての計算処理(ローカル計算〔LC〕)を実行する。続いて、フェーズPH2において、各ノードが保持しているローカル計算の結果であるデータについて、ノード間でのデータ交換を実行する。次に、フェーズPH3において、同期処理を行う、より詳細には、すべてのノード間でのデータ交換の終了を待つ。
そして、スーパーステップSS1として、一連のスーパーステップの処理(PH1〜PH3)が終了すると、各ノードはその計算結果を保持した上で、次の一連の処理であるスーパーステップSS2へと進む。以下、同様にして、複数のスーパーステップが繰り返される。
Specifically, when any one of a plurality of nodes (
Then, as a super step SS1, when a series of super step processing (PH1 to PH3) is completed, each node holds the calculation result, and then proceeds to the next series of processing, the super step SS2. Thereafter, a plurality of super steps are repeated in the same manner.
従来、分散同期処理システムのフレームワークでは、マスタ(master)/ワーカ(worker)モデルを採用しており、システムを管理する管理サーバ(マスタ)が、対象とする計算処理の全体を所定単位に細分化した個々の計算処理を処理サーバ(ワーカ)に割り振ることとしている。
非特許文献3には、BSPを採用した分散同期処理システムのフレームワークとして、Pregelが開示されている。このPregel等のフレームワークでは、全体の処理をグラフG=(V,E)として表現し、これをBSPに適用して実行する。ここで、Vは「バーテックス(vertex:頂点)の集合」であり、各頂点は、細分化された個々の処理内容に対応する。また、Eは「エッジ(edge:辺)の集合」であり、有向辺は、各頂点間の情報伝達を行う経路に対応する。
Conventionally, the framework of a distributed synchronous processing system has adopted a master / worker model, and the management server (master) that manages the system subdivides the entire calculation processing into predetermined units. Individualized calculation processes are allocated to processing servers (workers).
Non-Patent
ここで、図20を参照して、従来の分散同期処理システムにおける処理の流れについて説明する。なお、計算対象は、図19に示すグラフトポロジ(グラフG)であることとする。また、図20に示すように、分散同期処理システム100Aが2台のworker(worker1,worker2)で構成され、頂点(vertex)V1〜V6のうち、頂点(vertex)V1〜V3をworker1が担当し、頂点(vertex)V4〜V6をworker2が担当するものとする。以下、全体の処理の流れを通して説明する。
Here, the flow of processing in the conventional distributed synchronous processing system will be described with reference to FIG. The calculation target is the graph topology (graph G) shown in FIG. Further, as shown in FIG. 20, the distributed synchronous processing system 100A includes two workers (
まず、各worker(worker1,worker2)は、masterからの指示で、担当する頂点(vertex)のスーパーステップを実行する(ステップS100)。具体的には、フェーズPH1のローカル計算を実行し、スーパーステップの処理を開始する。
次に、各workerは、自身が担当する頂点(vertex)の処理の進行を監視し、各頂点(vertex)が、フェーズPH2のデータ交換まで完了したか否かを判定する。そして、各workerは、担当するすべての頂点(vertex)が、フェーズPH2までの処理を完了したと確認した場合に、その完了情報をmasterに報告する(ステップS101,S102)。
First, each worker (worker1, worker2) executes a super step of a vertex (vertex) in charge according to an instruction from the master (step S100). Specifically, the local calculation of the phase PH1 is executed, and the super step process is started.
Next, each worker monitors the progress of the processing of the vertex (vertex) that he / she is in charge of, and determines whether or not each vertex (vertex) has completed the data exchange in the phase PH2. When each worker confirms that all vertices in charge have completed the processing up to phase PH2, the worker reports the completion information to the master (steps S101 and S102).
続いて、masterは、すべてのworker(ここでは、worker1,worker2)から完了情報を受信した場合に、スーパーステップを「+1」更新し、各頂点(vertex)に次のスーパーステップの実行を指示する(ステップS103)。
そして、masterおよび各workerは、ステップS100〜S103の動作を繰り返す。
Subsequently, when receiving completion information from all workers (here,
The master and each worker repeat the operations of steps S100 to S103.
従来の分散同期処理システム100Aは、スーパーステップごとに、計算対象となるすべての頂点(vertex)で同期を行う。具体的には、図20に示す全体同期ポイントにおいて同期を行うため、最も遅い頂点(vertex)の処理後に同期が完了することになる。例えば、図20のスーパーステップSS1では、頂点(vertex)V1〜V6のうち、最も遅い頂点(vertex)V2の処理後に同期が完了する。また、スーパーステップSS2では、最も遅い頂点(vertex)V6の処理後に同期が完了する。よって、著しく処理が遅い頂点(vertex)があると、その頂点(vertex)の処理後に同期が完了するため、頂点(vertex)の処理全体が著しく遅延してしまう。 The conventional distributed synchronization processing system 100A performs synchronization at every vertex (vertex) to be calculated for each super step. Specifically, since synchronization is performed at the entire synchronization point shown in FIG. 20, the synchronization is completed after the processing of the slowest vertex (vertex). For example, the Super step SS1 in FIG. 20, of the vertex (vertex) V 1 ~V 6, the slowest vertex (vertex) synchronized after processing V 2 is completed. Furthermore, the Super step SS2, the slowest vertex (vertex) synchronized after processing V 6 is completed. Therefore, if there is a vertex (vertex) that is extremely slow in processing, synchronization is completed after the processing of that vertex (vertex), and the entire processing of the vertex (vertex) is significantly delayed.
このような問題を解決するため非特許文献4の分散同期処理システムでは、従来の全頂点(vertex)での同期を行わず、頂点(vertex)ごとに次のスーパーステップへの移行を判断している。具体的には、非特許文献4の分散同期処理システムでは、「自頂点(vertex)およびグラフトポロジの入力辺で接するすべての頂点(vertex)の計算・交換処理(ローカル計算〔フェーズPH1〕およびデータ交換〔フェーズPH2〕)が完了していること」(隣接同期)を満たしている場合に、各頂点(vertex)が次のスーパーステップに移行するものとしている。
In order to solve such a problem, the distributed synchronization processing system of Non-Patent
図21は、図20で説明した従来の分散同期処理システム100Aが実行する処理の流れ(図21(a)参照)と、非特許文献4に記載された従来の分散同期処理システム100Bが実行する処理の流れ(図21(b)参照)とを示す図である。
従来の分散同期処理システム100Bでは、前記したように、「自頂点(vertex)および入力辺で接するすべての頂点(vertex)の計算・交換処理(ローカル計算〔フェーズPH1〕およびデータ交換〔フェーズPH2〕)が完了していること」(隣接同期)により、次のスーパーステップに移行する。
FIG. 21 shows the flow of processing executed by the conventional distributed synchronous processing system 100A described with reference to FIG. 20 (see FIG. 21A) and the conventional distributed synchronous processing system 100B described in Non-Patent
In the conventional distributed synchronous processing system 100B, as described above, “calculation / exchange processing of local vertex (vertex) and all vertices (vertex) that touch at the input side (local calculation [phase PH1] and data exchange [phase PH2]”) ) Is completed ”(adjacent synchronization), the process proceeds to the next super step.
例えば、図21(b)の頂点(vertex)V4に着目すると、頂点(vertex)V4は、入力辺で接する頂点(vertex)V5,V6の計算・交換処理と自身の計算・交換処理が終わった時点が隣接同期ポイントとなる。
ここで、頂点(vertex)V4は、スーパーステップSS1のとき、自身の計算・交換処理が終わった時点では、頂点(vertex)V4の計算・交換処理は終わっているが、頂点(vertex)V5,V6の計算・交換処理が終わっていないため、待機状態となり、頂点(vertex)V5,V6の計算・交換処理が終わった時点が隣接同期ポイントとなる。
For example, when attention is paid to the vertex (vertex) V 4 in FIG. 21B, the vertex (vertex) V 4 is calculated and exchanged with the vertexes (vertex) V 5 and V 6 which are in contact with each other on the input side. The point in time when the processing is completed becomes the adjacent synchronization point.
Here, the vertex (vertex) V 4 is calculated at the super-step SS1, and when the calculation / exchange processing of the vertex (vertex) V 4 is completed, the vertex (vertex) V 4 is finished. Since the calculation / exchange processing of V 5 and V 6 has not been completed, a standby state is entered, and the point in time when the calculation / exchange processing of vertices V 5 and V 6 is completed becomes the adjacent synchronization point.
また、頂点(vertex)V1に着目すると、頂点(vertex)V1は、入力辺で接する頂点(vertex)は存在しない。よって、スーパーステップSS1のとき、自頂点(vertex)の計算・送信処理が終了した時点が隣接同期ポイントとなる。
すなわち、分散同期処理システム100Bは、すべての頂点(vertex)の計算・交換処理が完了していなくても、隣接同期ポイントで次のスーパーステップに移行することができる。
このように、分散同期処理システム100Bは、分散同期処理システム100Aに比べて、フェーズPH3の同期完了までの時間を大幅に削減することができるため、システム全体としての処理速度や各workerの利用効率を改善することができる。
Further, paying attention to the vertex (vertex) V 1, the vertex (vertex) V 1 is the vertex in contact with the input side (vertex) is not present. Therefore, at the time of super step SS1, the time point when the calculation / transmission processing of the own vertex (vertex) is completed becomes the adjacent synchronization point.
That is, the distributed synchronization processing system 100B can move to the next super step at the adjacent synchronization point even if the calculation / exchange processing of all the vertices is not completed.
As described above, the distributed synchronous processing system 100B can significantly reduce the time until the synchronization of the phase PH3 is completed as compared with the distributed synchronous processing system 100A. Therefore, the processing speed and the utilization efficiency of each worker as the entire system Can be improved.
従来のBPS(バルク同期並列)等のように、分散環境で計算処理を並行して行い、定期的に同期させる分散同期処理システムでは、計算処理(データ量、CPU負荷等)が常に変動するため、予め計算処理がサーバ間で均等になるように処理を分散することは困難である。 In a distributed synchronous processing system that performs calculation processing in parallel in a distributed environment and synchronizes periodically, such as conventional BPS (bulk synchronous parallel), the calculation processing (data amount, CPU load, etc.) always fluctuates. It is difficult to distribute the processing so that the calculation processing is equalized among the servers in advance.
ここで、図22を参照して、従来の問題点について説明する。なお、計算対象は、図22に示すグラフトポロジ(グラフG)であることとする。また、図22に示すように、分散同期処理システムが2台のworker(worker1,worker2)で構成され、頂点(vertex)V1〜V3のうち、頂点(vertex)V1,V2をworker1が担当し、頂点(vertex)V3をworker2が担当するものとする。
また、ここでは、説明を簡略化するため、頂点(vertex)V1〜V3の各動作ステップは、CPUの1コア(CORE)で数字の順に動作するものとする。
Here, conventional problems will be described with reference to FIG. The calculation target is the graph topology (graph G) shown in FIG. Further, as shown in FIG. 22, the distributed synchronous processing system is configured by two workers (workers 1 and 2 ), and among the vertices V 1 to V 3 , the vertices V 1 and V 2 are assigned to worker 1 . but in charge, the vertex (vertex) V 3 it is assumed that the worker2 is responsible.
In addition, here, in order to simplify the description, it is assumed that the operation steps of the vertices (vertex) V 1 to V 3 operate in numerical order with one core (CORE) of the CPU.
図22に示すように、worker1は、スーパーステップSS1として、頂点(vertex)V1,V2において、1〜12ステップで処理を実行する。一方、worker2は、スーパーステップSS1として、頂点(vertex)V3において、1〜3ステップで処理を実行する。
ここで、worker1は、スーパーステップSS1の処理が完了した後、頂点(vertex)V1,V2において、13ステップ目でスーパーステップSS2の処理を開始する。
一方、worker2は、スーパーステップSS1の処理が完了した後、頂点(vertex)V3において、スーパーステップSS2の処理を開始する。このとき、worker2は、スーパーステップSS2の処理を開始するためには、頂点(vertex)V3において、worker1の頂点(vertex)V2の計算完了まで待機しなければならない。
As illustrated in FIG. 22, worker1 executes processing in 1 to 12 steps at vertices V 1 and V 2 as super step SS1. On the other hand,
Here, worker 1 starts the process of super step SS2 at the 13th step at vertexes (vertex) V 1 and V 2 after the process of super step SS1 is completed.
Meanwhile, worker2 After the process of super-step SS1 is completed, at the apex (vertex) V 3, starts the process of super-step SS2. At this time, worker 2 must wait until the calculation of vertex (vertex) V 2 of
このとき、worker1の頂点(vertex)V2の処理が完了するのは、8ステップ目である。そのため、worker2は、頂点(vertex)V3において、スーパーステップSS2の処理を開始するのは9ステップ目となる。すなわち、worker2は、4〜8ステップの間、頂点(vertex)V2の処理の待機状態となり、待機時間が発生してしまう。 At this time, to process vertices (vertex) V 2 of worker1 is completed, an 8 th step. Therefore, worker2 is at the apex (vertex) V 3, to start the process of a super step SS2 is nine-th step. That is, worker 2 is in a standby state for processing vertex (vertex) V 2 for 4 to 8 steps, and standby time occurs.
本発明は、このような問題に鑑みてなされたもので、分散同期処理を行うシステムにおいて、待機時間を抑制し、システム全体としての処理時間を短縮させることが可能な分散同期処理システム、分散同期処理方法および分散同期処理プログラムを提供することを課題とする。 The present invention has been made in view of such a problem, and in a system that performs distributed synchronization processing, a distributed synchronization processing system and distributed synchronization that can reduce standby time and shorten processing time as a whole system. It is an object to provide a processing method and a distributed synchronization processing program.
前記課題を解決するため、請求項1に記載の発明は、仮想マシンである分散処理部を一または複数動作させる処理サーバを複数接続し、予め定めたグラフトポリジで、前記分散処理部間で同期して計算処理を行う分散同期処理システムであって、前記処理サーバは、リソースを管理するリソース管理手段と、前記分散処理部間で計算結果を含む計算完了メッセージを送受信するデータ転送手段と、自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で前記計算結果の待ち状態となり、かつ、前記リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信する遅れ制御手段と、前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるレプリカ制御手段と、を備え、前記遅れ制御手段は、前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信することを特徴とする。
In order to solve the above-mentioned problem, the invention according to
また、前記課題を解決するため、請求項5に記載の発明は、仮想マシンである分散処理部を一または複数動作させる処理サーバを複数接続し、予め定めたグラフトポリジで、前記分散処理部間で同期して計算処理を行う分散同期処理方法であって、前記処理サーバは、自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で計算結果の待ち状態となり、かつ、リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信するステップと、前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるステップと、を実行し、前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信するステップを実行することを特徴とする。
In order to solve the above-mentioned problem, the invention according to
また、前記課題を解決するため、請求項6に記載の発明は、仮想マシンである分散処理部を一または複数動作させる処理サーバを複数接続し、予め定めたグラフトポリジで、前記分散処理部間で同期して計算処理を行う分散同期処理システムにおける前記処理サーバのコンピュータを、リソースを管理するリソース管理手段、前記分散処理部間で計算結果を含む計算完了メッセージを送受信するデータ転送手段、自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で前記計算結果の待ち状態となり、かつ、前記リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信する遅れ制御手段、前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるレプリカ制御手段、として機能させるための分散同期処理プログラムであり、前記遅れ制御手段は、前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信することを特徴とする。
In order to solve the above-mentioned problem, the invention according to
請求項1,5,6に記載の発明によれば、分散同期処理システムは、同期を待ち、かつ、空きリソースがある処理サーバが、他の処理サーバの分散処理部の動作をレプリカにより並行して開始することができる。これによって、本発明は、各処理サーバのリソースを効率よく利用することができ、システム全体として、計算処理の処理時間を短縮させることができる。 According to the first, fifth, and sixth aspects of the present invention, the distributed synchronous processing system waits for synchronization, and the processing server having free resources makes the operations of the distributed processing units of other processing servers in parallel by replicas. Can start. As a result, the present invention can efficiently use the resources of each processing server, and the processing time of calculation processing can be shortened as a whole system.
また、請求項2に記載の発明は、請求項1に記載の分散同期処理システムにおいて、前記データ転送手段が、自身の処理サーバ上の前記レプリカが計算を完了した段階で、前記レプリカのオリジナルである分散処理部が動作する他の処理サーバに、前記レプリカの計算結果を含む前記計算完了メッセージを送信し、前記他の処理サーバから、前記レプリカの計算結果を含む前記計算完了メッセージを受信した段階で、前記オリジナルの分散処理部の計算を終了させ、前記オリジナルの分散処理部の計算結果の出力先に前記計算完了メッセージを送信することを特徴とする。
The invention according to
請求項2に記載の発明によれば、レプリカがオリジナルの分散処理部よりも早く計算処理を終了した段階で、レプリカの計算処理結果を採用し、オリジナルの分散処理部の計算処理を中止させることができる。これによって、本発明は、不要になった計算処理を早期に中止させて、システム全体の効率化を図ることができる。
According to the invention described in
また、請求項3に記載の発明は、請求項1または請求項2に記載の分散同期処理システムにおいて、オリジナルの分散処理部に対するレプリカが構築されている状態を管理するレプリカ管理手段を備え、前記データ転送手段は、自身の処理サーバ上の分散処理部から他の分散処理部に前記計算結果を送信する段階で、前記レプリカ管理手段において、前記自身の処理サーバ上の分散処理部に対するレプリカが構築されている状態である場合に、前記レプリカを構築している他の処理サーバに前記レプリカの動作の中止を指示するレプリカ制御メッセージを送信し、前記レプリカ制御手段は、他の処理サーバから、前記レプリカの動作の中止を指示するレプリカ制御メッセージを受信した段階で、前記レプリカの動作を中止させることを特徴とする。
The invention according to
請求項3に記載の発明によれば、レプリカよりもオリジナルの分散処理部が早く計算処理を終了した段階で、レプリカの計算処理を中止させることができる。これによって、本発明は、不要になった計算処理を早期に中止させて、システム全体の効率化を図ることができる。 According to the third aspect of the invention, the replica calculation process can be stopped when the original distributed processing unit finishes the calculation process earlier than the replica. As a result, the present invention can stop the calculation processing that is no longer necessary at an early stage, and can improve the efficiency of the entire system.
また、請求項4に記載の発明は、請求項1から請求項3のいずれか一項に記載の分散同期処理システムにおいて、前記処理サーバは、自身の処理サーバ上で動作する分散処理部を、自身の処理サーバ上で動作するレプリカよりも優先して動作させることを特徴とする。
The invention according to
請求項4に記載の発明によれば、処理サーバ上で動作する分散処理部の動作を、本来他の処理サーバで動作する分散処理部のレプリカよりも優先して動作させることで、オリジナルの分散処理部の処理速度への影響を抑えることができる。 According to the fourth aspect of the invention, the operation of the distributed processing unit operating on the processing server is operated in preference to the replica of the distributed processing unit originally operating on another processing server, so that the original distributed The influence on the processing speed of the processing unit can be suppressed.
本発明によれば、分散同期処理を行う際に、同期を待ち、かつ、空きリソースがある処理サーバが、他の処理サーバの分散処理部の動作を投機的に実行することができる。
これによって、本発明は、空きリソースがある処理サーバを有効に活用し、待ち状態となっている処理サーバの待機時間を短縮し、システム全体として、同期処理計算の高速化を図ることができる。
According to the present invention, when performing distributed synchronization processing, a processing server waiting for synchronization and having free resources can speculatively execute the operation of the distributed processing unit of another processing server.
As a result, the present invention can effectively use a processing server having free resources, shorten the waiting time of a processing server in a waiting state, and increase the speed of synchronous processing calculation as a whole system.
本発明の実施形態について図面を参照して説明する。
≪分散同期処理システムの処理概要≫
まず、図1,図2を参照して、本発明の実施形態に係る分散同期処理システム1の処理概要について説明する。なお、計算対象は、図1に示すグラフトポロジ(グラフG)であることとする。また、図1に示すように、分散同期処理システム1が2台のworker(worker1,worker2〔処理サーバ〕)で構成され、頂点(vertex)V1〜V3(分散処理部)のうち、頂点(vertex)V1,V2をworker1が担当し、頂点(vertex)V3をworker2が担当するものとする。
また、ここでは、説明を簡略化するため、頂点(vertex)V1〜V3の各動作ステップは、CPUの1コア(CORE)で数字の順に動作するものとする。
Embodiments of the present invention will be described with reference to the drawings.
≪Overview of distributed synchronous processing system≫
First, with reference to FIG. 1 and FIG. 2, an outline of processing of the distributed
In addition, here, in order to simplify the description, it is assumed that the operation steps of the vertices (vertex) V 1 to V 3 operate in numerical order with one core (CORE) of the CPU.
図1に示すように、worker1は、スーパーステップSS1として、頂点(vertex)V1,V2において、1,2,…の各ステップで処理を実行する。また、worker2は、スーパーステップSS1として、頂点(vertex)V3において、1〜3ステップで処理を実行する。ここで、worker2は、スーパーステップSS2に移行するには、まだ完了していないworker1の頂点(vertex)V2の計算処理の結果が必要となる。
As shown in FIG. 1, worker1 as super step SS1, at the apex (vertex) V 1, V 2 , 1,2, and performs processing in a ... each step. Further, worker2 as super step SS1, at the apex (vertex) V 3, and performs processing in a 1-3 steps. Here, worker 2 needs the result of calculation processing of vertex (vertex) V 2 of
そこで、worker2は、リソースに空きがある場合、worker1の頂点(vertex)V2の複製であるレプリカRをworker2上に構築し、レプリカRにおいて、頂点(vertex)V2と同じ処理を、4〜7ステップで実行する。
図1の場合、worker1は、7ステップでは、オリジナルである頂点(vertex)V2の処理が完了していない。そこで、オリジナルである頂点(vertex)V2は、自身の計算途中のデータを、レプリカRの計算結果であるデータに置換する。
これによって、worker1は、頂点(vertex)V2の計算処理を早く終了させ、システム全体として計算時間を短縮させることができる。
Therefore, worker 2 constructs replica R, which is a duplicate of
In the case of FIG. 1,
Thus, worker1 the vertex (vertex) calculation processing V 2 quickly terminate the, it is possible to shorten the calculation time as a whole system.
なお、レプリカRの計算処理が、オリジナルの頂点(vertex)V2の計算処理よりも時間がかかった場合、図2に示すように、worker1は、worker2に対して、レプリカRの計算処理を中止させる。
図2の場合、worker1は、4ステップで頂点(vertex)V2の処理が完了しているが、レプリカRは処理を完了していない。そこで、オリジナルである頂点(vertex)V2は、レプリカRの計算を中止させる。
これによって、必要以上にシステムに負荷をかけることを防止することができる。
以下、この処理概要で説明した分散同期処理システムを実現するための分散同期処理システムの構成および動作について詳細に説明する。
In the case where the calculation process of the replica R is took the original vertices (vertex) time than computing the V 2, as shown in FIG. 2, worker1, relative worker2, stops the calculation processing of the replica R Let
In the case of FIG. 2,
As a result, it is possible to prevent an unnecessary load on the system.
Hereinafter, the configuration and operation of the distributed synchronization processing system for realizing the distributed synchronization processing system described in this processing overview will be described in detail.
≪分散同期処理システムの構成≫
図3に示すように、分散同期処理システム1は、管理サーバ10と、管理サーバ10にそれぞれ接続され並列に処理を行う複数の処理サーバ30と、を備える。なお、処理サーバ30上では、一または複数の分散処理部20(仮想マシン)が動作する。
≪Configuration of distributed synchronous processing system≫
As illustrated in FIG. 3, 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によって実行される。なお、図4〜図6において、管理サーバ10、分散処理部20および処理サーバ30の内部は、RAMに展開されたプログラム(管理プログラム、分散処理プログラムおよび分散同期処理プログラム)によって実現される機能を、ブロックとして示している。
The
管理サーバ10(master)は、システム全体を管理するものである。管理サーバ10は、図4に示すように分散配置手段11を備える。
分散配置手段11は、対象とする計算処理に必要な複数の分散処理部20を複数の処理サーバ30に対して割り当てるものである。
この分散配置手段11は、設定された計算対象となる各分散処理部20(頂点〔vertex〕)の接続関係を示すグラフトポロジに基づいて、処理サーバ30に対して、仮想マシンである分散処理部20を配置する。ここで、分散処理部20を配置するとは、仮想マシンを構成するソフトウェアを処理サーバ30に送信し、処理サーバ30上で仮想マシンとして分散処理部20を動作させることである。
また、分散配置手段11は、各処理サーバ30に対して、分散処理部20の接続関係を示すグラフトポロジや、分散処理部20が必要とするリソース(CPUのコア数、メモリ量等)を通知する。
なお、ここでは、図示を省略するが、管理サーバ10は、外部からの指示により、システム全体の処理を終了させる終了指示メッセージを、処理サーバ30に送信する終了指示部を備えることとしてもよい。
The management server 10 (master) manages the entire system. The
The distributed
The distributed
Further, the distributed
Although illustration is omitted here, the
分散処理部20(頂点〔vertex〕)は、処理サーバ30上で動作し、分散された計算処理を実行する仮想マシンである。個々の計算処理には、データ入力、計算、メッセージの送受信等が含まれる。この分散処理部20は、対象とする計算処理をグラフG=(V,E)として表現したときに、グラフ中の個々の頂点(vertex)として機能する。
分散処理部20は、図5に示すように、数値計算手段21と、メッセージ送受信手段22と、を備える。
The distributed processing unit 20 (vertex [vertex]) is a virtual machine that operates on the
As shown in FIG. 5, the distributed
数値計算手段21は、所定単位に区分された計算処理を行うものである。この処理は、図19を参照して説明したBSP計算モデルのフェーズPH1としてのローカル計算(LC:Local computation)に相当する。
この数値計算手段21は、メッセージ送受信手段22を介して他の分散処理部20から通知される計算完了メッセージに設定されている計算結果を入力として計算処理を実行し、次のスーパーステップに移行する。なお、数値計算手段21は、計算処理が他の分散処理部20からの計算結果を用いない処理である場合(グラフの入力辺がない場合)、入力を待たずに順次計算処理を実行し、次のスーパーステップに移行する。
The numerical calculation means 21 performs calculation processing divided into predetermined units. This processing corresponds to local computation (LC) as phase PH1 of the BSP calculation model described with reference to FIG.
The numerical calculation means 21 executes calculation processing with the calculation result set in the calculation completion message notified from the other distributed
また、数値計算手段21は、計算処理がその計算結果を他の分散処理部20に通知する処理である場合(グラフの出力辺がある場合)、計算結果を計算完了メッセージに設定してメッセージ送受信手段22に送信する。また、数値計算手段21は、計算処理がその結果を他の分散処理部20に通知しない処理である場合(グラフの出力辺がない場合)、計算完了メッセージを送信しない。
Further, when the calculation process is a process of notifying the calculation result to another distributed processing unit 20 (when there is an output side of the graph), the numerical calculation means 21 sets the calculation result as a calculation completion message and transmits / receives a message. Transmit to means 22. The numerical calculation means 21 does not transmit a calculation completion message when the calculation process is a process that does not notify the other distributed processing
メッセージ送受信手段22は、他の分散処理部20との間でメッセージを送受信するものである。この処理は、図18を参照して説明したBSP計算モデルのフェーズPH2としてのデータ交換(COM:Communication)に相当する。
このメッセージ送受信手段22は、処理サーバ30のメッセージ処理手段32(図6参照)を介して、同じ処理サーバ30内の他の分散処理部20、または、他の処理サーバ30内の分散処理部20との間でメッセージを送受信する。
The message transmitting / receiving
The message transmission / reception means 22 is connected to another distributed
なお、メッセージ送受信手段22は、他の分散処理部20から通知される計算完了メッセージが揃った段階、すなわち、グラフの入力辺に対応するすべての分散処理部20から同じスーパーステップの計算完了メッセージを受信した段階で、数値計算手段21にすべての計算完了メッセージの計算結果を出力する。
また、メッセージ送受信手段22は、自身の分散処理部20の数値計算手段21が他の分散処理部20からの計算結果を必要とする処理であって、予め定めた時間内に計算完了メッセージを受信しない場合、すなわち、待ち状態となった場合、計算完了メッセージの送信が遅れている他の分散処理部20を特定する情報(vertex番号等)を設定した遅れメッセージをメッセージ処理手段32に送信する。
Note that the message transmitting / receiving means 22 receives the calculation completion message of the same super step from the stage where all the calculation completion messages notified from the other distributed
The message transmission /
処理サーバ30(worker)は、個々の計算処理にそれぞれ対応した一または複数の分散処理部20を動作させるものである。
処理サーバ30は、図6に示すように、仮想化制御手段31と、メッセージ処理手段32と、リソース管理手段33と、レプリカ管理手段34と、記憶手段35と、を備える。
The processing server 30 (worker) operates one or a plurality of distributed
As shown in FIG. 6, the
仮想化制御手段31は、仮想化技術に基づいて、処理サーバ30上に仮想化プラットホームを構築し、複数の分散処理部20(仮想マシン)を配置する制御を行うものである。
この仮想化制御手段31は、管理サーバ10から入力される仮想マシンを構成するソフトウェアを入力し、仮想化プラットホーム上で動作させる。
また、仮想化制御手段31は、レプリカ管理手段34から、他の処理サーバ30上で動作する分散処理部20のレプリカ(複製)の構築を指示された場合、管理サーバ10からソフトウェアを取得し、仮想化プラットホーム上で動作させる。なお、分散処理部20の接続関係を示すグラフトポロジにより、レプリカとして動作させる可能性がある分散処理部20については、予め管理サーバ10からソフトウェアを取得し、記憶手段35に記憶させておくこととしてもよい。
また、仮想化制御手段31は、レプリカ管理手段34から、レプリカの動作を中止する指示があった場合、レプリカの動作を中止し、仮想化プラットホームから廃棄する。
The virtualization control means 31 performs control for constructing a virtualization platform on the
The virtualization control means 31 inputs software that constitutes a virtual machine input from the
In addition, when the
Further, when there is an instruction from the
メッセージ処理手段32は、メッセージの送受信を行うものである。
ここでは、メッセージ処理手段32は、データ転送手段321と、遅れ制御手段322と、レプリカ制御手段323と、を備える。
The message processing means 32 transmits and receives messages.
Here, the
データ転送手段321は、記憶手段35に記憶されている各分散処理部20(頂点〔vertex〕)の接続関係を示すグラフトポロジに基づいて、分散処理部間で計算結果を含む計算完了メッセージを送受信するものである。
このデータ転送手段321は、自身または他の処理サーバ30上で動作する分散処理部20から受信した計算完了メッセージを、グラフトポロジの送信先(出力辺の相手先)である自身または他の処理サーバ30上で動作する分散処理部20に送信する。
このとき、データ転送手段321は、自身の処理サーバ30上の分散処理部20から計算完了メッセージを受信した場合、当該分散処理部20のレプリカが他の処理サーバ30で動作していれば、他の処理サーバ30にレプリカの動作を中止する指示を含んだレプリカ制御メッセージを送信する。これは、レプリカよりもオリジナルの分散処理部20の方が早く計算処理を完了し、レプリカの計算処理が不要になったためである。なお、レプリカが動作している否かの情報は、レプリカ管理手段34から取得する。また、レプリカ制御メッセージには、レプリカを特定する情報(オリジナルの分散処理部20のvertex番号等)を付加することとする。
The
The data transfer means 321 sends the calculation completion message received from the distributed
At this time, when the data transfer means 321 receives a calculation completion message from the distributed
また、データ転送手段321は、他の処理サーバ30上のレプリカから計算完了メッセージを受信した場合、自身の処理サーバ30上のレプリカに対応するオリジナルの分散処理部20において現時点でのスーパーステップの計算処理を終了させ、オリジナルの分散処理部20の計算結果の代わりに、受信した計算完了メッセージの計算結果に置き換えた計算完了メッセージ生成し、送信先に送信する。
また、データ転送手段321は、自身の処理サーバ30上のレプリカから計算完了メッセージを受信した場合、レプリカ管理手段34を介してレプリカを廃棄し、計算完了メッセージをオリジナルの分散処理部20が動作する処理サーバ30に送信する。
In addition, when the
Further, when the data transfer means 321 receives the calculation completion message from the replica on its
遅れ制御手段322は、自身または他の処理サーバ30から受信した遅れメッセージに対する処理を行うものである。
この遅れ制御手段322は、自身の処理サーバ30の分散処理部20から、遅れメッセージを受信した場合、すなわち、分散処理部20が計算結果の待ち状態となった場合、当該分散処理部20を計算結果の出力先とする他の分散処理部20のレプリカを構築するリソースがあれば、他の分散処理部20を動作させている処理サーバ30に遅れメッセージを送信する。なお、この遅れメッセージには、遅れの対象となっている分散処理部20を特定する情報(vertex番号等)を付加することとする。
The delay control means 322 performs processing on a delay message received from itself or another
When the
これによって、自身の処理サーバ30でレプリカを動作させることが可能であることを他の処理サーバ30に通知することができる。なお、レプリカを構築するリソースがあるか否かは、リソース管理手段33に対して問い合わせを行うこととする。なお、レプリカを構築するリソースがなければ、遅れ制御手段322は、受信した遅れメッセージを廃棄する。
As a result, it is possible to notify
また、遅れ制御手段322は、他の処理サーバ30の分散処理部20から、遅れメッセージを受信した場合、メッセージを送信した処理サーバ30に対して、メッセージを送信した分散処理部20を計算結果の送信先とする分散処理部20のレプリカを構築する指示を含んだレプリカ制御メッセージを返信する。なお、このレプリカ制御メッセージには、レプリカのオリジナルとなる分散処理部20を特定する情報(vertex番号等)、ならびに、オリジナルとなる分散処理部20に入力辺で接する他の分散処理部20からの計算結果がある場合にその計算結果を付加することとする。これによって、遅れメッセージを送信した処理サーバ30上にレプリカが構築され、計算を開始することが可能になる。
When the
レプリカ制御手段323は、処理サーバ30における分散処理部20のレプリカの動作を制御するものである。
このレプリカ制御手段323は、他の処理サーバ30から、レプリカを構築する指示を含んだレプリカ制御メッセージを受信した場合、分散処理部20のレプリカの構築する指示をレプリカ管理手段34に出力する。この指示には、オリジナルとなる分散処理部20を特定する情報(vertex番号等)が含まれる。なお、レプリカ制御手段323は、レプリカの動作よりも、自身が担当する分散処理部20の動作を優先させることとする。例えば、レプリカ制御手段323は、処理サーバ30で動作するOSに、レプリカのプロセスよりも自身が担当する分散処理部20のプロセスの優先度を高く設定する。
The
When the
また、レプリカ制御手段323は、他の処理サーバ30から、レプリカの動作を中止する指示を含んだレプリカ制御メッセージを受信した場合、分散処理部20のレプリカの動作を中止させる指示をレプリカ管理手段34に出力する。この指示には、レプリカに対応するオリジナルの分散処理部20を特定する情報(vertex番号等)が含まれる。
なお、メッセージ処理手段32は、管理サーバ10から、終了指示メッセージを受信した場合に、すべての分散処理部20を終了させる終了制御部を備えることとしてもよい。
Further, when the
Note that the
リソース管理手段33は、処理サーバ30のリソース(CPUのコア数、メモリ量等)を管理するものである。
具体的には、リソース管理手段33は、仮想化制御手段31で動作される分散処理部20が使用するリソースから、現在の空きリソースを把握し、遅れ制御手段322からのレプリカを起動させるリソースがあるか否かの問い合わせに対して回答する。
The resource management means 33 manages the resources of the processing server 30 (CPU core number, memory amount, etc.).
Specifically, the
レプリカ管理手段34は、レプリカの構築および動作を管理するものである。
このレプリカ管理手段34は、レプリカ制御手段323からレプリカを構築する指示があった場合、仮想化制御手段31に対して、分散処理部20を特定する情報(vertex番号等)を含んだレプリカ構築の指示を行う。また、このとき、レプリカ管理手段34は、分散処理部20に対してレプリカが起動されていることを、例えば、分散処理部20に対応するフラグをセットする等で管理する。
The replica management means 34 manages the construction and operation of replicas.
When there is an instruction to build a replica from the replica control means 323, the replica management means 34 performs the replica construction including information (vertex number and the like) for specifying the distributed
また、レプリカ管理手段34は、レプリカ制御手段323からレプリカの動作を中止する指示があった場合、仮想化制御手段31に対して、分散処理部20を特定する情報(vertex番号等)を含んだレプリカ中止の指示を行う。また、このとき、レプリカ管理手段34は、分散処理部20に対してレプリカが動作していないことを、例えば、分散処理部20に対応するフラグをリセットする等で管理する。
また、レプリカ管理手段34は、データ転送手段321から、分散処理部20に対するレプリカが動作しているか否かの問い合わせに対して、例えば、フラグのセット、リセット状態を参照して回答する。
Further, the
Further, the
記憶手段35は、処理サーバ30で使用する各種情報を記憶するものである。
この記憶手段35は、管理サーバ10から通知される分散処理部20の接続関係を示すグラフトポロジや、分散処理部20が必要とするリソース(CPUのコア数、メモリ量等)を記憶する。
なお、ここでは、分散同期処理システム1を、管理サーバ10と処理サーバ30とを備える構成としたが、複数の処理サーバ30のうちの1台を代表サーバとして、その代表サーバ内に管理サーバ10の機能を備える構成としてもよい。
The
The
Here, the distributed
≪分散同期処理システムの動作≫
次に、図7を参照(構成については、適宜図3〜図6参照)して、本発明の実施形態に係る分散同期処理システム1の動作について説明する。図7は、本実施形態に係る分散同期処理システム1の処理の流れを示すフローチャートである。
<< Operation of the distributed synchronous processing system >>
Next, the operation of the distributed
まず、管理サーバ10(master)は、分散配置手段11によって、予め設定された分散処理部20(頂点〔vertex〕)の接続関係を示すグラフトポロジに基づいて、複数の処理サーバ30(worker)に対して、分散処理部20を配置する(ステップS1)。ここでは、分散配置手段11は、分散処理部20のソフトウェアを、処理サーバ30に送信する。
First, the management server 10 (master) distributes to a plurality of processing servers 30 (workers) based on the graph topology indicating the connection relation of the distributed processing units 20 (vertices) set in advance by the distributed
そして、処理サーバ30は、仮想化制御手段31によって、処理サーバ30上に仮想化プラットホームを構築し、仮想化プラットホーム上で分散処理部20を仮想マシンとして動作させることで、計算処理を開始する(ステップS2)。なお、このステップS2以降の動作は、それぞれの処理サーバ30で動作する。
Then, the
ここで、処理サーバ30は、メッセージ処理手段32によって、自身の処理サーバ30で動作する分散処理部20、または、他の処理サーバ30からメッセージを受信するまで待機する(ステップS3:No)。
そして、メッセージ処理手段32は、メッセージを受信し(ステップS3:Yes)、そのメッセージが計算完了メッセージであった場合(ステップS4:Yes)、データ転送手段321によって、データ転送処理を行う(ステップS5)。
このステップS5において、データ転送手段321が行うデータ転送処理について、図8を参照してさらに詳細に説明する。
Here, the
The message processing means 32 receives the message (step S3: Yes), and if the message is a calculation completion message (step S4: Yes), the data transfer means 321 performs the data transfer process (step S5). ).
The data transfer process performed by the
図8に示すように、データ転送手段321は、受信した計算完了メッセージの送信元を解析する(ステップS20)。
そして、計算完了メッセージの送信元が他の処理サーバ30上で動作する分散処理部20であった場合(ステップS20:他処理サーバの分散処理部)、データ転送手段321は、自身の処理サーバ30上で動作する送信先(出力辺の相手先)の分散処理部20に計算完了メッセージを送信する(ステップS21)。
As shown in FIG. 8, the
When the transmission source of the calculation completion message is the distributed
また、計算完了メッセージの送信元が自身の処理サーバ30上で動作する分散処理部20であった場合(ステップS20:自処理サーバの分散処理部)、データ転送手段321は、当該分散処理部20のレプリカが他の処理サーバ30で動作しているか否かの判定を、レプリカ管理手段34に問い合わせることにより行う(ステップS22)。
When the transmission source of the calculation completion message is the distributed
ここで、他の処理サーバ30で当該分散処理部20のレプリカが動作している場合(ステップS22:Yes)、データ転送手段321は、このレプリカを動作させている他の処理サーバ30にレプリカの動作を中止する指示を含んだレプリカ制御メッセージを送信する(ステップS23)。
Here, when the replica of the distributed
一方、他の処理サーバ30で当該分散処理部20のレプリカが動作していない場合(ステップS22:No)、または、ステップS23の動作後、データ転送手段321は、計算完了メッセージを送信先(出力辺の相手先)である自身または他の処理サーバ30上で動作する分散処理部20に送信する(ステップS24)。
On the other hand, if the replica of the distributed
また、計算完了メッセージの送信元が他の処理サーバ30で動作するレプリカであった場合(ステップS20:他処理サーバのレプリカ)、データ転送手段321は、レプリカに対応するオリジナルの分散処理部20において現時点でのスーパーステップの計算処理を終了させ、オリジナルの分散処理部20の計算結果の代わりに、受信した計算完了メッセージの計算結果に置き換えた計算完了メッセージを生成する(ステップS25)。
When the transmission source of the calculation completion message is a replica operating on another processing server 30 (step S20: replica of other processing server), the
そして、データ転送手段321は、ステップS25で生成した計算完了メッセージをオリジナルの分散処理部20の送信先(出力辺の相手先)に送信する(ステップS26)。
また、計算完了メッセージの送信元が自身の処理サーバ30で動作するレプリカであった場合(ステップS20:自処理サーバのレプリカ)、データ転送手段321は、レプリカ管理手段34を介して、レプリカを廃棄する(ステップS27)。
そして、データ転送手段321は、計算完了メッセージをオリジナルの分散処理部20が動作する処理サーバ30に送信する(ステップS28)。
以上のステップS20〜S28によって、データ転送手段321は、データ転送処理を行う。
Then, the data transfer means 321 transmits the calculation completion message generated in step S25 to the transmission destination (the output side partner) of the original distributed processing unit 20 (step S26).
Further, when the transmission source of the calculation completion message is a replica operating on its own processing server 30 (step S20: replica of its own processing server), the
Then, the data transfer means 321 transmits a calculation completion message to the
Through the above steps S20 to S28, the data transfer means 321 performs the data transfer process.
なお、ここでは、図示を省略するが、分散処理部20は、ステップS21,S24,S26において送信された計算完了メッセージを、メッセージ送受信手段22を介して受信する。そして、分散処理部20は、数値計算手段21によって、受信した計算完了メッセージの計算結果を入力として計算処理を行い、送信先(出力辺の相手先)があれば、メッセージ処理手段32を介して、その送信先に計算完了メッセージを送信する。
Although not shown here, the distributed
このとき、分散処理部20は、計算処理が他の分散処理部20からの計算結果を必要とする処理である場合、予め定めた時間内に計算完了メッセージが受信されなければ、メッセージ送受信手段22によって、計算完了メッセージの送信が遅れている他の分散処理部20を特定する情報(vertex番号等)を設定した遅れメッセージをメッセージ処理手段32に送信する。
図7に戻って、分散同期処理システム1の動作について説明を続ける。
At this time, if the calculation process is a process that requires a calculation result from the other distributed processing
Returning to FIG. 7, the description of the operation of the distributed
処理サーバ30は、ステップS3で受信したメッセージが遅れメッセージであった場合(ステップS6:Yes)、遅れ制御手段322によって、遅れ制御処理を行う(ステップS7)。
このステップS7において、遅れ制御手段322が行う遅れ制御処理について、図9を参照してさらに詳細に説明する。
When the message received in step S3 is a delayed message (step S6: Yes), the
The delay control process performed by the delay control means 322 in step S7 will be described in more detail with reference to FIG.
図9に示すように、遅れ制御手段322は、受信した遅れメッセージの送信元を解析する(ステップS30)。
そして、遅れメッセージの送信元が他の処理サーバ30上で動作する分散処理部20であった場合(ステップS30:他処理サーバの分散処理部)、遅れ制御手段322は、送信元の処理サーバ30に対して、メッセージを送信した分散処理部20を計算結果の送信先とするレプリカを構築する指示を含んだレプリカ制御メッセージを送信する(ステップS31)。このレプリカ制御メッセージには、レプリカのオリジナルとなる分散処理部20を特定する情報(vertex番号等)を付加する。
As shown in FIG. 9, the delay control means 322 analyzes the transmission source of the received delay message (step S30).
If the source of the delayed message is the distributed
一方、遅れメッセージの送信元が自身の処理サーバ30上で動作する分散処理部20であった場合(ステップS30:自処理サーバの分散処理部)、遅れ制御手段322は、レプリカを構築するリソースがあるか否かの判定を、リソース管理手段33に問い合わせることにより行う(ステップS32)。
On the other hand, when the source of the delayed message is the distributed
ここで、レプリカを構築するリソースがあると判定した場合(ステップS32:Yes)、遅れ制御手段322は、遅れメッセージに設定されている他の分散処理部20を動作させている処理サーバ30に、遅れメッセージを送信する(ステップS33)。この遅れメッセージには、遅れの対象となっている分散処理部20を特定する情報(vertex番号等)を付加する。なお、レプリカを構築するリソースがないと判定した場合(ステップS32:No)、遅れ制御手段322は、遅れメッセージを廃棄する(不図示)。
以上のステップS30〜S33によって、遅れ制御手段322は、遅れ制御処理を行う。
図7に戻って、分散同期処理システム1の動作について説明を続ける。
Here, when it is determined that there is a resource for constructing the replica (step S32: Yes), the
Through the above steps S30 to S33, the delay control means 322 performs a delay control process.
Returning to FIG. 7, the description of the operation of the distributed
処理サーバ30は、ステップS3で受信したメッセージがレプリカ制御メッセージであった場合(ステップS8:Yes)、レプリカ制御手段323によって、レプリカ制御処理を行う(ステップS9)。
このステップS9において、レプリカ制御手段323が行うレプリカ制御処理について、図10を参照してさらに詳細に説明する。
When the message received in step S3 is a replica control message (step S8: Yes), the
The replica control process performed by the
図10に示すように、レプリカ制御手段323は、受信したレプリカ制御メッセージの指示内容を解析する(ステップS40)。
そして、レプリカ制御メッセージの指示内容が、レプリカを構築する指示であった場合(ステップS40:構築)、レプリカ制御手段323は、レプリカ制御メッセージに付加されているレプリカのオリジナルとなる分散処理部20を特定する情報に基づいて、レプリカ管理手段34により、処理サーバ30上にレプリカを構築し(ステップS41)、計算処理を開始させる(ステップS42)。
As shown in FIG. 10, the replica control means 323 analyzes the instruction content of the received replica control message (step S40).
Then, if the instruction content of the replica control message is an instruction to construct a replica (step S40: construction), the replica control means 323 determines the
一方、レプリカ制御メッセージの指示内容が、レプリカを中止する指示であった場合(ステップS40:中止)、レプリカ制御手段323は、レプリカ制御メッセージに付加されているレプリカを特定する情報(オリジナルの分散処理部20のvertex番号等)に基づいてレプリカを特定し、レプリカ管理手段34により、処理サーバ30上のレプリカの動作を中止し(ステップS43)、仮想化プラットホームから廃棄する(ステップS44)。
以上のステップS40〜S44によって、レプリカ制御手段323は、レプリカ制御処理を行う。
図7に戻って、分散同期処理システム1の動作について説明を続ける。
On the other hand, when the instruction content of the replica control message is an instruction to cancel the replica (step S40: stop), the
Through the above steps S40 to S44, the replica control means 323 performs a replica control process.
Returning to FIG. 7, the description of the operation of the distributed
処理サーバ30は、管理サーバ10から、終了指示メッセージを受信した場合(ステップS10:Yes)、分散処理部20の動作を終了させ(ステップS11)、システム全体の動作を終了する。
一方、終了指示メッセージを受信しなければ(ステップS10:No)、処理サーバ30は、ステップS3に戻って動作を継続する。
When receiving an end instruction message from the management server 10 (step S10: Yes), the
On the other hand, if the end instruction message is not received (step S10: No), the
以上説明したように分散同期処理システム1を構成し、動作させることで、分散同期処理システム1は、同期を待ち、かつ、空きリソースがある処理サーバ30が、他の処理サーバ30の分散処理部20の動作をレプリカにより並行して開始(投機実行)することができる。これによって、分散同期処理システム1は、システム全体として、処理時間を短縮することができる。
By configuring and operating the distributed
≪分散同期処理システムの適用例≫
次に、図12〜図17を参照して、図11に示すグラフトポロジ(グラフG)で表される計算を、本発明の実施形態に係る分散同期処理システム1で行う適用例について説明する。
ここでは、図12に示すように、分散同期処理システム1は、2台の処理サーバ30(worker1,worker2)で構成され、分散処理部20である頂点(vertex)V1〜V3のうち、頂点(vertex)V1,V2をworker1が担当し、頂点(vertex)V3をworker2が担当するものとする。なお、ここでは、説明を簡略化するため頂点(vertex)V1〜V5の各動作ステップは、CPUの1コア(CORE)で数字の順に動作するものとする。
また、以下の説明では、複数の分散処理部20および処理サーバ30を識別するため、それぞれの分散処理部20をvertex(vertexV1,V2,…)と呼称し、それぞれの処理サーバ30をworker(worker1,2,…)と呼称する。
≪Application example of distributed synchronous processing system≫
Next, an application example in which the calculation represented by the graph topology (graph G) illustrated in FIG. 11 is performed in the distributed
Here, as shown in FIG. 12, the distributed
Further, in the following description, in order to identify a plurality of distributed
図12に示すように、worker1は、vertexV1,V2,V3において、1,2,…の各ステップで処理を実行する。worker2は、vertexV4において、1,2,…の各ステップで処理を実行する。worker3は、vertexV5において、1,2,…の各ステップで処理を実行する。このように、ここでは、各workerの処理量が均等に割り振られていない状況を想定する。
As shown in FIG. 12, worker1, in vertexV 1, V 2, V 3 , 1,2, and performs processing in a ... each step. worker2, in
図13は、各workerが4ステップまでの処理を完了した状態を示している。ここで、vertexV4は、自身の計算が完了し、出力辺で接するvertexV1,V3に計算完了メッセージを送信する。しかし、vertexV4は、入力辺で接するvertexV2から計算完了メッセージを取得しなければ次のスーパーステップに移行することができず、待機状態となる。
そこで、vertexV4が予め定めた時間内に計算完了メッセージを受信せず、かつ、worker2のリソースに少なくともvertexV2を動作させる余裕があれば、worker2は、worker1に対してvertexV2の遅れを示す遅れメッセージを送信する。なお、worker2のリソースに余裕がなければ、worker2は、worker1に対して遅れメッセージを送信しない。ここでは、worker2のリソースに余裕があるものとして、以下説明する。
FIG. 13 shows a state in which each worker has completed up to four steps. Here, the vertex V 4 completes its calculation and transmits a calculation completion message to the vertex V 1 and V 3 that are in contact with each other on the output side. However, the vertex V 4 cannot enter the next super step without obtaining a calculation completion message from the vertex V 2 that is in contact with the input side, and enters a standby state.
Therefore, if the vertex V 4 does not receive the calculation completion message within the predetermined time and if the resource of the worker 2 has at least a margin for operating the vertex V 2 , the worker 2 has a delay indicating the delay of the vertex V 2 with respect to the worker 1. Send a message. Note that worker2 does not send a delayed message to worker1 if there is no room in worker2's resources. Here, description will be given below assuming that
図14は、worker1が遅れメッセージを受信した後、worker2に対してvertexV2の構築を指示するレプリカ制御メッセージを送信し、worker2がvertexV2のレプリカRを構築した状態を示している。なお、レプリカ制御メッセージには、vertexV2を特定する情報や、vertexV2を動作させるために必要な情報(例えば、スーパーステップSS2以降であれば、vertexV1の計算結果)が含まれる。これによって、worker2は、自身でvertexV2を動作させることができる。なお、このとき、worker2は、レプリカよりもworker2上で動作する自身が担当するvertexの動作を優先する。
FIG. 14 shows a state where, after
図15は、各workerが8ステップまでの処理を完了した状態を示している。ここで、worker2は、vertexV2のレプリカRが計算を完了したことを、オリジナルのvertexV2を動作させているworker1に計算完了メッセージを送信する。ここで、worker1は、オリジナルのvertexV2の計算を中断し、worker2から送信された計算結果を、vertexV2の出力辺で接するvertexV1,V4に計算完了メッセージを送信する。
なお、図15では、worker3において、vertexV3のレプリカを構築した状態を示しているが、vertexV2のレプリカRと同じ動作であるため、ここでは説明を省略する。
FIG. 15 shows a state in which each worker has completed processing up to eight steps. Here, worker2 is that replica R of VertexV 2 has completed computation, and transmits the calculated completion message to worker1 you are running the original vertexV 2. Here, worker1 interrupts the original calculation of VertexV 2, the computational result sent from worker2, transmits the calculated complete message to vertexV 1, V 4 in contact with the output side of vertexV 2.
Incidentally, omitted in Figure 15, in Worker3, but shows a state in which to build a replica of VertexV 3, it is the same operation as a replica of vertexV 2 R, the description here.
図16は、各workerが9ステップまでの処理を完了した状態を示している。ここで、worker2は、vertexV2の計算結果を取得しているため、次のスーパーステップSS2に移行している。
一方、worker1は、worker2で動作したレプリカにより、vertexV2の計算は早く完了しているため、10ステップ以降は、vertexV1,V3だけが動作することになる。これによって、worker1の処理時間を早めることができる。
FIG. 16 shows a state where each worker has completed processing up to 9 steps. Here, worker2 is because it acquires the calculation result of VertexV 2, is shifted to next super step SS2.
Meanwhile, worker1, due replicas operating in worker2, since it has been completed early calculation of
図17は、worker1で動作するオリジナルンのvertexV2が、レプリカRよりも早く処理が完了した状態を示している。この場合、worker1は、worker2に対してvertexV2のレプリカRの動作の中止を指示するレプリカ制御メッセージを送信し、さらに、vertexV2の出力辺で接するvertexV4が動作するworker2に計算完了メッセージを送信する。
そして、worker2は、vertexV2のレプリカRの計算を中止し、vertexV4がオリジナルのvertexV2の計算結果を取得し、次のスーパーステップに移行する。
このように、分散同期処理システム1は、各workerの処理量が均等に割り振られていない状態であっても、システム全体として、処理時間を短縮することができる。
FIG. 17 shows a state where the original vertex V 2 operating on worker 1 has completed processing earlier than the replica R. In this case, worker1 sends a replica control message instructing the stop of the operation of the replica of vertexV 2 R relative worker2, further transmits the calculated completion message to worker2 the VertexV 4 operates in contact with the output side of VertexV 2 To do.
Then, worker2 stops the calculation of the replica of vertexV 2 R, vertexV 4 acquires the calculation result of the original VertexV 2, the process proceeds to the next super step.
As described above, the distributed
1 分散同期処理システム
10 管理サーバ(master)
11 分散配置手段
20 分散処理部(vertex)
21 数値計算手段
22 メッセージ送受信手段
30 処理サーバ(worker)
31 仮想化制御手段
32 メッセージ処理手段
321 データ転送手段
322 遅れ制御手段
323 レプリカ制御手段
33 リソース管理手段
34 レプリカ管理手段
35 記憶手段
1 Distributed
11 Distributed
21 Numerical calculation means 22 Message transmission / reception means 30 Processing server (worker)
31 virtualization control means 32 message processing means 321 data transfer means 322 delay control means 323 replica control means 33 resource management means 34 replica management means 35 storage means
Claims (6)
前記処理サーバは、
リソースを管理するリソース管理手段と、
前記分散処理部間で計算結果を含む計算完了メッセージを送受信するデータ転送手段と、
自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で前記計算結果の待ち状態となり、かつ、前記リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信する遅れ制御手段と、
前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるレプリカ制御手段と、を備え、
前記遅れ制御手段は、前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信すること
を特徴とする分散同期処理システム。 A distributed synchronous processing system that connects a plurality of processing servers that operate one or a plurality of distributed processing units, which are virtual machines, and performs calculation processing synchronously between the distributed processing units in a predetermined graft policy,
The processing server
Resource management means for managing resources;
Data transfer means for transmitting and receiving a calculation completion message including a calculation result between the distributed processing units;
The distributed processing unit on its own processing server is in a waiting state for the calculation result with the distributed processing unit on the other processing server, and distributed on the other processing server to the resource managed by the resource management means A delay control means for transmitting a delay message indicating a processing delay to the other processing server when there is a resource for operating the processing unit;
In response to the delayed message, when the replica control message instructing the construction of the replica of the distributed processing unit that caused the waiting state is received from the other processing server, the replica is constructed on the own processing server. Replica control means for performing calculation processing by
The distributed control system, wherein the delay control means returns a replica control message instructing the construction of the replica when the delay message is received from another processing server.
自身の処理サーバ上の前記レプリカが計算を完了した段階で、前記レプリカのオリジナルである分散処理部が動作する他の処理サーバに、前記レプリカの計算結果を含む前記計算完了メッセージを送信し、
前記他の処理サーバから、前記レプリカの計算結果を含む前記計算完了メッセージを受信した段階で、前記オリジナルの分散処理部の計算を終了させ、前記オリジナルの分散処理部の計算結果の出力先に前記計算完了メッセージを送信すること
を特徴とする請求項1に記載の分散同期処理システム。 The data transfer means includes
When the replica on its own processing server completes the calculation, the calculation completion message including the calculation result of the replica is transmitted to another processing server on which the distributed processing unit that is the original of the replica operates,
Upon receiving the calculation completion message including the calculation result of the replica from the other processing server, the calculation of the original distributed processing unit is terminated, and the calculation result of the original distributed processing unit is output to the output destination. The distributed synchronization processing system according to claim 1, wherein a calculation completion message is transmitted.
前記データ転送手段は、自身の処理サーバ上の分散処理部から他の分散処理部に前記計算結果を送信する段階で、前記レプリカ管理手段において、前記自身の処理サーバ上の分散処理部に対するレプリカが構築されている状態である場合に、前記レプリカを構築している他の処理サーバに前記レプリカの動作の中止を指示するレプリカ制御メッセージを送信し、
前記レプリカ制御手段は、他の処理サーバから、前記レプリカの動作の中止を指示するレプリカ制御メッセージを受信した段階で、前記レプリカの動作を中止させること
を特徴とする請求項1または請求項2に記載の分散同期処理システム。 A replica management means for managing a state in which a replica for the original distributed processing unit is constructed,
In the step of transmitting the calculation result from the distributed processing unit on its own processing server to another distributed processing unit, the data transfer unit includes a replica for the distributed processing unit on the own processing server in the replica management unit. If it is in a built state, send a replica control message instructing other processing servers that are building the replica to stop the operation of the replica,
The replica control means stops the operation of the replica when receiving a replica control message instructing to stop the operation of the replica from another processing server. The distributed synchronous processing system described.
を特徴とする請求項1から請求項3のいずれか一項に記載の分散同期処理システム。 4. The processing server according to claim 1, wherein the processing server operates a distributed processing unit operating on its processing server in preference to a replica operating on its processing server. The distributed synchronous processing system according to item.
前記処理サーバは、
自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で計算結果の待ち状態となり、かつ、リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信するステップと、
前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるステップと、を実行し、
前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信するステップを実行すること
を特徴とする分散同期処理方法。 A distributed synchronous processing method for connecting a plurality of processing servers that operate one or a plurality of distributed processing units that are virtual machines, and performing calculation processing synchronously between the distributed processing units, with a predetermined graft polygon,
The processing server
The distributed processing unit on its own processing server is in a waiting state for calculation results with the distributed processing unit on the other processing server, and the resource processing unit manages the distributed processing unit on the other processing server. Sending a delay message indicating a processing delay to the other processing server when there is a resource for operating
In response to the delayed message, when the replica control message instructing the construction of the replica of the distributed processing unit that caused the waiting state is received from the other processing server, the replica is constructed on the own processing server. To perform the calculation process by
A distributed synchronization processing method characterized by executing a step of returning a replica control message instructing construction of the replica when the delayed message is received from another processing server.
リソースを管理するリソース管理手段、
前記分散処理部間で計算結果を含む計算完了メッセージを送受信するデータ転送手段、
自身の処理サーバ上の分散処理部が他の処理サーバ上の分散処理部との間で前記計算結果の待ち状態となり、かつ、前記リソース管理手段が管理するリソースに前記他の処理サーバ上の分散処理部を動作させるリソースが存在する場合に、前記他の処理サーバに処理の遅れを示す遅れメッセージを送信する遅れ制御手段、
前記遅れメッセージに対して、前記他の処理サーバから前記待ち状態を発生させた分散処理部のレプリカの構築を指示するレプリカ制御メッセージを受信した段階で、自身の処理サーバ上に前記レプリカを構築して計算処理を行わせるレプリカ制御手段、として機能させるための分散同期処理プログラムであり、
前記遅れ制御手段は、前記遅れメッセージを他の処理サーバから受信した場合に、前記レプリカの構築を指示するレプリカ制御メッセージを返信すること
を特徴とする分散同期処理プログラム。 A computer of the processing server in a distributed synchronous processing system that connects a plurality of processing servers that operate one or a plurality of distributed processing units, which are virtual machines, and performs calculation processing synchronously between the distributed processing units using a predetermined grafting policy. The
Resource management means for managing resources,
Data transfer means for transmitting and receiving a calculation completion message including a calculation result between the distributed processing units;
The distributed processing unit on its own processing server is in a waiting state for the calculation result with the distributed processing unit on the other processing server, and distributed on the other processing server to the resource managed by the resource management means A delay control means for transmitting a delay message indicating a processing delay to the other processing server when there is a resource for operating the processing unit;
In response to the delayed message, when the replica control message instructing the construction of the replica of the distributed processing unit that caused the waiting state is received from the other processing server, the replica is constructed on the own processing server. A distributed synchronous processing program for functioning as a replica control means for performing calculation processing by
The distributed synchronization processing program, wherein the delay control means returns a replica control message instructing the construction of the replica when the delay message is received from another processing server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017155099A JP6778161B2 (en) | 2017-08-10 | 2017-08-10 | Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017155099A JP6778161B2 (en) | 2017-08-10 | 2017-08-10 | Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019035997A true JP2019035997A (en) | 2019-03-07 |
JP6778161B2 JP6778161B2 (en) | 2020-10-28 |
Family
ID=65637524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017155099A Active JP6778161B2 (en) | 2017-08-10 | 2017-08-10 | Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6778161B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003316754A (en) * | 2002-04-26 | 2003-11-07 | Mitsubishi Heavy Ind Ltd | Simulation system for kinetic load dispersion |
JP2014123365A (en) * | 2012-12-20 | 2014-07-03 | Thomson Licensing | DEVICE AND METHOD FOR OPTIMIZATION OF DATA PROCESSING IN MapReduce FRAMEWORK |
-
2017
- 2017-08-10 JP JP2017155099A patent/JP6778161B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003316754A (en) * | 2002-04-26 | 2003-11-07 | Mitsubishi Heavy Ind Ltd | Simulation system for kinetic load dispersion |
JP2014123365A (en) * | 2012-12-20 | 2014-07-03 | Thomson Licensing | DEVICE AND METHOD FOR OPTIMIZATION OF DATA PROCESSING IN MapReduce FRAMEWORK |
Non-Patent Citations (1)
Title |
---|
小林 弘明,外1名: "「呼制御と音声合成とのAPI連携に関する一検討」", 電子情報通信学会2016年通信ソサイエティ大会講演論文集2, JPN6020022843, 6 September 2016 (2016-09-06), pages 91, ISSN: 0004295985 * |
Also Published As
Publication number | Publication date |
---|---|
JP6778161B2 (en) | 2020-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8335813B2 (en) | Systems, methods, and protocols for process migration and group membership management | |
US20120297056A1 (en) | Extensible centralized dynamic resource distribution in a clustered data grid | |
CN111295643B (en) | Managing computing clusters using durability level indicators | |
CN107678848A (en) | Repeater satellite task scheduling constrains the construction method and device of plan model | |
JP6450330B2 (en) | Parallel computing device and parallel computing method | |
CN102523249A (en) | Distributed long-distance simulation system and simulation method based on Web | |
EP3312723B1 (en) | Command processing method and server | |
JP2011516998A (en) | Workload scheduling method, system, and computer program | |
KR20230024416A (en) | Virtual Machine Migration Methods, Devices, Storage Media and Electronic Devices Between Cloud Platforms | |
CN104348913A (en) | Tight-coupling extensible big data interaction method | |
Pandey et al. | IDRC: a distributed real-time commit protocol | |
Li et al. | Wide-area spark streaming: Automated routing and batch sizing | |
Hu et al. | Transactional mobility in distributed content-based publish/subscribe systems | |
Cai et al. | Federate migration in HLA-based simulation | |
JPWO2018181961A1 (en) | Virtual network function management device, virtual infrastructure management device, and virtual network function construction method | |
JP6535304B2 (en) | Distributed synchronous processing system and distributed synchronous processing method | |
JP6778161B2 (en) | Distributed synchronous processing system, distributed synchronous processing method and distributed synchronous processing program | |
JP6036848B2 (en) | Information processing system | |
WO2012172588A1 (en) | Request allocation computer, request allocation method, and program | |
CN107660281B (en) | System and method for synchronizing distributed computing runtime | |
US10230583B1 (en) | Multi-node object simulation | |
JP6688240B2 (en) | Distributed synchronous processing system and distributed synchronous processing method | |
Megino et al. | PanDA: Exascale Federation of Resources for the ATLAS Experiment at the LHC | |
US9871667B2 (en) | Interaction protocol for interacting computer systems | |
CN109165230A (en) | A kind of method, device and equipment that distributed type assemblies management software data are synchronous |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200529 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200825 |
|
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: 20201006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201009 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6778161 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |