JP2013069189A - Parallel distributed processing method and parallel distributed processing system - Google Patents
Parallel distributed processing method and parallel distributed processing system Download PDFInfo
- Publication number
- JP2013069189A JP2013069189A JP2011208477A JP2011208477A JP2013069189A JP 2013069189 A JP2013069189 A JP 2013069189A JP 2011208477 A JP2011208477 A JP 2011208477A JP 2011208477 A JP2011208477 A JP 2011208477A JP 2013069189 A JP2013069189 A JP 2013069189A
- Authority
- JP
- Japan
- Prior art keywords
- node
- entry
- calculation
- parallel
- processing
- 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.)
- Withdrawn
Links
Images
Abstract
Description
各ノードに配置されているエントリにおいて並列処理を行う並列分散処理方法および並列分散処理システムの技術に関する。 The present invention relates to a technique of a parallel distributed processing method and a parallel distributed processing system for performing parallel processing in entries arranged in each node.
並列分散処理のフレームワークの1つとしてPregel(非特許文献1参照)がある。これはグラフ構造に基づく処理を実行するためのフレームワークである。このPregelでは、論理的な計算単位である各エントリ(あるいはvertex:グラフの頂点)がデータを保持し、エントリ間の仮想的な接続関係であるエッジ(edge:辺)を辿ってメッセージのやりとりを行う。各エントリは、他エントリからメッセージを受信すると、受信メッセージと自身が保持するデータに基づき、定められた処理(計算処理)を行い、自身が保持するデータを更新する。また必要に応じてエッジで接続されている別のエントリに対してメッセージを送信する。また、事前に宛先エントリの識別子が分かっている場合は、エッジが定義されていないエントリにもメッセージ送信できる。 One of the frameworks of parallel distributed processing is Pregel (see Non-Patent Document 1). This is a framework for executing processing based on the graph structure. In this pregel, each entry (or vertex: graph vertex) which is a logical calculation unit holds data, and messages are exchanged by tracing an edge (edge) which is a virtual connection relationship between entries. Do. When each entry receives a message from another entry, each entry performs a predetermined process (calculation process) based on the received message and the data held by itself, and updates the data held by itself. If necessary, a message is transmitted to another entry connected at the edge. If the identifier of the destination entry is known in advance, a message can be transmitted to an entry for which no edge is defined.
各エントリは複数のノード(論理的な計算機)に分散配置されている。そして、各エントリは、BSP(Bulk Synchronous Parallel)モデルに従い、エントリ毎に計算およびメッセージ送信処理を実行する。すなわち、計算処理とメッセージ送信は、各エントリ間で同期的かつ交互に行われる。すべてのエントリにおいて計算処理(並列計算処理)が終了した後、各エントリは、メッセージを次のエントリへ送信(メッセージ送信)する。すべてのメッセージについて送信が終了したら、各エントリは再び並列計算処理を行う。従って、ある並列計算処理の結果として送信したメッセージは、次回の並列計算処理で初めて利用可能となる。このようなシステムは、データアクセスの競合を防止したり、処理の一意性(必ず同じ結果になること)を保障したりすることができる。 Each entry is distributed in a plurality of nodes (logical computers). Each entry performs calculation and message transmission processing for each entry according to a BSP (Bulk Synchronous Parallel) model. That is, calculation processing and message transmission are performed synchronously and alternately between the entries. After the calculation process (parallel calculation process) is completed in all entries, each entry transmits a message to the next entry (message transmission). When transmission is completed for all messages, each entry performs parallel computation again. Therefore, a message transmitted as a result of a certain parallel calculation process can be used for the first time in the next parallel calculation process. Such a system can prevent data access conflicts and guarantee the uniqueness of processing (which always results in the same result).
また、ノードの負荷を均等化する別の技術として、特許文献1に記載の技術がある。この技術における分散型データベース管理システムは、各プロセッサにおける処理負荷の偏りを検出し、このプロセッサにおける処理負荷の偏りを均等化するように、データの分散配置構成を変更するものである。この技術において、各ノードは自身が保持するデータに対して処理(計算)を行うため、データの配置を調整することで、ノードの負荷を均等化することができる。
As another technique for equalizing the load on the node, there is a technique described in
このような、並列分散処理システムおけるノードの負荷均等化および耐障害性の向上を実現する技術として、特許文献2に記載の技術がある。この技術における分散並列型処理システムは、各データの複製を、本来そのデータを所有するノード以外のノードで作成しておく。そして、あるノードが障害停止した場合や、あるノードの負荷が大きくなった場合、分散並列型処理システムは、そのノードが所有するデータの複製を、保持しているノードが処理を代理実行するものである。
As a technique for realizing such node load balancing and fault tolerance improvement in such a parallel distributed processing system, there is a technique described in
非特許文献1に記載の技術は、ノード障害に対する対策としてチェックポイントを利用している。チェックポイントとは、ある瞬間のシステム状態(エントリの状態)をストレージ装置に記録しておき、障害発生時にストレージ装置からデータを読み出し、チェックポイント取得時の配置状態に戻す手法である。
The technique described in Non-Patent
チェックポイントの取得は、エントリの配置が確定している状態で行う必要があるため、システムは、エントリ間のメッセージ送信が終了し、各エントリにおける並列計算処理が行われる直前にチェックポイントを取得する必要がある。すなわち、チェックポイント取得のためだけの処理時間が必要になり、全体的な処理時間が増大するという課題がある。 Since the checkpoint needs to be acquired in a state where the entry arrangement is fixed, the system acquires the checkpoint immediately before the message transmission between the entries is completed and the parallel calculation processing is performed for each entry. There is a need. In other words, there is a problem that processing time only for obtaining checkpoints is required, and the overall processing time increases.
また、非特許文献1に記載の技術は、ノードの負荷均等化を実現するため、パーティション関数を使ってエントリのノードへの配置方法を決定している。パーティション関数はエントリ識別子を引数として与えると、そのエントリを配置すべきノードの識別子を出力する関数である。この方法ではエントリとノードとの関係が固定的になる。
一方、複数ジョブの同時実行が可能なシステムでは、ジョブ実行前において、すでに他のジョブが実行されている場合や、ジョブ実行中に他のジョブが実行される場合があり、各ノードの余剰リソースの比が動的に変化するという特徴がある。このような計算機環境において、非特許文献1の記載の技術のようなエントリの配置を固定的に決める方法では、各ノードの負荷を均等化できない場合がある。
Further, the technique described in
On the other hand, in a system that can execute multiple jobs at the same time, other jobs may already be executed before the job is executed, or other jobs may be executed during job execution. There is a characteristic that the ratio of the number changes dynamically. In such a computer environment, there is a case where the load of each node cannot be equalized by the method of fixedly determining the entry arrangement as in the technique described in Non-Patent
また、特許文献1に記載の技術は、前記したように、各ノードの処理負荷を均等化するため、ノードへのデータ配置を変更する手法である。この技術を非特許文献1に適用しようとすると、非特許文献1に記載の技術では、エントリの配置が確定している状態でデータ配置の変更を行う必要があるため、チェックポイント取得と同様に、データ配置変更のためだけの処理時間が必要になり、全体として処理時間が増大するという課題がある。
In addition, as described above, the technique described in
特許文献2に記載の技術は、前記したように、予めデータの複製を異なるノードに作成しておき、あるノードの負荷が高くなったときに複製データを持つノードが処理を代理実行することで、ノードの負荷均等化を実現するものである。しかしながら、このような技術を非特許文献1に記載の技術に適用しようとすると、非特許文献1に記載の技術では、エントリの配置が確定している状態で複製データを作成する必要があるため、チェックポイント取得の場合と同様に、データの複製作成のためだけの処理時間が必要になり、全体として処理時間が増大する。
As described above, the technology described in
そのため、並列分散処理システムにおいて、効率的にエントリを移動する技術が求められる。 Therefore, a technique for efficiently moving entries in a parallel distributed processing system is required.
本発明における一の手段は、複数のノードを有し、各ノードにおいて動作する仮想的な計算単位であり、前記ノード間の移動が可能な複数のエントリにおいて、並列処理を行う並列分散処理方法であって、前記ノードは、前記エントリにおいて、計算処理を行うとともに、ノードが変更されるエントリのデータを、前記エントリの変更先のノードへ移動することを特徴とする。 One means in the present invention is a virtual distributed processing method having a plurality of nodes and operating in each node, and performing parallel processing in a plurality of entries that can move between the nodes. The node performs a calculation process on the entry and moves data of the entry whose node is changed to the node to which the entry is changed.
さらに、本発明の他の手段は、複数のノードを有し、各ノードにおいて動作する仮想的な計算単位であり、ノード間の移動が可能な複数のエントリにおいて、並列処理を行う並列分散処理方法であって、互いに前記エントリのバックアップ元と、前記エントリのバックアップ先の関係にある第1のノードと、第2のノードとが存在し、前記第1のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第2のノードへコピーするとともに、前記第2のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第1のノードへコピーし、前記第1のノードで、すべての計算結果が得られたが、前記第2のノードにおいて、計算結果を得ていない場合、前記第1のノードは、前記第2のノードにおいて、計算結果を得ていないエントリにおける計算結果を保持し、次の計算処理が始まった際に、前記第1のノードおよび前記第2のノードは、計算処理および計算結果のコピーを互いに行うとともに、前記第1のノードは、前記保持している計算結果を前記第2のノードへコピーすることを特徴とする。
その他の解決手段については、実施形態中で説明することとする。
Furthermore, the other means of the present invention is a parallel distributed processing method for performing parallel processing in a plurality of entries which are a plurality of nodes and which operate in each node and can be moved between the nodes. And there is a first node and a second node that are in a relation between the backup source of the entry, the backup destination of the entry, and the first node performs a calculation process, and the calculation process The calculation result that is the result of the above is copied to the second node, the second node performs the calculation process, the calculation result that is the result of the calculation process is copied to the first node, and the first node When all the calculation results are obtained at the node, but the calculation result is not obtained at the second node, the first node obtains the calculation result at the second node. When the next calculation process is started, the first node and the second node perform the calculation process and copy the calculation result, and the first node The held calculation result is copied to the second node.
Other solutions will be described in the embodiments.
本発明によれば、並列分散処理システムにおいて、効率的にエントリを移動することができる。 According to the present invention, entries can be moved efficiently in a parallel distributed processing system.
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。 Next, modes for carrying out the present invention (referred to as “embodiments”) will be described in detail with reference to the drawings as appropriate.
(システム構成図)
図1は、本実施形態に係る並列分散処理システムの構成例を示す図である。
並列分散処理システム100は、1つのマスタノード1、複数のスレーブノード2、クライアントノード3を有している。
マスタノード1と、スレーブノード2は、それぞれ論理的な計算機であり、1つのサーバで複数のノード(マスタノード1、スレーブノード2)を実行してもよいし、単独のノードを実行するようにしてもよい。
なお、各ノードは仮想的なネットワーク4で相互に接続されている。
(System Configuration)
FIG. 1 is a diagram illustrating a configuration example of a parallel distributed processing system according to the present embodiment.
The parallel distributed processing system 100 includes one
Each of the
Each node is connected to each other by a
マスタノード1は、スレーブノード2の動作状況を管理する論理的な計算機であり、実際の計算処理はスレーブノード2上で行われる。なお、マスタノード1がスレーブノード2を兼ねることも可能である。
また、並列分散処理システム100が実行する各ジョブは、複数のタスク21に分割されて実行される。
The
Each job executed by the parallel distributed processing system 100 is divided into a plurality of
マスタノード1は、ジョブマネージャ11および分散ファイルシステム12を実行している。
ジョブマネージャ11は、スレーブノード2におけるジョブや、タスク21の実行状態を管理する。具体的には、ジョブとタスク21との対応関係、タスク21とそのタスク21を実行するスレーブノード2との対応関係、各タスク21の進捗率などを管理する。
なお、分散ファイルシステム12については後記する。
スレーブノード2は、実際の計算処理を行う論理的な計算機であり、少なくとも1つのタスク21と、タスクマネージャ23と、分散ファイルシステム24が実行されている。
タスク21では、複数のエントリ22が実行されている。エントリ22は、タスク21や、ノード間を移動可能である。
タスクマネージャ23は、各スレーブノード2で実行中のタスク21の実行状態(実行中タスク21の進捗率など)を管理する。タスクマネージャ23はタスク21を実行する際、1つのタスク21に対して複数のスレッドを割り当て実行することで、CPU(Central Processing Unit)201(図2)がマルチコアの場合にもCPUリソースを有効活用できる。
The
The
The distributed
The
In the
The
なお、ファイルサイズが大きい場合、1つのファイルが複数のノードに分割配置されることがある。
分散ファイルシステム12,24は、このような場合に、並列分散処理システム100のようにファイルの本体が複数のノードに分散配置されたときに、同一のパス名で、どのノードからもすべてのファイルへアクセス可能にするためのシステムである。分散ファイルシステム12,24を使用すると、アクセスすべきデータが、自身のノードに格納されておらず、他のノードに格納されている場合、他のノードの分散ファイルシステム12,24を経由して、データにアクセスする。
スレーブノード2群の負荷状況に応じて、生成したタスク21の実行スレーブノードが動的に決定されるため、計算処理を実際に実行するスレーブノード2をどれにするかは事前に決まっていない。分散ファイルシステム12,24を使用することによって、どのスレーブノード2でタスク21が実行された場合も、そのタスク21は指定したファイルの指定したデータ位置にアクセスすることが可能となる。
When the file size is large, one file may be divided and arranged on a plurality of nodes.
In such a case, the distributed
Since the execution slave node of the generated
クライアントノード3はユーザインタフェースを提供する計算機端末である。利用者がクライアントノード3を操作して、並列分散処理システム100にジョブ実行指示を通知すると、クライアントノード3はマスタノード1のジョブマネージャ11にジョブ実行指示を送信する。ジョブマネージャ11は指示されたジョブを複数のタスク21に分割し、スレーブノード2のタスクマネージャ23に各タスク21を配布し、タスクマネージャ23に実行指示する。
The
各スレーブノード2が複数のジョブを同時実行する場合は、図1に示すように、1つのスレーブノード2内に複数のタスク21が生成される場合がある。
When each
ジョブマネージャ11とタスクマネージャ23は並列分散処理システム100に常に常駐しており、サービスプロセスとして動作する。すなわち、ジョブを実行していないときは、ジョブマネージャ11とタスクマネージャ23は利用者からのジョブ実行要求を待つ待機状態となっている。また、タスク21はジョブを実行するたびに動的に生成されるプロセスであり、ジョブ実行を開始すると、タスクマネージャ23はタスク21に対応するプロセスを動的に生成する。異なるジョブ同士が影響しあうと、ジョブ実行の性能や安定性が低くなる場合があるため、タスクマネージャ23は、異なるジョブを異なるプロセスに分離することで、ジョブ同士の影響を低減している。
The
(ハードウェア構成)
図2は、本実施形態に係るマスタノードや、スレーブノードを実行する計算機のハードウェア構成図である。
計算機200は、CPU201、LAN(Local Area Network)250に接続されるLAN I/F(Interface)202、入出力I/F203、メモリ204、ディスクI/F205がバス206を介して内部で接続されている。入出力I/F203には、キーボード210、マウス220、ディスプレイ230が接続されており、利用者はこれらを使用してジョブの実行を指示する。ディスクI/F205には、OS(Operating System)や、各ノードで動作するサービスプロセスのプログラムや、処理を行うための解析対象データが記録されているHDD(Hard Disk Drive)240が接続されている。並列分散処理システム100(図1)起動時にディスク装置109から各プログラムがメモリ204に読み込まれ、CPU201がプログラムを実行することで、ジョブマネージャ11、タスク21、エントリ22、タスクマネージャ23などが具現化する。なお、マスタノード1(図1)とスレーブノード2(図2)を実行している計算機200については、ユーザが直接入出力操作を行うことはないため、キーボード210、マウス220、ディスプレイ230を省略することができる。
(Hardware configuration)
FIG. 2 is a hardware configuration diagram of a computer that executes a master node and a slave node according to the present embodiment.
In the
(並列処理モデル)
図3は、本実施形態に係る並列処理のモデル例を示す図である。なお、以下、本実施形態に係る並列分散処理システム100を、適宜「本システム100」あるいは「システム100」と称することがある。
本システム100では、キー−データ値形式のデータを保持するエントリ22(22a〜22c)同士が相互にメッセージを交換する。例えば、エントリ22aは「k1」というキーと「v11」というデータ値を保持している。同様に、エントリ22bは「k2」というキーと「v21」というデータ値を保持しており、エントリ22cは「k3」というキーと「v31」というデータ値を保持している。
(Parallel processing model)
FIG. 3 is a diagram illustrating a model example of parallel processing according to the present embodiment. Hereinafter, the parallel distributed processing system 100 according to the present embodiment may be appropriately referred to as “the present system 100” or “the system 100”.
In the system 100, entries 22 (22a to 22c) holding data in a key-data value format exchange messages with each other. For example, the
キーはエントリ22の識別子であり、エントリ22の生成時に作成され、ジョブの実行中は変更されることはない。データ値はエントリ22が保持するデータそのものであり、並列処理を実行する過程で変更される場合がある。
各エントリ22は、他のエントリ22からメッセージを受信すると、自身が保持するデータ値と受信したメッセージに基づいて計算処理を行い、必要に応じてデータ値を更新し、他のエントリ22に新たなメッセージを送信する。この処理はユーザプログラムとして実装される。メッセージ送信は送信先エントリのキーを指定することで行われる。各エントリ22はシステム100内のスレーブノード2に分散配置されるが、各エントリ22がどのスレーブノード2に配置されているかは、ジョブマネージャ11が管理しているため、ユーザプログラムはメッセージの送信先スレーブノード2を指定する必要はない。
The key is an identifier of the
When each
ここで、データ値は1つの値である必要はなく、複数の値の組であっても、ネスト構造であってもよい。従って、データ値の更新処理においてデータ値全体を更新する場合もあるし、データ値の一部を更新する場合もある。 Here, the data value does not have to be a single value, and may be a set of a plurality of values or a nested structure. Therefore, the entire data value may be updated in the data value update process, or a part of the data value may be updated.
図4に示すように、本システム100では、BSPモデルに基づき、一連の並列計算とメッセージ送信とが同期しながら実行される。なお、図4において、符号22a〜22cは図3と同様であるため、説明を省略する。
例えば「Phase1」では、各エントリ22は、ユーザプログラムに記載された処理(計算処理、データ値更新、メッセージ送信など)を行う。各エントリ22の処理は並列実行され、すべてのエントリ22の処理が完了するまで待つ(同期)。すべてのエントリ22で、処理が完了したら、システム100は「Phase2」に移行し、各エントリ22は再びユーザプログラムに記載された処理を行う。このとき、「v11」、「v21」、「v31」の各データ値は、「v12」、「v22」、「v32」に更新される。このように、「Phase1」でエントリ22が送信したメッセージは、「Phase2」で初めて利用可能となる。BSPモデルでは、このような各「Phase」のことを「superstep」と呼ぶ。以下、本実施形態では、この「superstep」を「並列処理期間」と称することとする。そして、この並列処理期間に各エントリ22において分散して行われる処理を並列処理(計算処理、データ値更新、メッセージ送信など)と称することとする。
As shown in FIG. 4, in this system 100, based on the BSP model, a series of parallel calculations and message transmission are executed in synchronization. In FIG. 4,
For example, in “
本システム100では、非特許文献1のようにエントリ22間のエッジを仮定しないが、エッジの有無に関して本質的な差異はない。つまり、本システム100においてエッジが設定されるようにしてもよい。本システム100においてメッセージの送信先エントリがわかっていない場合、そのエントリ22のキーを送信元エントリ22がデータ値として保持しておく必要があるが、これはエントリ22から別のエントリ22へのエッジを作成することと等価であるからである。
The system 100 does not assume an edge between the
(パーティションテーブル)
図5は、本実施形態に係るパーティションテーブルの例を示す図でる。
パーティションテーブルは、どのキーを有するエントリ22が、どのタスク21、あるいは、どのノードで実行されているかを管理するためのテーブルである。
図1で説明したように、本システム100では、各タスク21が複数のエントリ22を保持しており、各タスク21が複数のエントリ22の処理を行う。各タスク21が保持するエントリ22の一覧は、図5に示すパーティションテーブルで管理されている。パーティションテーブルにおける各レコードが1つのタスク21に対応している。「開始キー」と「終了キー」とで示された範囲が、対応するタスク21が保持するエントリ22のキーの範囲を表す。タスクID(Identification)はタスク21の識別子であり、ノードIDはそのタスク21が存在するノードの識別子である。宛先は、対応するノードの受信アドレスである。パーティションテーブルはジョブ毎に生成されるが、ジョブマネージャ11とそのジョブに関わるすべてのタスク21を管理しているタスクマネージャ23が同一のパーティションテーブルを保持している。
(Partition table)
FIG. 5 is a diagram illustrating an example of a partition table according to the present embodiment.
The partition table is a table for managing which
As described with reference to FIG. 1, in this system 100, each
ジョブマネージャ11は、ジョブ開始時にパーティションテーブル(図5)を作成し、タスクマネージャ23にタスク21の生成を指示する。タスク21の宛先はスレーブノード2のアドレスとポート番号の組から構成される。複数ジョブが同時実行される場合、複数のタスク用プロセスを1つのスレーブノード2上で実行するため、各タスク用プロセスに異なる受信用ポートを割り当てる必要がある。タスクマネージャ23はタスク21の生成指示を受けると、タスク用プロセスへの受信ポートの割り当てを行い、タスク用プロセスを生成する。タスク用プロセスの生成が完了すると、タスクマネージャ23はタスク21の宛先(アドレスとポート番号)をジョブマネージャ11に返し、ジョブマネージャ11は自身のパーティションテーブルにおいて、対応するタスク21の宛先(図5)を更新する。
すべてのタスク21について生成が完了すると、ジョブマネージャ11は実行しているジョブに関わるすべてのタスク21を管理しているタスクマネージャ23へパーティションテーブルを送信する。このようにして、タスク21の生成時にすべてのタスクマネージャ23に同一のパーティションテーブルが配布される。
The
When the generation for all the
(データテーブル)
図6は、本実施形態に係るデータテーブルの例を示す図である。
データテーブルは、どのエントリ22が、どのようなデータ値を保持しているかを管理するためのテーブルである。
各タスクマネージャ23は、図6に示すデータテーブルを参照して、自身が保持するエントリ22のデータ値を管理している。データテーブルは、エントリ22のキー(k)、計算処理の結果のデータ値である「Dn」、並列処理中に受信したメッセージである「Br」、並列処理期間開始前にエントリ22が保持しているデータ値である「D」、前回の並列処理で受信したメッセージである「Bu」を有している。「Bu」は、エントリにおいて他のエントリから送信されたメッセージを受信するためのバッファである。ここで、「Dn」=「D」+「Bu」である(前記したように、並列処理中に受信したメッセージ「Br」は、次の並列処理期間にならないと使用することができない)。なお、実際には、「Dn」は「D」との差分が格納されることが多い。さらに、データテーブルは、データ値のバックアップである「Db」、メッセージのバックアップである「Bb」の各データ値を有している。このうち「Db」と「Bb」は、エントリ22を二重化する場合に利用する(第3実施形態で後記)。
なお、図6において、各欄が空欄となっているが、実際にはデータ値が格納されている。
(Data table)
FIG. 6 is a diagram illustrating an example of a data table according to the present embodiment.
The data table is a table for managing which
Each
In FIG. 6, each column is blank, but actually data values are stored.
ジョブマネージャ11は、図6に示すようなすべてのエントリ22に関するデータテーブルを有しているが、タスクマネージャ23は、システム100における、すべてのエントリ22に関するデータテーブルを有してもよいし、自身に対応するエントリ22に関するデータテーブルを有してもよい。
The
(並列処理の概要)
ここで、並列処理の概要を記載する。具体的な処理は、図7以降を参照して後記する。
並列処理期間において、各エントリ22はデータテーブルを参照して、自身に対応するエントリ22の「D」と「Bu」を用いてユーザが定義した計算処理を実行する。前記したように、「D」は、並列処理期間開始時にエントリ22が保持しているデータ値であり、「Bu」は前回の並列処理期間で受信したメッセージである。データ値の更新を行う場合、エントリ22は、更新前との差分を計算処理の結果「Dn」として格納する。各タスク21は自分が保持するすべてのエントリ22の並列処理が終了したら、「Dn」と「D」とをマージ(データの結合など)し、マージ後のデータ値を、新たな「D」とする。各タスク21は、この新たな「D」を並列処理期間終了後のデータ値として更新する。
(Overview of parallel processing)
Here, an outline of parallel processing is described. Specific processing will be described later with reference to FIG.
In the parallel processing period, each
各タスク21は、他のタスク21が保持するエントリ22に対してメッセージを送信する。このとき、タスク21は、タスクマネージャ23が保持しているパーティションテーブルの宛先(図5)を参照して、送信先スレーブノード2を決定する。すなわちタスク21は、メッセージ送信時に宛先エントリ22のキーに対応するエントリ22をパーティションテーブルから検出する。そして、タスク21は、検出されたエントリ22の宛先(図5)に対してメッセージを送信する。送信するメッセージには、メッセージ本体と宛先エントリ22のキーが含まれている。
Each
メッセージを受信したタスク21は、自身が保持するデータテーブル(図6)を参照し、メッセージに含まれるキーに対応するエントリ22の「Br」(並列処理中に受信したメッセージ)に受信したメッセージを追加する。「Br」へのメッセージ追加方法は、(a)メッセージを単純に追加していく方法と、(b)集約計算を行う方法がある。(a)の場合、「Br」は、最終的に複数のエントリ22から受信したメッセージのリストになる。また、(b)の例として、すべてのエントリ22から受信したメッセージの和を「Br」の結果とする処理などが挙げられる。和は結合法則と交換法則を満たすため、(b)の場合、メッセージを受信するたびに、タスク21は、受信したメッセージを「Br」のデータ値に加算したデータ値を計算し、その結果を新たな「Br」の値として更新する。このような演算が集約処理であり、結合法則と交換法則を満たす演算であればどのような演算であってもよい。他の集約処理の例として、最大、最小、二乗和などが用いられていてもよい。また、集約処理を行う場合、送信側タスク21において、同一エントリ22へ送信するメッセージを予め集約した後、集約結果を送信してもよい。これによって、ネットワーク転送量を削減することができる。
The
メッセージ送信処理は、並列処理期間の途中では他のエントリ22からメッセージを受信する可能性があり、「Br」のデータ値を確定することができない。従って、ある並列処理期間が終了した時点、つまりすべてのエントリ22がある並列処理期間での並列処理を終えた時点で、その並列処理期間で更新された「Br」の値が確定する。ある並列処理期間が終了し「Br」が確定したら、タスク21は、並列処理中に「Br」を「Bu」(並列処理期間開始前にエントリ22が保持しているデータ値)に移動する。これによって、タスク21は、次回の並列処理期間において、受信したメッセージを使えるようになる。
In the message transmission process, a message may be received from another
(負荷均等化の具体例)
続いて、図1を参照しつつ、図7〜図18に沿って本システム100における負荷均等化の手法を説明する。これは各スレーブノード2が保持するデータ量をノード性能に応じて調整することで、スレーブノード2の計算負荷を均等化する方法である。これを行うためにはデータ値をスレーブノード2間で移動する必要があるが、前記したように、BSPモデルにおける並列処理期間と次の並列処理期間の間にデータ移動を行うと、データ移動処理のためだけの時間が必要になる。そこで本実施形態におけるシステム100は、並列処理期間の実行中にデータ移動を並行して行うことで、データ移動処理の時間を並列処理期間の処理時間の中に隠蔽し、全体処理時間を削減するようにする。
(Specific example of load balancing)
Next, a load equalization method in the system 100 will be described with reference to FIGS. 7 to 18 with reference to FIG. This is a method of equalizing the calculation load of the
例えば、初期配置状態では図7の上段に示すように各ノード(以降では、スレーブノード2のことを単に「ノード」と称する)にエントリ22が割り当てられたと仮定する。図7の横軸は各ノードが保持するエントリ22のキーを表している。図7の上段の例に示すように、「ノード1」は「k1」〜「k150」、「ノード2」は「k151」(図示せず)〜「k225」、「ノード3」は「k226」(図示せず)〜「k300」のキーに対応するエントリ22を保持している。
For example, in the initial arrangement state, it is assumed that an
各ノードの性能が同一であれば、図7の上段に示す図では、「ノード1」に係る負荷が大きいため、図7の下段のようにエントリ22を移動して、各ノードにおける負荷を均等化する。すなわち、ジョブマネージャ11は、図7の下段のように各ノードに割り当てるキーの範囲を変更する。このとき、ジョブマネージャ11は、「k101」〜「k150」のキー範囲のエントリ22を「ノード1」から「ノード2」へ移動する。そして、ジョブマネージャ11は、「k201」〜「k225」のキー範囲のエントリ22を「ノード2」から「ノード3」へ移動する。このようにすることで、「ノード1」は「k1」〜「k100」までのエントリ22を有し、「ノード2」は「k101」(図示せず)〜「k200」までのエントリ22を有し、「ノード3」は「k201」(図示せず)〜「k300」までのエントリ22を有する。つまり、各ノードは、100づつのエントリ22を有することになり、各ノードの性能が同一であれば、負荷均等化を図ることができる。なお、ここでは、説明を簡単にするため、各ノードの性能が同一であることを仮定したが、ノード性能が異なる場合は、ノード性能の比に応じてエントリ22の分配比を調整すればよい。
If the performance of each node is the same, in the diagram shown in the upper part of FIG. 7, the load related to “
《第1実施形態》
続いて、図7に示すような負荷均等化の具体的な手順の第1実施形態を、図8〜図13を参照して説明する。なお、第1実施形態〜第3実施形態におけるシステム100の構成、ハードウェア構成は、図1および図2に示す構成と同様であるため、説明を省略する。
なお、図8〜図25において、縦軸が各ノード(タスク21)が保持するエントリ22のキーを示している。また、各エントリ22は、横方向に対応する各種データ値を有している。また、図8〜図25において、破線で示した矩形はデータ値が存在しないことを示しており、実線の矩形はデータ値が存在することを示している。
<< First Embodiment >>
Next, a first embodiment of a specific procedure for load equalization as shown in FIG. 7 will be described with reference to FIGS. Note that the configuration and hardware configuration of the system 100 in the first to third embodiments are the same as the configurations shown in FIGS.
8 to 25, the vertical axis indicates the key of the
図8〜図25の各図において、矩形内に示した記号の添え字はデータ値のバージョンを示す。例えば図8において「ノード1」は、同期開始前にエントリ22が保持しているデータ値である「D」と、前回の並列処理期間で受信したメッセージ「Bu」を自分が担当するすべての範囲のキーに対して保持している。「D」には「D1」、「Bu」には「B1」と記載されているが、この添え字「1」がバージョンである。詳細は後記するが、図9の「ノード1」では、「k100」〜「k85」の範囲のキーについてエントリ22の並列処理が終了し、データ値の差分である「Dn」の部分に「d2」と記載されている。ここで、添え字が「2」になっているが、このデータ値がバージョン「1」のデータ値(「D1」と「B1」)に基づいて生成されたため、バージョンが「2」に上がったことによる。
In each of FIGS. 8 to 25, the subscript of the symbol shown in the rectangle indicates the version of the data value. For example, in FIG. 8, “
まず各タスク21は、データ値の再分配を行う前に並列処理期間を最低1回実行し、各ノードにおける並列処理期間の実行時間を計測する。並列処理期間が終了したら、計測結果は各タスク21からジョブマネージャ11に集められ、ジョブマネージャ11は計測結果に基づき、各ノードに割り当てるキーの比を計算する。
具体的には、既存のエントリ22の分配比がx1:x2:x3であり、処理時間の比がt1:t2:t3であった場合、ジョブマネージャ11は、エントリ22の分配比がx1/t1:x2/t2:x3/t3になるように調整することで、理論的には次回の処理時間の比を1:1:1にすることができる。ジョブマネージャ11は、このようなエントリ22の分配比を、パーティションテーブル(図5)を参照して計算する。
First, each
Specifically, when the distribution ratio of the existing
このようにして算出した各ノードへのエントリ22の割り当てが、図7の下段に示すように「ノード1」に対して「k1」〜「k100」、「ノード2」に対して「k101」〜「k200」、「ノード3」に対して「k201」〜「k300」になったと仮定する。ジョブマネージャ11は、再配置後のキーの範囲(つまり、図5のパーティションテーブル)を各ノードに配布し、次回の並列処理期間を開始するように各タスク21に要求する。
以下、図7の上段の配置状態から、図7の下段の配置状態へエントリ22を再配置する具体的な手順を説明する。
As shown in the lower part of FIG. 7, the assignment of the
Hereinafter, a specific procedure for rearranging the
(図8)
並列処理期間の開始時点で各ノードが保持するエントリ22は図8のようになっている。ここで、図8におけるエントリ22の配置状態は、図7の上段と同様の配置状態である。各ノードのタスク21は、ジョブマネージャ11から配布された再配置後のキーの範囲に基づき、他のノードに送信すべきキーの範囲を確定する。具体的には、「ノード1」は「k101」〜「k150」を「ノード2」に送信し、「ノード2」は「k201」〜「k225」を「ノード3」に送信することを確定する。この結果、この並列処理期間の終了後には、「ノード1」が「k1」〜「k100」のエントリ22を有し、「ノード2」が「k101」〜「k200」のエントリ22を有し、「ノード3」が「k201」〜「k300」のエントリ22を有することになる。
(Fig. 8)
The
(図9)
図9は、並列処理期間開始からしばらく時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
各ノードのタスク21は再配置後に自身が担当するキー範囲のエントリ22の並列処理の実行を開始すると共に、再配置対象のエントリ22のデータ値(「D」および「Bu」)を宛先ノードのタスク21にする。
例えば、「ノード2」は再配置後に「k101」〜「k200」の範囲のキーを担当することになるが、「k101」〜「k150」の範囲のキーは保持していない(現時点では、「ノード1」が保持している)。従って、「ノード2」は、エントリ22の並列処理の実行を、再配置後自身が保持し、かつ、現時点でも自身が保持している最大のキーである「k200」から開始し、キーの値が小さくなる方向(「k200」→「k151」)にエントリ22の並列処理を進めていく。なお、図9〜図13において、並列処理を進める方向を黒く塗りつぶした矢印で示す。
(Fig. 9)
FIG. 9 is a diagram illustrating an entry arrangement state in each node when a certain time has elapsed since the start of the parallel processing period.
The
For example, “
図9の時刻では、「ノード2」は「k200」から「k185」まで並列処理を進めており、計算処理の結果として「k200」〜「k185」の範囲のエントリ22において「Dn」のデータ値(「d2」)が格納されている。
At the time of FIG. 9, “
このような計算処理と並行して、各ノードは、「D」、「Bu」のデータ値を再配置後のノードへコピーしていくが、このとき、以下に記載するような手順でデータ値のコピーを行う。例えば、前記したような「ノード2」の並列処理動作を見越して、「ノード1」は「ノード2」との再配置前のキー境界に近いデータ値から優先的に「ノード2」にコピーする。つまり、「ノード2」は「k200」から順にキーの値が小さくなる方向にエントリ22の並列処理を行うため、「ノード1」は「k101」〜「k150」の範囲のデータ値を「ノード2」にコピーするときに、再配置前のキー境界である「k150」からコピーを開始しする。そして、「ノード1」は、「k150」からキーの値が小さくなる方向(「k150」→「k101」)に「k101」まで順次データ値をコピーする。なお、図9〜図13において、コピーしていく方向をハッチングの矢印で示し、コピーされるていく方向を白抜きの矢印で示す。これによって、「ノード2」におけるエントリ22の処理をなるべく滞らせずに実行することが可能となる。
In parallel with such calculation processing, each node copies the data values of “D” and “Bu” to the rearranged nodes. At this time, the data values are processed according to the procedure described below. Make a copy of For example, in anticipation of the parallel processing operation of “
なお、図9において、「ノード1」は「k150」〜「k130」までのデータ値をコピーしているのに、「ノード2」では「k150」〜「k135」までしかデータ値を受信していない。これは、送信・受信のタイムラグのためである。
すべてのノードにおいて、エントリ22の実行順序と、エントリ22のノード間送信順序はこのようなルールに基づいて実行する。
なお、エントリ22の計算処理とエントリ22のデータ値のコピーは非同期に行われるため、エントリ22の計算処理が完了したキーに対応するすべての「Dn」、「D」のコピーが完了しているわけではない。なお、エントリ22の計算処理とエントリ22のデータ値のコピーが同期的に行われてもよい。
In FIG. 9, “
In all the nodes, the execution order of the
Since the calculation process of the
図9における「Dn」、「D」、「Bu」におけるエントリの配置状態を、以下に整理する。
ノード1:「k100」〜「k85」まで計算処理が完了済み(「d2」)。「k150」〜「k130」までのデータ値(「D1」、「B1」)が「ノード2」へコピー済み。
ノード2:「k200」〜「k185」まで計算処理が完了済み(「d2」)。「k1225」〜「k205」までのデータ値(「D1」、「B1」)が「ノード3」へコピー済み。「k150」〜「k135」までのデータ値(「D1」、「B1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k285」まで計算処理が完了済み(「d2」)。「k225」〜「k210」までのデータ値(「D1」、「B1」)が「ノード2」から受信済み。
The arrangement state of entries in “Dn”, “D”, and “Bu” in FIG. 9 is organized as follows.
Node 1: Computation processing has been completed for “k100” to “k85” (“d2”). Data values (“D1”, “B1”) from “k150” to “k130” have been copied to “
Node 2: Calculation processing from “k200” to “k185” has been completed (“d2”). Data values (“D1”, “B1”) from “k1225” to “k205” have been copied to “
Node 3: Calculation processing from “k300” to “k285” has been completed (“d2”). Data values (“D1”, “B1”) from “k225” to “k210” have been received from “
並列処理期間中に各エントリ22が他のエントリ22に対して送信するメッセージは、再配置後のエントリ配置に基づき送信される。従って、各ノードは再配置後に自身が担当する範囲のキーに対応するメッセージを受信することになる。
例えば、「ノード1」は再配置後に「k1」〜「k100」のキー範囲のエントリ22を担当するため、「Br」はこの範囲のデータ値のみを受信し、保持する。図9では、「ノード1」において、「k1」〜「k100」のキー範囲に該当する「Br」が実線の矩形として示されている。ただし、並列処理期間実行中であり「Br」の値は確定していないため、図9において、「Br」ではバージョン番号を伴ったデータ値を記載していない(以降の図でも同様の理由から、確定前の「Br」にはバージョン番号を記載しない)。また、再配置後、「ノード1」はそもそも「k101」〜「k150」のキー範囲のエントリ22を担当しないため、図9では対応する「Br」の部分の破線表示を行っていない。
同様の理由から、「ノード2」では「k101」〜「k200」のキー範囲に該当する「Br」が、「ノード3」では「k201」〜「k300」のキー範囲に該当する「Br」が実線の矩形として示されている。以降の図でも、「Br」は同様に示されるため、図10、図11では「Br」の説明を省略することとする。
A message transmitted from each
For example, since “
For the same reason, “Br” corresponding to the key range of “k101” to “k200” in “
(図10)
図10は、図9からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
各ノードにおけるエントリの配置状態は以下の通りである。
ノード1:「k100」〜「k55」まで計算処理が完了済み(「d2」)。「k150」〜「k105」までのデータ値(「D1」、「B1」)が「ノード2」へコピー済み。
ノード2:「k200」〜「k155」まで計算処理が完了済み(「d2」)。「k1225」〜「k201」までのデータ値(「D1」、「B1」)が「ノード3」へコピー済み。「k150」〜「k110」までのデータ値(「D1」、「B1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k255」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「D1」、「B1」)が「ノード2」から受信済み。
(Fig. 10)
FIG. 10 is a diagram illustrating an entry arrangement state in each node when a further time elapses from FIG. 9.
The arrangement state of entries in each node is as follows.
Node 1: Calculation processing from “k100” to “k55” has been completed (“d2”). Data values (“D1”, “B1”) from “k150” to “k105” have been copied to “
Node 2: Calculation processing from “k200” to “k155” has been completed (“d2”). Data values (“D1”, “B1”) from “k1225” to “k201” have been copied to “
Node 3: Calculation processing from “k300” to “k255” has been completed (“d2”). Data values (“D1”, “B1”) from “k225” to “k201” have been received from “
図10に示す時刻では、「ノード2」から「ノード3」へのデータ値(「D」および「Bu」)のコピーは完了しているが、「ノード1」から「ノード2」へのデータ値のコピーは未完である。
At the time shown in FIG. 10, the copying of the data values (“D” and “Bu”) from “
(図11)
図11は、図10からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
各ノードにおけるエントリの配置状態は以下の通りである。
ノード1:「k100」〜「k15」まで計算処理が完了済み(「d2」)。「k150」〜「k101」までのデータ値(「D1」、「B1」)が「ノード2」へコピー済み。
ノード2:「k200」〜「k115」まで計算処理が完了済み(「d2」)。「k1225」〜「k201」までのデータ値(「D1」、「B1」)が「ノード3」へコピー済み。「k150」〜「k101」までのデータ値(「D1」、「B1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k2215」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「D1」、「B1」)が「ノード2」から受信済み。
(Fig. 11)
FIG. 11 is a diagram showing an entry arrangement state in each node when a further time elapses from FIG.
The arrangement state of entries in each node is as follows.
Node 1: Computation processing has been completed for “k100” to “k15” (“d2”). Data values (“D1”, “B1”) from “k150” to “k101” have been copied to “
Node 2: The calculation processing from “k200” to “k115” has been completed (“d2”). Data values (“D1”, “B1”) from “k1225” to “k201” have been copied to “
Node 3: Calculation processing from “k300” to “k2215” has been completed (“d2”). Data values (“D1”, “B1”) from “k225” to “k201” have been received from “
図11に示す時刻では、「ノード2」から「ノード3」へのデータ値(「D」および「Bu」)のコピーに加え、「ノード1」から「ノード2」へのデータ値のコピーも完了している。しかし、各ノードにおける計算処理(「d2」)は未完である。
At the time shown in FIG. 11, in addition to copying data values (“D” and “Bu”) from “
(図12)
図12は、図11からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
図12では、データ値のコピー、および各ノードにおける計算処理が終了している。図12の時点で並列処理期間における並列処理が終了し、BSPモデルにおける同期の配置状態へ移行する。
並列処理期間が終了したことで、「Br」の状態が確定しているため、各ノードにおける「Br」の矩形の内部に「B2」とバージョン番号の添え字付の値を記載している。
また、「ノード1」における「k150」〜「k101」、「ノード2」における「k225」〜「k201」は、該当するノードにおける計算処理を行っていないため、データ値が存在しない破線矩形となっている。
(Fig. 12)
FIG. 12 is a diagram illustrating an entry arrangement state in each node when a further time elapses from FIG. 11.
In FIG. 12, the copying of the data value and the calculation process at each node are completed. At the time of FIG. 12, the parallel processing in the parallel processing period ends, and the state shifts to the synchronous arrangement state in the BSP model.
Since the state of “Br” has been determined because the parallel processing period has ended, “B2” and a value with a subscript of the version number are written inside the rectangle of “Br” in each node.
In addition, “k150” to “k101” in “
(図13)
図13は、図12からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
図13は同期中におけるエントリの配置状態を示しており、この同期中に、各ノードのタスク21は、「Dn」の値を「D」にマージし(「d2」+「D1」)、「Dn」をクリアする。また各ノードのタスク21は、「Br」を「Bu」に移動し、「Br」をクリアする。
図13では「D」の値が「D2」になっているが、1つ前のバージョンのデータ値である「D1」が新バージョンデータ値への差分「d2」をマージした結果「D2」になったためである(「d2」+「D1」=「D2」)。最後に、各ノードのタスク21は、自身が保持するパーティションテーブル(図5)の開始キー、終了キーを再配置後の値に更新する。
(Fig. 13)
FIG. 13 is a diagram showing an entry arrangement state in each node when a further time elapses from FIG.
FIG. 13 shows the arrangement state of entries during synchronization. During this synchronization, the
In FIG. 13, the value of “D” is “D2”, but “D1”, which is the data value of the previous version, is merged with the difference “d2” to the new version data value to “D2”. (“D2” + “D1” = “D2”). Finally, the
(第1実施形態の効果)
以上説明したように、並列処理期間において各ノードが再配置後のエントリ22に対する処理を行いつつ、データ値のコピー(送信)を行うことで、システム100はエントリ22の再配置処理時間を隠蔽することができ、全体処理時間を短縮することが可能になる。
つまり、並列処理期間において、各ノードがエントリ22の計算処理を行うとともに、再配置後のエントリ22に従ってデータ値をコピーするため、システム100はエントリ22の再配置処理時間をエントリ22の計算処理に隠すことができ、全体処理時間を短縮することが可能になる。なお、データ値のコピーは、計算処理に比べて、CPU201(図2)やメモリ204(図2)の使用率が著しく低いため、データ値のコピーが並列処理時間に与える影響は小さい。
(Effect of 1st Embodiment)
As described above, the system 100 conceals the relocation processing time of the
That is, in the parallel processing period, each node performs the calculation process of the
《第2実施形態》
続いて、図7に示すような負荷均等化の具体的な手順の第2実施形態を、図14〜図18を参照して説明する。
第1実施形態の技術は、エントリ22の再配置処理で「D」と「Bu」をノード間で送信していたが、コピーするデータ量が多い場合、データ値のコピー処理に多くの時間を費やしてしまい、全体処理時間の削減効果が小さくなるという課題がある。そこで第2実施形態におけるシステム100は、再配置処理で「D」と「Bu」の代わりに「Dn」と「D」を送信する方法について説明する。
この方式は、「Bu」に比較して「Dn」のデータ量が十分に小さい場合に有効になる。
<< Second Embodiment >>
Next, a second embodiment of a specific procedure for load equalization as shown in FIG. 7 will be described with reference to FIGS.
In the technique of the first embodiment, “D” and “Bu” are transmitted between the nodes in the relocation processing of the
This method is effective when the data amount of “Dn” is sufficiently smaller than “Bu”.
第1実施形態との違いはエントリ22の再配置処理であるため、以下ではエントリ22の再配置処理のみ説明する。第1実施形態と同様、図7に示すようにエントリ22の再配置を行う場合を例として説明する。各ノードのタスク21が他のノードにコピーするエントリ22のキーの範囲を確定する処理までは、第1実施形態と同じであるため説明を省略する。
Since the difference from the first embodiment is the relocation processing of the
(図14)
図14は、並列処理期間の開始時点における各ノードにおけるエントリの配置状態を示す図である。
図14は、図8と同様であるため、説明を省略する。
(Fig. 14)
FIG. 14 is a diagram illustrating an entry arrangement state in each node at the start of the parallel processing period.
FIG. 14 is the same as FIG.
(図15)
並列処理期間が開始すると、各ノードは、再配置前のエントリ22に対する処理を行うと共に、再配置後のエントリ22については計算処理の結果の「Dn」と「D」を再配置先にコピーする。
例えば、「ノード1」は、同期開始時点で「k1」〜「k150」のキー範囲のエントリ22を保持しており、このうち「k101」〜「k150」のキー範囲のエントリ22に対応するデータ値が「ノード2」に送信される必要がある。ネットワーク4(図1)の状態によっては、データ値の送信には時間がかかる可能性があるため、システム100は送信対象エントリ22(「ノード1」では「k101」〜「k150」)の並列処理を優先して実行し、このキー範囲のデータ値のコピー処理を開始する。従って、「ノード1」は「k101」〜「k150」のキー範囲のエントリ22における並列処理を、再配置後にも「ノード1」に残るエントリ22(「k1」〜「k100」)より先に実行し、計算処理結果である「Dn」(「d2」)が作成できたものから順に「ノード2」にコピーする。
(Fig. 15)
When the parallel processing period starts, each node performs processing for the
For example, “
このような制御を行うため、「ノード1」は「k150」からエントリ22の並列処理を開始し、キーの値が小さくなる方向(「k150」→「k1」)に並列処理を行っている。つまり、「ノード1」は再配置前のノード間のキー境界(ここでは、「k150」)に近いデータ値からエントリ22の並列処理を開始している。
図15において、「ノード1」は「k150」から「k125」までのエントリ22の計算処理が完了し、対応する「Dn」(「d2」)の作成が完了している。エントリ22の計算処理とエントリ22のデータ値のコピーは非同期に行われるため、エントリ22の計算処理が完了したキーに対応するすべての「Dn」、「D」のコピーが完了しているわけではない。なお、エントリ22の計算処理とエントリ22のデータ値のコピーが同期的に行われてもよい。
図15では、「ノード1」において計算処理が完了している「k150」〜「k125」のデータ値のうち、「k150」〜「k130」の範囲の「Dn」、「D」のコピーが完了している(「ノード2」参照)。
In order to perform such control, “
In FIG. 15, “
In FIG. 15, copying of “Dn” and “D” in the range of “k150” to “k130” among the data values of “k150” to “k125” for which calculation processing has been completed in “
また、第2実施形態では、同じエントリ22に対応する「Dn」と「D」とを対にして、送信先ノードへコピーする。ただし、必ずしも「Dn」と「D」を対にしてコピーする必要はなく、ネットワーク4の帯域に余裕がある場合は、すべての「Dn」のコピーが完了する前に、すべての「D」のコピーを完了してもよい。
なお、図15、図16において、計算およびコピーしていく方向を黒く塗りつぶした矢印で示し、コピーされていく方向を白抜きの矢印で示す。
In the second embodiment, “Dn” and “D” corresponding to the
In FIGS. 15 and 16, the direction of calculation and copying is indicated by a black arrow, and the direction of copying is indicated by a white arrow.
同様に、図15において、「k225」〜「k201」の範囲のエントリ22を「ノード3」に再配置する必要があるため、「ノード2」は再配置前のキー境界「k225」から「k225」→「k201」の方向にエントリ22の並列処理を開始し、「k205」まで計算処理を終えている。そして「ノード3」は「k225」〜「k210」の範囲の「Dn」(「d2」)と「D」(「D1」)の受信を完了している。
Similarly, in FIG. 15, since it is necessary to rearrange the
図15における「Dn」、「D」におけるエントリの配置状態を、以下に整理する。
ノード1:「k150」〜「k125」まで計算処理が完了済み(「d2」)。「k150」〜「k130」までのデータ値(「d2」、「D1」)が「ノード2」へコピー済み(「ノード2」の「Dn」、「D」参照)。
ノード2:「k225」〜「k205」まで計算処理が完了済み(「d2」)。「k225」〜「k210」までのデータ値(「d2」、「D1」)が「ノード3」へコピー済み(「ノード3」の「Dn」、「D」参照)。「k150」〜「k130」までのデータ値(「d2」、「D1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k280」まで計算処理が完了済み(「d2」)。「k225」〜「k210」までのデータ値(「d2」、「D1」)が「ノード2」から受信済み。
The arrangement state of entries in “Dn” and “D” in FIG. 15 is organized as follows.
Node 1: Calculation processing from “k150” to “k125” has been completed (“d2”). Data values (“d2”, “D1”) from “k150” to “k130” have been copied to “
Node 2: Calculation processing has been completed for “k225” to “k205” (“d2”). Data values from “k225” to “k210” (“d2”, “D1”) have been copied to “
Node 3: Calculation processing from “k300” to “k280” has been completed (“d2”). Data values (“d2”, “D1”) from “k225” to “k210” have been received from “
なお、第2実施形態では、既に計算処理を行った結果(「Dn」)を送信先ノードで送っているため、送信先ノードでは、改めて「D」と「Bu」を用いた計算処理を行う必要はない。そのため、各ノードにおいて「Bu」のコピーは行われていない(図16、図17も同様)。
また、「Br」については、第1実施形態と同様であるため、説明を省略する。
In the second embodiment, since the result of calculation processing (“Dn”) is already sent by the destination node, the destination node performs calculation processing using “D” and “Bu” again. There is no need. Therefore, “Bu” is not copied in each node (the same applies to FIGS. 16 and 17).
Further, “Br” is the same as that in the first embodiment, and thus the description thereof is omitted.
(図16)
図16は、図15からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。なお、前記したように計算およびコピーの方向を黒く塗りつぶした矢印で示し、コピーされる方向を白抜きの矢印で示している。
各ノードにおけるエントリの配置状態は以下の通りである。
ノード1:「k150」〜「k95」まで計算処理が完了済み(「d2」)。「k150」〜「k101」までのデータ値(「d2」、「D1」)が「ノード2」へコピー済み(「ノード2」の「Dn」、「D」参照)。
ノード2:「k225」〜「k170」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「d2」、「D1」)が「ノード3」へコピー済み(「ノード3」の「Dn」、「D」参照)。「k150」〜「k101」までのデータ値(「d2」、「D1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k226」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「d2」、「D1」)が「ノード2」から受信済み。
(Fig. 16)
FIG. 16 is a diagram showing an entry arrangement state in each node when a further time elapses from FIG. As described above, the direction of calculation and copying is indicated by a black arrow, and the direction of copying is indicated by a white arrow.
The arrangement state of entries in each node is as follows.
Node 1: Computation processing has been completed for “k150” to “k95” (“d2”). Data values (“d2”, “D1”) from “k150” to “k101” have been copied to “
Node 2: Computation processing has been completed for “k225” to “k170” (“d2”). Data values (“d2”, “D1”) from “k225” to “k201” have already been copied to “
Node 3: Calculation processing from “k300” to “k226” has been completed (“d2”). Data values (“d2”, “D1”) from “k225” to “k201” have been received from “
図16では、各ノードにおけるデータ値のコピーは完了しているが、「ノード1」、「ノード2」において計算処理が未完である(「ノード3」は計算処理も完了している)。
In FIG. 16, the copying of the data value at each node is completed, but the calculation processing is incomplete at “
(図17)
図17は、図16からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
各ノードにおけるエントリの配置状態は以下の通りである。
ノード1:「k150」〜「k1」まで計算処理が完了済み(「d2」)。「k150」〜「k101」までのデータ値(「d2」、「D1」)が「ノード2」へコピー済み(「ノード2」の「Dn」、「D」参照)。
ノード2:「k225」〜「k151」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「d2」、「D1」)が「ノード3」へコピー済み(「ノード3」の「Dn」、「D」参照)。「k150」〜「k101」までのデータ値(「d2」、「D1」)が「ノード1」から受信済み。
ノード3:「k300」〜「k226」まで計算処理が完了済み(「d2」)。「k225」〜「k201」までのデータ値(「d2」、「D1」)が「ノード2」から受信済み。
(Fig. 17)
FIG. 17 is a diagram illustrating an entry arrangement state in each node when a further time elapses from FIG.
The arrangement state of entries in each node is as follows.
Node 1: Calculation processing from “k150” to “k1” has been completed (“d2”). Data values (“d2”, “D1”) from “k150” to “k101” have been copied to “
Node 2: Calculation processing has been completed for “k225” to “k151” (“d2”). Data values (“d2”, “D1”) from “k225” to “k201” have already been copied to “
Node 3: Calculation processing from “k300” to “k226” has been completed (“d2”). Data values (“d2”, “D1”) from “k225” to “k201” have been received from “
図17の時点で、各ノードにおける計算処理およびデータ値のコピーが完了している。そして、図17の時点で、並列処理期間の並列処理が終了し、BSPモデルにおける同期の状態へ以降する。ここで、第1実施形態と同様に、並列処理期間が終了したことで、「Br」の状態が確定しているため、「Br」の矩形の内部に「B2」とバージョン番号の添え字付の値を記載している。 At the time of FIG. 17, the calculation process and data value copying at each node have been completed. Then, at the time of FIG. 17, the parallel processing in the parallel processing period is completed, and the process goes to the synchronized state in the BSP model. Here, as in the first embodiment, since the state of “Br” has been determined by the end of the parallel processing period, “B2” and the version number are appended to the inside of the rectangle of “Br”. The value of is described.
(図18)
図18は、図17からさらに時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
図18は同期中におけるエントリの配置状態を示しており、この同期中に、各ノードのタスク21は、再配置後のエントリ22に対して「Dn」の値を「D」にマージし(「d2」+「D1」=「D2」)、また、Dnをクリアする。そして、各ノードのタスク21は、「Br」を「Bu」に移動し、「Br」をクリアする。なお、「D」におけるバージョン番号は第1実施形態と同様であるため、説明を省略する。
最後に、各ノードのタスク21は、自身が保持するパーティションテーブルの開始キー、終了キーを再配置後の値に更新する。
(Fig. 18)
FIG. 18 is a diagram illustrating an entry arrangement state in each node when a further time elapses from FIG.
FIG. 18 shows the arrangement state of entries during synchronization. During this synchronization, the
Finally, the
(第2実施形態の効果)
第2実施形態によれば、「Bu」の代わりに「Dn」(この値は、差分であることが多いのでデータ量が小さい)を、送信先ノードへコピー(送信)することにより、送信データ量の削減が可能となる。
(Effect of 2nd Embodiment)
According to the second embodiment, instead of “Bu”, “Dn” (this value is often a difference and thus the amount of data is small) is copied (transmitted) to the destination node, thereby transmitting data. The amount can be reduced.
《第3実施形態》
次に、図19から図25を参照して、本発明の第3実施形態を説明する。
第3実施形態におけるシステム100は、耐障害性を維持しつつ、データ移動の時間を隠蔽することを目的とする。
耐障害性とノードの負荷均等化を両立するための技術として特許文献2に記載の技術が挙げられるが、前記したように、データ値の複製処理に対して余分な時間が必要となり、全体の処理時間が増大するという課題がある。このような課題に対し、第3実施形態におけるシステム100は、エントリ22における並列処理を行いつつ、データ値の複製を行うことで、全体の処理時間を削減する。
<< Third Embodiment >>
Next, a third embodiment of the present invention will be described with reference to FIGS.
The system 100 according to the third embodiment aims to conceal the data movement time while maintaining fault tolerance.
The technique described in
第3実施形態と、第1実施形態、第2実施形態との違いは並列処理期間におけるエントリ22の処理とデータ複製処理であるため、この部分を中心に説明する。第3実施形態ではすべてのエントリ22のデータ値は2つのノードが保持する。主としてデータ値を管理し、エントリ22の処理を行うノードをプライマリノードと呼び(単に「プライマリ」と適宜称する:第1のノード)、データ値の複製を保持し、負荷が小さいときにエントリ22の処理を代理実行するノード(つまり、バックアップ用のノード)をレプリカノードと呼ぶ(単に「レプリカ」と適宜称する:第2のノード)。第3実施形態において、レプリカは別のキー範囲に対するプライマリを兼ねるため、プライマリに比べて計算処理能力(代理実行能力)が低いと仮定する。ただし、レプリカを専用のノードとし、プライマリと同等の計算処理能力を持つ構成としてもよい。
Since the difference between the third embodiment, the first embodiment, and the second embodiment is the processing of the
(図19)
図19は、並列処理期間の開始時点におけるプライマリとレプリカにおけるエントリの配置状態を示す図である。
図19に示すように、プライマリとレプリカとでは、キー範囲「k1」〜「k100」に対するエントリ22のデータ値(「D」、「Bu」)が二重化されている。
(Fig. 19)
FIG. 19 is a diagram showing the arrangement state of entries in the primary and replica at the start of the parallel processing period.
As shown in FIG. 19, the data value (“D”, “Bu”) of
(図20)
図20は、並列処理期間開始からしばらく時間が経過したときの、各ノードにおけるエントリの配置状態を示す図である。
並列処理期間が開始されエントリ22の処理が始まると、プライマリはキーの値が最小である「k1」からエントリ22の並列処理を開始し、「k100」の方向(「k1」→「k100」)へ並列処理を進めていく。プライマリは計算処理が完了したエントリ22から順に、計算処理結果である「Dn」(「d1」)をレプリカへコピーする。エントリ22の計算処理と「Dn」のコピーは非同期に行われるため、計算処理中のエントリ22のキーとコピー中のDnに対応するキーは一致しない。なお、エントリ22の計算処理と「Dn」のコピーが同期的に行われてもよい。図19では、「k1」〜「k40」のエントリ22における計算処理が完了し、「k1」〜「k20」の「Dn」のコピーが完了している(レプリカ参照)。
なお、図20〜図23において、計算およびコピーしていく方向を黒く塗りつぶした矢印で示し、コピーされていく方向を白抜きの矢印で示す。
(Fig. 20)
FIG. 20 is a diagram illustrating an entry arrangement state in each node when a certain time has elapsed since the start of the parallel processing period.
When the parallel processing period is started and the processing of the
In FIG. 20 to FIG. 23, the calculation and copying directions are indicated by solid arrows, and the copying directions are indicated by white arrows.
レプリカは負荷に余裕があり代理実行が可能であれば、プライマリが行うエントリ22の処理を肩代わりする。図20の例では、レプリカはプライマリの実行と処理が重ならないようにするため、プライマリとは逆順にエントリ22の処理を代理実行している。つまり、キーの値が最大である「k100」からエントリ22の処理を開始し、「k1」の方向(「k100」→「k1」)へ進めていく。レプリカは代理実行したエントリ22の計算処理の結果である「Dn」(「d1」)をプライマリへコピーする。図19の例では、レプリカは「k100」〜「k85」のエントリ22における計算処理が完了し、このうち、「k100」〜「k90」のエントリ22についてデータ値(「Dn」)のコピーが完了している(プライマリ参照)。
なお、プライマリと、レプリカの並列処理が重ならないようにすれば、並列処理の方向は、図19に示す方向に限らない。例えば、それぞれの向きが逆向きでもよいし、任意のエントリ22から互いに逆方向に並列処理を進めてもよい。
If the replica has a sufficient load and can be executed by proxy, it takes over the processing of the
As long as the parallel processing of the primary and the replica does not overlap, the direction of the parallel processing is not limited to the direction shown in FIG. For example, the respective directions may be reversed, or parallel processing may proceed in the opposite directions from any
このようにプライマリとレプリカはエントリ22の処理を分担するが、そのエントリ22の並列処理を実行したノードがプライマリであってもレプリカであっても、並列処理を行っている他のエントリ22が送信したメッセージは、プライマリに送信される。従って、図19〜図25において、レプリカには「Br」が存在していない。ただし、他のエントリ22へのメッセージは、プライマリおよびレプリカから送信される。つまり、レプリカは、自身が計算したエントリ22については、メッセージの送信を行う。
In this way, the primary and the replica share the processing of the
図20の時点におけるプライマリと、レプリカにおけるエントリの配置状態を整理すると以下のようになる。
プライマリ:「k1」〜「k40」まで計算処理が完了済み(「d1」)。「k1」〜「k20」までのデータ値がレプリカへコピー済み(レプリカの「Dn」参照)。「k100」〜「k90」までのデータ値をレプリカから受信済み(「d1」)。
レプリカ:「k100」〜「k85」まで計算処理が完了済み(「d1」)。「k100」〜「k90」までのデータ値がプライマリへコピー済み(プライマリの「Dn」参照)。「k1」〜「k20」までのデータ値をプライマリから受信済み(「d1」)。
The arrangement of entries in the primary and replica at the time of FIG. 20 is organized as follows.
Primary: The calculation processing from “k1” to “k40” has been completed (“d1”). Data values from “k1” to “k20” have been copied to the replica (see “Dn” of the replica). Data values “k100” to “k90” have been received from the replica (“d1”).
Replica: Calculation processing from “k100” to “k85” has been completed (“d1”). Data values from “k100” to “k90” have been copied to the primary (see “Dn” of the primary). Data values “k1” to “k20” have been received from the primary (“d1”).
(図21)
図21は、図20からさらに時間が経過したときの、各ノードにおけるエントリの配置配置状態を示す図である。
プライマリと、レプリカにおけるエントリの配置配置状態は以下の通りである。
プライマリ:「k1」〜「k80」まで計算処理が完了済み(「d1」)。「k1」〜「k50」までのデータ値がレプリカへコピー済み(レプリカの「Dn」参照)。「k100」〜「k80」までのデータ値をレプリカから受信済み(「d1」)。
レプリカ:「k100」〜「k70」まで計算処理が完了済み(「d1」)。「k100」〜「k80」までのデータ値がプライマリへコピー済み(プライマリの「Dn」参照)。「k1」〜「k50」までのデータ値をプライマリから受信済み(「d1」)。
(Fig. 21)
FIG. 21 is a diagram showing an entry arrangement state in each node when a further time elapses from FIG.
The layout of entries in the primary and replica is as follows.
Primary: The calculation processing from “k1” to “k80” has been completed (“d1”). Data values from “k1” to “k50” have been copied to the replica (see “Dn” of the replica). Data values “k100” to “k80” have been received from the replica (“d1”).
Replica: Calculation processing from “k100” to “k70” has been completed (“d1”). Data values from “k100” to “k80” have been copied to the primary (see “Dn” of the primary). Data values “k1” to “k50” have been received from the primary (“d1”).
図21の時点で、並列処理期間が終了したとする。
すると、図21の時点で、プライマリはすべてのエントリ22についての計算処理結果(「d1」)を保持している。プライマリ自身が計算処理を実行したエントリ22と、レプリカから受信した計算処理結果が一致した地点が「k80」である。
一方、図21の時点で、レプリカは「k100」から開始した代理実行が「k70」まで進んでおり、プライマリにはこのうち「k100」〜「k80」のデータ値がコピーされている。
It is assumed that the parallel processing period has ended at the time of FIG.
Then, as shown in FIG. 21, the primary holds the calculation processing results (“d1”) for all the
On the other hand, at the time of FIG. 21, the proxy execution started from “k100” has progressed to “k70”, and data values “k100” to “k80” are copied to the primary.
すなわち、「k70」〜「k80」のエントリ22については、プライマリとレプリカの両方で計算処理を行っている。前記したように、プライマリも、レプリカも自身が計算したエントリ22については、メッセージの送信を行うため、「k70」〜「k80」のエントリ22に関して、プライマリとレプリカの双方からメッセージが送信されてしまう。その結果、他のノードにおけるプライマリは、プライマリとレプリカの双方から送信されたメッセージを受信してしまう。同一メッセージを2回「Br」に適用すると、「Br」の値が不正になるため、各ノードのプライマリではメッセージの重複受信を検出する必要がある。例えば、各ノードのプライマリでは受信したメッセージの送信元エントリのキーの集合を保持しておくことで、重複受信を検出することができる。つまり、各ノードのプライマリは、メッセージを受信したとき、そのメッセージの送信元のキーを保持しておく。そして、プライマリはメッセージを受信するたびに、そのメッセージの送信元のキーと、保持しているキーとを比較することで、メッセージを重複受信していないか否かを判定する。
なお、メッセージを重複受信していることが検知された場合、プライマリは、後から受信したメッセージを破棄するなどの処理を行う。
That is, for the
When it is detected that a message has been received twice, the primary performs processing such as discarding a message received later.
(図21→図22)
ここで、前記したように図21の時点で並列処理期間は終了しており、BSPモデルにおける同期の状態になる。
この間、レプリカは自身が保持する「Dn」を「D」にマージし、「Dn」を保持していないキー範囲(「k51」〜「k69」)の「D」と「Bu」については、それぞれレプリカ自身の「Db」、「Bb」にバックアップする。
(Fig. 21 → Fig. 22)
Here, as described above, the parallel processing period ends at the time of FIG. 21, and the BSP model is in a synchronized state.
During this time, the replica merges “Dn” held by itself into “D”, and “D” and “Bu” of the key range (“k51” to “k69”) not holding “Dn” Back up to “Db” and “Bb” of the replica itself.
また、プライマリは、すべてのエントリ22において「Dn」を「D」にマージし、「Br」を「Bu」へ移動する。さらに、プライマリは、レプリカが保持していない「k51」〜「k69」のDn(「d1」)をプライマリ自身の「Db」にバックアップする。またプライマリは、すべてのエントリ22における「Br」をまとめてレプリカへコピーする。レプリカは、プライマリから「Br」を受信すると、受信した「Br」を「Bu」に格納する。
Further, the primary merges “Dn” into “D” in all the
このようにすることで、キー範囲「k1」〜「k50」および「k70」〜「k100」に対応するデータ値(「D」、「Bu」)については、並列処理期間実行後のデータ値が二重化されることになる。
それ以外のキー範囲、すなわち「k51」〜「k69」については、プライマリは並列処理期間実行後のデータ値(「D」(「D1」)、「Bu」(「B1」))を保持している。しかし、レプリカは、このキー範囲(「k51〜「k69」)については、「D」を保持していない。ただし、レプリカはこのキー範囲(「k51」〜「k69」)において、「Db」、「Bb」に並列処理期間実行前のデータ値(「D0」、「B0」)を保持しているため、これを使用して再計算することで並列処理期間実行後の「D」(「D1」)を作成することができる(「D0」+「B0」=「d1」、「d1」+「D0」=「D1」)。
In this way, for the data values (“D”, “Bu”) corresponding to the key ranges “k1” to “k50” and “k70” to “k100”, the data values after execution of the parallel processing period are It will be duplicated.
For the other key ranges, ie, “k51” to “k69”, the primary holds the data values (“D” (“D1”), “Bu” (“B1”)) after execution of the parallel processing period). Yes. However, the replica does not hold “D” for this key range (“k51 to“ k69 ”). However, since the replica holds data values (“D0”, “B0”) before execution of the parallel processing period in “Db” and “Bb” in this key range (“k51” to “k69”), By recalculating using this, it is possible to create “D” (“D1”) after execution of the parallel processing period (“D0” + “B0” = “d1”, “d1” + “D0”) = "D1").
つまり、レプリカは、並列処理期間実行後のデータ値(「D1」、「B1」)を持つことと等価であり、データ値は問題なく二重化されていると言える。 That is, the replica is equivalent to having the data values ("D1", "B1") after execution of the parallel processing period, and it can be said that the data values are duplicated without any problem.
以上の処理を完了した結果が、図22に示される状態である。 The result of completing the above processing is the state shown in FIG.
なお、プライマリ−レプリカ間の並列処理が完了しても、他のエントリ22における計算処理が完了していない場合がある。このような場合、他のエントリ22の計算処理が完了するのを待つ必要があるため、プライマリ・レプリカは、以下のような処理を行ってもよいが、本実施形態では、以下の処理を行わなかったものとして処理の説明を進める。
つまり、この待ち時間を利用してプライマリはレプリカへ、適時「k51」〜「k69」の「Db」(「d1」)をコピーしてもよい。
そして、レプリカは「d1」を受信したら「Db」(「D0」)とマージし、マージ結果を「D」(「D1」)に格納していく。そして、レプリカは、マージと、マージ結果の格納と並行して更新が完了したキーに対応する「Db」と「Bb」を順次クリアするようにしてもよい。またプライマリでは、「Db」(「d1」)のコピーが完了したキーに対応する「Db」を順次クリアしてもよい。
Even if the parallel processing between the primary and the replica is completed, the calculation processing in the
That is, using this waiting time, the primary may copy “Db” (“d1”) of “k51” to “k69” to the replica at appropriate times.
When the replica receives “d1”, it merges with “Db” (“D0”) and stores the merge result in “D” (“D1”). Then, the replica may sequentially clear “Db” and “Bb” corresponding to the keys that have been updated in parallel with the merge and storage of the merge result. In the primary, “Db” corresponding to the keys for which “Db” (“d1”) has been copied may be sequentially cleared.
(図22→図23)
次の並列処理期間において、レプリカでエントリ22の計算処理を代理実行する際にキーを進める方向として、(a)「k1」→「k100」、および(b)「k100」→「k1」の2つの選択肢がある。この場合、どちらの方向から計算処理の代理実行を行うのかが、以下に示すように設定される必要がある。
(Fig. 22 → Fig. 23)
In the next parallel processing period, as a direction to advance the key when the calculation processing of the
図22の時点で、レプリカは中間のキー範囲「k51」〜「k69」のエントリ22のデータ値(「D」)を保持していないため、この範囲のエントリ22における計算処理を実行することはできない。そこでレプリカは、なるべく多くのエントリ22に対して代理実行を実行できるようにするため、「D」の存在するキー範囲においてエントリ22が多い側から代理実行を開始する。次の並列処理期間開始時点で図22に示すような配置状態であれば、「k1」〜「k50」のキー範囲のレプリカの方が、「k70」〜「k100」のキー範囲より、多くのデータ値「D」(「D1」)を保持している。よって、レプリカは、「k1」→「k100」の方向で代理実行を進めるよう代理実行の方向を設定する。
Since the replica does not hold the data value (“D”) of the
レプリカは自身がプライマリとして管理するエントリ22を保持するため、並列処理期間が開始されたら直ちに代理実行を開始するわけではない。並列処理期間開始時にレプリカは代理実行の方向を決めておき、実際の代理実行は、自身の負荷が低いときに行う。
Since the replica holds the
レプリカが代理実行の方向を決めたらプライマリは、その逆順(つまり、「k100」→「k1」)の方向でエントリ22の並列処理を行う。これによって、並列処理を行うエントリ22が、プライマリとレプリカとで重複しないようにすることができる。
また、プライマリは「Db」(「d1」)の残りをレプリカに送信するが、なるべくレプリカでの代理実行を継続できるように、レプリカの代理実行の方向と同方向となるよう「Db」をコピーする。
すなわち、本実施形態では、レプリカが「k1」→「k100」の方向で代理実行を行うので、プライマリは同方向となる「k51」→「k69」の方向で「Db」(「d1」)を送信する。
When the replica determines the proxy execution direction, the primary performs parallel processing of the
In addition, the primary sends the remainder of “Db” (“d1”) to the replica, but copies “Db” to be in the same direction as the proxy execution of the replica so that the proxy execution can be continued as much as possible. To do.
That is, in this embodiment, since the replica performs proxy execution in the direction of “k1” → “k100”, the primary performs “Db” (“d1”) in the direction of “k51” → “k69” that is the same direction. Send.
(図23)
図23は、並列処理期間開始から所定時間が経過したときにおけるエントリの配置状態を示す図である。
図23の時点におけるエントリの配置状態は以下の通りである。
プライマリ:「k100」〜「k40」まで計算処理が完了済み(「d2」)。「k100」〜「k55」までのデータ値(「d2」)がレプリカへコピー済み(レプリカの「Dn」参照)。「k1」〜「k10」までのデータ値(「d2」)をレプリカから受信済み(「d2」)。「k51」〜「k65」までの「Db」(「d1」)をレプリカへ送信済み。
レプリカ:「k1」〜「k10」まで計算処理が完了済み。「k1」〜「k10」までのデータ値(「d2」)がプライマリへコピー済み(プライマリの「Dn」参照)。「k100」〜「k55」までのデータ値(「d2」)をプライマリから受信済み。「k51」〜「k65」までのデータ値(「d1」)をプライマリから受信し、それを自身の「Db」(「D0」)とマージすることで「D」(「D1」)を生成済み。
ここで、レプリカからプライマリへコピーしたキー範囲が、「k1」〜「k10」と同じであるのは、レプリカが自身の負荷に余裕のあるときに計算・コピーを行っているためである。
(Fig. 23)
FIG. 23 is a diagram illustrating an entry arrangement state when a predetermined time has elapsed since the start of the parallel processing period.
The entry arrangement state at the time of FIG. 23 is as follows.
Primary: Computation processing has been completed from “k100” to “k40” (“d2”). Data values (“d2”) from “k100” to “k55” have been copied to the replica (see “Dn” of the replica). Data values (“d2”) from “k1” to “k10” have been received from the replica (“d2”). “Db” (“d1”) from “k51” to “k65” has already been transmitted to the replica.
Replica: Calculation processing from “k1” to “k10” has been completed. Data values (“d2”) from “k1” to “k10” have been copied to the primary (see “Dn” of the primary). Data values (“d2”) from “k100” to “k55” have been received from the primary. “D” (“D1”) has been generated by receiving data values (“d1”) from “k51” to “k65” from the primary and merging them with their own “Db” (“D0”) .
Here, the key range copied from the replica to the primary is the same as “k1” to “k10” because the calculation / copying is performed when the replica has sufficient load.
(図24)
図24は、図23の時点からさらに時間が経過し、並列処理期間が終了した直後におけるエントリの配置状態を示す図である。
図24の時点におけるエントリの配置状態は以下の通りである。
プライマリ:「k100」〜「k30」まで計算処理が完了済み。「k100」〜「k50」までのデータ値(「d2」)がレプリカへコピー済み(レプリカの「Dn」参照)。「k1」〜「k30」までのデータ値(「d2」)をレプリカから受信済み(従って、「Dn」のデータ値をすべて保持している)。「k51」〜「k69」までの「Db」(「d1」)をレプリカへ送信済み。
レプリカ:「k1」〜「k30」まで計算処理が完了済み。「k1」〜「k30」までのデータ値(「d2」)がプライマリへコピー済み(プライマリの「Dn」参照)。「k100」〜「k50」までのデータ値(「d2」)をプライマリから受信済み。「k51」〜「k69」までのデータ値(「d1」)をプライマリから受信し、それを自身の「Db」(「D0」)とマージすることで「D」(「D1」)を生成済み(従って、「D」(「D1」)のデータ値をすべて保持している)。
(Fig. 24)
FIG. 24 is a diagram showing an entry arrangement state immediately after the time elapses from the time of FIG. 23 and the parallel processing period ends.
The entry arrangement state at the time of FIG. 24 is as follows.
Primary: Calculation processing has been completed from “k100” to “k30”. Data values (“d2”) from “k100” to “k50” have been copied to the replica (see “Dn” of the replica). Data values (“d2”) from “k1” to “k30” have been received from the replica (thus, all data values of “Dn” are retained). “Db” (“d1”) from “k51” to “k69” has been transmitted to the replica.
Replica: Calculation processing from “k1” to “k30” has been completed. Data values (“d2”) from “k1” to “k30” have been copied to the primary (see “Dn” of the primary). Data values (“d2”) from “k100” to “k50” have been received from the primary. “D” (“D1”) is generated by receiving data values (“d1”) from “k51” to “k69” from the primary and merging it with its own “Db” (“D0”) (Thus, all data values of “D” (“D1”) are retained).
ここで、プライマリでは「k100」〜「k30」までの計算処理が完了しているのに、レプリカが「k100」〜「k50」までしかデータ値を受信していないのは、レプリカの性能が、プライマリより低いためである。 Here, although the calculation processing from “k100” to “k30” is completed at the primary, the replica receives only the data values from “k100” to “k50”. This is because it is lower than the primary.
図24の時点において、レプリカは、前回の並列処理期間で処理が完了していなかった「k51」〜「k69」のキー範囲のデータ値「D」(「D1」)をすべて保持することができるが、新たに「k31」〜「k49」のキー範囲のデータ値「Dn」(「d2」)について計算処理が間に合わず、当該範囲のデータ値を保持していない状態となっている。 At the time of FIG. 24, the replica can hold all the data values “D” (“D1”) in the key range “k51” to “k69” that have not been processed in the previous parallel processing period. However, the calculation process is not in time for the data value “Dn” (“d2”) in the key range “k31” to “k49”, and the data value in the range is not held.
(図24→図25)
図24の時点で並列処理期間が終了したとすると、図24におけるエントリの配置状態から、プライマリおよびレプリカは、図21→図22と同様の処理を行う。
すなわち、レプリカは自身が保持しているキー範囲(「k1」〜「k30」、「k50」〜「k100」)の「Dn」(「d2」)を「D」(「D1」)にマージして、マージした結果(「D2」)を「D」に格納する。
また、レプリカは、「Dn」を保持していないキー範囲(「k31」〜「k49」)の「D」(「D1」)と「Bu」(「B1」)については、それぞれ自身の「Db」、「Bb」にバックアップをとる。
(FIG. 24 → FIG. 25)
If the parallel processing period ends at the time of FIG. 24, the primary and replica perform the same processing as in FIG. 21 to FIG. 22 from the entry arrangement state in FIG.
That is, the replica merges “Dn” (“d2”) of the key range (“k1” to “k30”, “k50” to “k100”) held by itself with “D” (“D1”). The merged result (“D2”) is stored in “D”.
The replica also has its own “Db” for “D” (“D1”) and “Bu” (“B1”) in the key range (“k31” to “k49”) that does not hold “Dn”. ”And“ Bb ”.
またプライマリは、「Dn」(「d2」)をD(「D1」)にマージし、「Br」(B2」)を「Bu」に移動する。そして、プライマリは、レプリカが保持していない「k31」〜「k49」のキー範囲の「Dn」(「d2」)を自身の「Db」にバックアップする。またプライマリは、すべてのキー範囲の「Br」(「B2」)をまとめてレプリカに送信する。レプリカは「Br」(「B2」)をプライマリから受信したら、受信したデータ値(「B2」)を「Bu」に代入する。
以上の処理を行うことで、各エントリ22におけるエントリの配置状態は、図25に示すようになる。
そして、ジョブマネージャ11は、各エントリ22に関する情報をデータテーブルに反映することによって、データテーブルを更新する。
The primary merges “Dn” (“d2”) into D (“D1”) and moves “Br” (B2 ”) to“ Bu ”. Then, the primary backs up “Dn” (“d2”) in the key range “k31” to “k49” not held by the replica to its own “Db”. In addition, the primary transmits “Br” (“B2”) of all key ranges together to the replica. When the replica receives “Br” (“B2”) from the primary, the replica substitutes the received data value (“B2”) for “Bu”.
By performing the above processing, the entry arrangement state in each
Then, the
(第3実施形態の効果)
第3実施形態によれば、システム100はレプリカにおいて、すべての代理実行が終了せずに並列処理期間が終了しても、次の並列処理期間で終了しなかったキー範囲の代理実行を行いつつ、新たな代理実行も行うことができるため、効率的に複製を行うことができる。
(Effect of the third embodiment)
According to the third embodiment, the system 100 performs the proxy execution of the key range that did not end in the next parallel processing period even if the parallel processing period ends without completing all the proxy executions in the replica. Since new proxy execution can also be performed, replication can be performed efficiently.
《第4実施形態》
図26は、第4実施形態に係る並列計算処理の概要を示す図である。なお、第4実施形態でも、システム構成、ハードウェア構成は、図1、図2と同様であるので、システム構成、ハードウェア構成に対する図示、説明を省略する。
第1実施形態〜第3実施形態では、図4に示すような、各並列処理期間で同一のエントリ群が並列計算を実行するモデルに基づいていた。
しかしながら、実際には、図26に示すように、並列処理期間毎に異なるエントリ群が並列計算を実行する場合がある。第4実施形態では、このような並列分散処理システム100の場合を、第1実施形態〜第3実施形態に適用した場合について説明する。
<< 4th Embodiment >>
FIG. 26 is a diagram illustrating an outline of parallel calculation processing according to the fourth embodiment. In the fourth embodiment, the system configuration and the hardware configuration are the same as those in FIGS. 1 and 2, and thus illustration and description of the system configuration and the hardware configuration are omitted.
In the first embodiment to the third embodiment, as shown in FIG. 4, the same entry group is based on a model that executes parallel computation in each parallel processing period.
However, in practice, as shown in FIG. 26, different entry groups may execute parallel computation for each parallel processing period. In the fourth embodiment, a case where such a parallel distributed processing system 100 is applied to the first to third embodiments will be described.
図26において、各エントリ22は、図3,図4に示すような(キー,データ値)に加えてタイプ(種別)という属性を有している。例えば、図11の左上に記載したエントリ22には「(T1,k1,v11)」と記載されているが、これはタイプが「T1」で、キーが「k1」で、データ値が「v11」であることを示している。
この、並列分散処理システム100ではタイプが同一のエントリ群が同じ並列処理期間で並列計算処理を行い、同期後の次の並列処理期間では、前回の並列処理期間とは異なるタイプのエントリ群が並列計算処理を行う。そして並列処理期間を繰り返すうちに、ある並列処理期間で以前処理を実行したエントリ群が再び並列処理を行う。
例えば、図26における「Phase1」ではタイプが「T1」のエントリ群が並列計算処理を行い、次の「Phase2」ではタイプが「T2」のエントリ群が並列計算処理を行っている。そして、「Phase3」では再びタイプが「T1」のエントリ群の処理を行っている。
なお、タイプ「T2」のエントリ群における「w11」はデータ値を示している。
In FIG. 26, each
In this parallel distributed processing system 100, the same type of entry group performs parallel calculation processing in the same parallel processing period, and in the next parallel processing period after synchronization, an entry group of a different type from the previous parallel processing period is parallel. Perform the calculation process. Then, as the parallel processing period is repeated, the entry group that has executed the previous processing in a certain parallel processing period performs parallel processing again.
For example, in “
Note that “w11” in the entry group of the type “T2” indicates a data value.
このような並列分散処理システム100を実現するために、図5に示すパーティションテーブルおよび図6に示すデータテーブルがタイプ毎に作成される。前記したように、元々、パーティションテーブル、データテーブルはジョブ毎に作成していたため、第4実施形態では、パーティションテーブルおよびデータテーブルがジョブとタイプの組み合わせ毎に作成されることになる。なお、1つのタイプに属するエントリ群の処理が並列実行されるため、タイプ単位で負荷の均等化が実現できることが望ましい。このために、タイプ毎にパーティションテーブルおよびデータテーブルが作成されている。 In order to realize such a parallel distributed processing system 100, the partition table shown in FIG. 5 and the data table shown in FIG. 6 are created for each type. As described above, since the partition table and data table were originally created for each job, in the fourth embodiment, the partition table and data table are created for each combination of job and type. Since processing of entry groups belonging to one type is executed in parallel, it is desirable that load equalization can be realized in units of types. For this reason, a partition table and a data table are created for each type.
続いて、図26に示す並列分散処理システム100を第1実施形態〜第3実施形態のそれぞれに適用した場合の処理について説明する。 Next, processing when the parallel distributed processing system 100 shown in FIG. 26 is applied to each of the first to third embodiments will be described.
(第1実施形態に適用した場合)
第1実施形態の図8から図13で説明したデータ再配置処理において、エントリ22が送信したメッセージは並列処理期間で並列処理を実行中のエントリ群が受け取っていたが、第4実施形態では次の並列処理期間で並列計算処理を実行するタイプのエントリ群(従って、現在並列計算処理を行っているエントリ群とは異なるエントリ群)が受信することになる。従って、図8から図13に、各エントリ22が送信したメッセージは図示されている「Br」へは送信されず、次の並列処理期間で並列計算処理を行うエントリ群の「Br」へメッセージが送信される。
(When applied to the first embodiment)
In the data rearrangement processing described in FIGS. 8 to 13 of the first embodiment, the message transmitted by the
そして、再配置の際に、システム100はメッセージ送信先のエントリ群のデータ値の再配置は行わず、メッセージ送信元のエントリ群のデータ値の再配置を行う。つまり、システム100は、現在並列計算処理を行っているエントリ群については再配置を行うが、次の並列処理期間で並列計算処理を行うエントリ群については、再配置を行わない。従って、エントリ22のメッセージを実際に送信するノードは、次に並列処理を行うタイプのパーティションテーブルを使って決定される。その他の処理については、第1実施形態で説明した処理とと同様である。
In the rearrangement, the system 100 does not rearrange the data values of the message transmission destination entry group, but rearranges the data values of the message transmission source entry group. That is, the system 100 rearranges the entry group that is currently performing the parallel calculation process, but does not perform the rearrangement for the entry group that performs the parallel calculation process in the next parallel processing period. Therefore, the node that actually transmits the message of the
ただし、第1実施形態に適用する場合、ある並列処理期間で各タスクの実行時間が計測され、各タスクへのデータ配置が決定された後、システム100は、次に最初のタスクとはタイプが異なるタスク群の並列処理を実行している間に、最初のタスクに関するデータの再配置を行うことができる。またデータの再配置が完了する前に、最初に実行時間を計測したタスクと同じタイプのタスク群を実行することになった場合、データの再配置を続けながらそのタスク群の並列処理を行うことが可能である。このように、システム100はデータの再配置処理を効率化することができる。例えば図26の例では「Phase1」でタイプが「T1」のエントリ群の並列計算処理を行うタスク群の実行時間が計算され、各タスクへの最適なデータ配置が決定される。そして「Phase2」で「T2」のエントリ群の並列計算処理を行っている間に、「T1」のエントリ群の再配置が行われる。 However, when applied to the first embodiment, the execution time of each task is measured in a certain parallel processing period, and after the data allocation to each task is determined, the system 100 is the type of the first task next. While parallel processing of different task groups is being performed, data relating to the first task can be rearranged. In addition, if the task group of the same type as the task whose execution time was first measured is executed before the data rearrangement is completed, the task group should be processed in parallel while continuing the data rearrangement. Is possible. As described above, the system 100 can improve the efficiency of the data rearrangement process. For example, in the example of FIG. 26, the execution time of a task group that performs parallel calculation processing of an entry group of “Phase1” and type “T1” is calculated, and the optimal data arrangement for each task is determined. Then, while the parallel calculation processing of the “T2” entry group is performed in “Phase2”, the rearrangement of the “T1” entry group is performed.
(第2実施形態に適用した場合)
第4実施形態に係る並列分散処理システム100を、第2実施形態に適用した場合も第1実施形態に適用した場合と同様である。
すなわち、エントリ22のメッセージを実際に送信するノードは、次に並列処理を行うタイプのパーティションテーブルを使って決定する。図15〜図17では、並列処理期間で並列計算処理を実行中のエントリ22の「Br」に受信したメッセージが蓄積されていくが、第4実施形態を適用すると、並列処理期間で処理を実行中のエントリ群はメッセージを受信せず、次の並列処理期間で並列計算処理を行うエントリ群がメッセージを受信する。その他の処理については、第2実施形態と同様の処理である。
(When applied to the second embodiment)
The case where the parallel distributed processing system 100 according to the fourth embodiment is applied to the second embodiment is the same as that applied to the first embodiment.
That is, the node that actually transmits the message of the
第2実施形態においても、第1実施形態へ第4実施形態を適用した場合のデータ再配置効率化手法を実施することが可能である。ただし、第2実施形態はエントリの計算を行ってから計算結果を再配置先へ送信するため、データ再配置処理が次回の並列計算処理を開始するまでに完了しなかった場合、各タスクは次回の並列計算処理開始時点で保持するデータに対して並列計算処理を行い、その結果を再配置先へ送信することになる。 Also in the second embodiment, it is possible to implement the data rearrangement efficiency technique when the fourth embodiment is applied to the first embodiment. However, since the second embodiment calculates the entry and transmits the calculation result to the relocation destination, if the data relocation processing is not completed before the next parallel calculation processing is started, each task The parallel computation processing is performed on the data held at the start of the parallel computation processing, and the result is transmitted to the relocation destination.
(第3実施形態に適用した場合)
第4実施形態係る並列分散処理システム100を、第3実施形態に適用した場合についても、エントリ22のメッセージ送信に関しては第1実施形態、第2実施形態に適用した場合と同様である。各エントリ22が送信したメッセージは、次の並列処理期間で並列計算処理を実行するエントリ群のプライマリに対して送信される。従って、図21、図22に移行する過程で、プライマリは、レプリカへ「Br」の内容を送信しているが、第4実施形態を適用した場合では、次の並列処理期間を実行するエントリ群のプライマリから、次の並列計算処理を実行するレプリカに対して「Br」の内容を送信することになる。
つまり、並列処理の実行順が図26で示すような順番であるとすると、「Phase1」終了時に、「T2」のプライマリは「T2」のレプリカへ「Br」の内容を送信し、次の「Phase2」終了時に、「T1」のプライマリは「T1」のレプリカへ「Br」の内容を送信することとなる。
(When applied to the third embodiment)
When the parallel distributed processing system 100 according to the fourth embodiment is applied to the third embodiment, the message transmission of the
That is, assuming that the execution order of parallel processing is as shown in FIG. 26, at the end of “
また、図22において、プライマリの「Db」にバックアップされた未送信データ値(「d2」)が残っているが、次の並列処理期間(図23〜図25)では、これらのプライマリ、レプリカは、並列計算処理を行わないため、次の並列処理期間の処理中に、プライマリの「Db」のデータ値(「d2」)をレプリカに送信し、レプリカは、受信したデータ値を基に「D」を生成することができる。そのため、第3実施形態より効率的な複製が可能となる。その他の処理については、第3実施形態における処理と同様である。 In FIG. 22, the unsent data value (“d2”) backed up to the primary “Db” remains, but in the next parallel processing period (FIGS. 23 to 25), these primary and replica Since the parallel calculation processing is not performed, the data value (“d2”) of the primary “Db” is transmitted to the replica during the processing of the next parallel processing period, and the replica performs “D” based on the received data value. Can be generated. Therefore, more efficient duplication than in the third embodiment is possible. Other processes are the same as those in the third embodiment.
(第4実施形態の効果)
第4実施形態によれば、並列処理期間毎に異なるエントリ群で並列計算処理を行うことで、並列分散処理システム100全体の負荷を低減することができる。
(Effect of 4th Embodiment)
According to the fourth embodiment, it is possible to reduce the load on the entire parallel distributed processing system 100 by performing parallel calculation processing with different entry groups for each parallel processing period.
1 マスタノード
2 スレーブノード(ノード:第1のノード、第2のノードを含む)
3 クライアントノード
11 ジョブマネージャ
12 分散ファイルシステム(マスタノード)
21 タスク
22,22a〜22c エントリ
23 タスクマネージャ
24 分散ファイルシステム(スレーブノード)
1
3
21
Claims (11)
前記ノードは、
前記エントリにおいて、計算処理を行うとともに、ノードが変更されるエントリのデータを、前記エントリの変更先のノードへ移動する
ことを特徴とする並列分散処理方法。 A parallel distributed processing method that has a plurality of nodes and is a virtual calculation unit that operates in each node, and performs parallel processing in a plurality of entries that can move between the nodes,
The node is
A parallel distributed processing method characterized in that, in the entry, calculation processing is performed, and data of an entry whose node is changed is moved to a node to which the entry is changed.
前記エントリにおいて、計算処理を行うとともに、ノードが変更されるエントリのデータを、前記エントリの変更先ノードへコピーし、
前記計算処理およびコピーの終了後に、前記コピーしたエントリに関するデータを削除する
ことによって、前記移動を行う
ことを特徴とする請求項1に記載の並列分散処理方法 The node is
In the entry, calculation processing is performed, and the data of the entry whose node is changed is copied to the change destination node of the entry,
The parallel distributed processing method according to claim 1, wherein the migration is performed by deleting data relating to the copied entry after completion of the calculation processing and copying.
少なくとも前記エントリと、該エントリを有するノードと、該ノードの識別情報と、が組の情報として格納されているパーティションテーブルを有する
ことを特徴とする請求項1または請求項2に記載の並列分散処理方法。 The node is
The parallel distributed processing according to claim 1 or 2, further comprising a partition table in which at least the entry, a node having the entry, and identification information of the node are stored as set information. Method.
自身の前記ノードに前記残すエントリから計算処理を始め、前記変更元ノードから移動されたデータを用いた計算処理は、前記自身のノードに残すエントリにおける計算処理の終了後に行う
ことを特徴とする請求項1から請求項3のいずれか一項に記載の並列分散処理方法。 The node is
The calculation process is started from the entry to be left in the own node, and the calculation process using the data moved from the change source node is performed after the end of the calculation process in the entry to be left in the own node. The parallel distributed processing method according to any one of claims 1 to 3.
前記データとともに、前記バッファのデータも変更先ノードへ移動する
ことを特徴とする請求項4に記載の並列分散処理方法。 In the calculation process of each entry, the node can transmit a message from each entry to a different entry, and each node receives a message transmitted from another entry by an entry held by the node. With a buffer,
The parallel distributed processing method according to claim 4, wherein the data in the buffer is moved to the change destination node together with the data.
前記移動エントリから計算処理を始めるとともに、前記計算処理の結果と、前記計算処理に使用したデータを変更先ノードへコピーし、
前記計算処理を行うとともに、前記計算処理に使用したデータを移動し、
前記移動エントリにおける計算処理が終了すると、自身に残すエントリにおける計算処理を行い、当該計算処理の結果を自身の記憶部に格納する
ことを特徴とする請求項1から請求項3のいずれか一項に記載の並列分散処理方法。 The node is
While starting the calculation process from the move entry, copy the result of the calculation process and the data used for the calculation process to the change destination node,
While performing the calculation process, move the data used for the calculation process,
The calculation process for the entry to be left is performed when the calculation process for the moving entry is completed, and the result of the calculation process is stored in its own storage unit. The parallel distributed processing method described in 1.
互いに前記エントリのバックアップ元と、前記エントリのバックアップ先の関係にある第1のノードと、第2のノードとが存在し、
前記第1のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第2のノードへコピーするとともに、
前記第2のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第1のノードへコピーし、
前記第1のノードで、すべての計算結果が得られたが、前記第2のノードにおいて、計算結果を得ていない場合、
前記第1のノードは、前記第2のノードにおいて、計算結果を得ていないエントリにおける計算結果を保持し、
次の計算処理が始まった際に、前記第1のノードおよび前記第2のノードは、計算処理および計算結果のコピーを互いに行うとともに、前記第1のノードは、前記保持している計算結果を前記第2のノードへコピーする
ことを特徴とする並列分散処理方法。 It is a virtual distributed processing method that has a plurality of nodes and is a virtual calculation unit that operates in each node, and performs parallel processing in a plurality of entries that can move between the nodes.
A first node and a second node that are in a relationship of backup of the entry with each other and a backup destination of the entry;
The first node performs a calculation process, copies a calculation result that is a result of the calculation process to the second node, and
The second node performs a calculation process, and copies a calculation result that is a result of the calculation process to the first node;
When all the calculation results are obtained at the first node, but no calculation results are obtained at the second node,
The first node holds a calculation result in an entry for which no calculation result is obtained in the second node;
When the next calculation process starts, the first node and the second node mutually perform the calculation process and copy the calculation result, and the first node stores the held calculation result. Copying to the second node. A parallel distributed processing method.
前記計算結果が保持されているエントリの計算が、後になるよう行われる
ことを特徴とする請求項7に記載の並列分散処理方法。 The calculation processing performed after holding the calculation result in the entry for which the calculation result is not obtained is performed in the first node and the second node,
The parallel distributed processing method according to claim 7, wherein the calculation of the entry holding the calculation result is performed later.
前記並列処理毎に、異なるタイプの前記エントリで、当該並列処理を行う
ことを特徴とする請求項1から請求項8のいずれか一項に記載の並列分散処理方法。 The entries are classified into a plurality of types,
The parallel distributed processing method according to any one of claims 1 to 8, wherein the parallel processing is performed with the different types of entries for each parallel processing.
前記ノードは、
前記エントリにおいて、計算処理を行うとともに、ノードが変更されるエントリのデータを、前記エントリの変更先のノードへ移動する
ことを特徴とする並列分散処理システム。 A parallel distributed processing system in which a plurality of entries are arranged, which is a virtual calculation unit that performs parallel processing in a plurality of nodes,
The node is
A parallel distributed processing system characterized in that, in the entry, calculation processing is performed, and data of an entry whose node is changed is moved to a node to which the entry is changed.
互いに前記エントリのバックアップ元と、前記エントリのバックアップ先の関係にある第1のノードと、第2のノードとが存在し、
前記第1のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第2のノードへコピーするとともに、
前記第2のノードが計算処理を行い、前記計算処理の結果である計算結果を前記第1のノードへコピーし、
前記第1のノードで、すべての計算結果が得られたが、前記第2のノードにおいて、計算結果を得ていない場合、
前記第1のノードは、前記第2のノードにおいて、計算結果を得ていないエントリにおける計算結果を保持し、
次の計算処理が始まった際に、前記第1のノードおよび前記第2のノードは、計算処理および計算結果のコピーを互いに行うとともに、前記第1のノードは、前記保持している計算結果を前記第2のノードへコピーする
ことを特徴とする並列分散処理システム。 A parallel distributed processing system in which a plurality of entries are arranged, which is a virtual calculation unit that performs parallel processing in a plurality of nodes,
A first node and a second node that are in a relationship of backup of the entry with each other and a backup destination of the entry;
The first node performs a calculation process, copies a calculation result that is a result of the calculation process to the second node, and
The second node performs a calculation process, and copies a calculation result that is a result of the calculation process to the first node;
When all the calculation results are obtained at the first node, but no calculation results are obtained at the second node,
The first node holds a calculation result in an entry for which no calculation result is obtained in the second node;
When the next calculation process starts, the first node and the second node mutually perform the calculation process and copy the calculation result, and the first node stores the held calculation result. Copying to said 2nd node. The parallel distributed processing system characterized by the above-mentioned.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011208477A JP2013069189A (en) | 2011-09-26 | 2011-09-26 | Parallel distributed processing method and parallel distributed processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011208477A JP2013069189A (en) | 2011-09-26 | 2011-09-26 | Parallel distributed processing method and parallel distributed processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013069189A true JP2013069189A (en) | 2013-04-18 |
Family
ID=48474809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011208477A Withdrawn JP2013069189A (en) | 2011-09-26 | 2011-09-26 | Parallel distributed processing method and parallel distributed processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013069189A (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014196055A1 (en) * | 2013-06-06 | 2014-12-11 | 株式会社日立製作所 | Information processing system and data processing method |
JP2014235734A (en) * | 2013-06-04 | 2014-12-15 | 富士通株式会社 | Process migration method, computer system operating to execute process migration, intermediate calculation resources in such system, and method of selecting calculation resources before partitioning for process migration method |
KR101549655B1 (en) | 2013-07-11 | 2015-09-03 | (주)선재소프트 | Method of duplicating database using pararell-processing and computer readable storage media storing the same) |
JP2017138780A (en) * | 2016-02-03 | 2017-08-10 | 日本電信電話株式会社 | Parallel calculation processing apparatus and parallel calculation processing method |
JP2018032344A (en) * | 2016-08-26 | 2018-03-01 | 日本電信電話株式会社 | Distribution synchronous processing system and distribution synchronous processing method |
JP2018092207A (en) * | 2016-11-30 | 2018-06-14 | 三菱電機株式会社 | Driving equipment and driving equipment system |
US10235213B2 (en) | 2013-01-28 | 2019-03-19 | Fujitsu Limited | Process migration method, computer system and computer program |
KR20190044526A (en) * | 2017-10-20 | 2019-04-30 | 그래프코어 리미티드 | Compiler method |
CN110569252A (en) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | Data processing system and method |
US10817459B2 (en) | 2017-10-20 | 2020-10-27 | Graphcore Limited | Direction indicator |
US10936008B2 (en) | 2017-10-20 | 2021-03-02 | Graphcore Limited | Synchronization in a multi-tile processing array |
US10963003B2 (en) | 2017-10-20 | 2021-03-30 | Graphcore Limited | Synchronization in a multi-tile processing array |
US11321272B2 (en) | 2017-10-20 | 2022-05-03 | Graphcore Limited | Instruction set |
US11599347B2 (en) | 2020-07-08 | 2023-03-07 | Fujitsu Limited | Information processing device and deployment location determining program |
-
2011
- 2011-09-26 JP JP2011208477A patent/JP2013069189A/en not_active Withdrawn
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235213B2 (en) | 2013-01-28 | 2019-03-19 | Fujitsu Limited | Process migration method, computer system and computer program |
JP2014235734A (en) * | 2013-06-04 | 2014-12-15 | 富士通株式会社 | Process migration method, computer system operating to execute process migration, intermediate calculation resources in such system, and method of selecting calculation resources before partitioning for process migration method |
WO2014196055A1 (en) * | 2013-06-06 | 2014-12-11 | 株式会社日立製作所 | Information processing system and data processing method |
JPWO2014196055A1 (en) * | 2013-06-06 | 2017-02-23 | 株式会社日立製作所 | Information processing system and data processing method |
KR101549655B1 (en) | 2013-07-11 | 2015-09-03 | (주)선재소프트 | Method of duplicating database using pararell-processing and computer readable storage media storing the same) |
JP2017138780A (en) * | 2016-02-03 | 2017-08-10 | 日本電信電話株式会社 | Parallel calculation processing apparatus and parallel calculation processing method |
JP2018032344A (en) * | 2016-08-26 | 2018-03-01 | 日本電信電話株式会社 | Distribution synchronous processing system and distribution synchronous processing method |
JP2018092207A (en) * | 2016-11-30 | 2018-06-14 | 三菱電機株式会社 | Driving equipment and driving equipment system |
KR20190044526A (en) * | 2017-10-20 | 2019-04-30 | 그래프코어 리미티드 | Compiler method |
US10802536B2 (en) | 2017-10-20 | 2020-10-13 | Graphcore Limited | Compiler method |
US10817459B2 (en) | 2017-10-20 | 2020-10-27 | Graphcore Limited | Direction indicator |
US10936008B2 (en) | 2017-10-20 | 2021-03-02 | Graphcore Limited | Synchronization in a multi-tile processing array |
KR102228501B1 (en) * | 2017-10-20 | 2021-03-16 | 그래프코어 리미티드 | Compiler method |
US10963003B2 (en) | 2017-10-20 | 2021-03-30 | Graphcore Limited | Synchronization in a multi-tile processing array |
US11262787B2 (en) | 2017-10-20 | 2022-03-01 | Graphcore Limited | Compiler method |
US11321272B2 (en) | 2017-10-20 | 2022-05-03 | Graphcore Limited | Instruction set |
CN110569252A (en) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | Data processing system and method |
CN110569252B (en) * | 2018-05-16 | 2023-04-07 | 杭州海康威视数字技术股份有限公司 | Data processing system and method |
US11599347B2 (en) | 2020-07-08 | 2023-03-07 | Fujitsu Limited | Information processing device and deployment location determining program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013069189A (en) | Parallel distributed processing method and parallel distributed processing system | |
US10990610B2 (en) | Synchronization on reactivation of asynchronous table replication | |
US11099777B2 (en) | Unified approach to import, replication, and migration of a storage volume | |
JP5147229B2 (en) | System and method for relocating a running application to a topologically remotely located computer system | |
US9904599B2 (en) | Method, device, and system for data reconstruction | |
US9628299B2 (en) | Method and system for data transfer between compute clusters and file system | |
EP2380101B1 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
US11481139B1 (en) | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity | |
WO2018107772A1 (en) | Method, device and apparatus for processing write request | |
US11647075B2 (en) | Commissioning and decommissioning metadata nodes in a running distributed data storage system | |
JP2005301590A (en) | Storage system and data copying method | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
CN102521297A (en) | Method for achieving system dynamic expansion in shared-nothing database cluster | |
WO2011114548A1 (en) | Stream data processing failure recovery method and device | |
US20150234618A1 (en) | Storage management computer, storage management method, and storage system | |
JP4693540B2 (en) | Database reconfiguration device and database reconfiguration program | |
US10445295B1 (en) | Task-based framework for synchronization of event handling between nodes in an active/active data storage system | |
Liu et al. | Leader set selection for low-latency geo-replicated state machine | |
JP7012010B2 (en) | Information processing system and control method of information processing system | |
Le et al. | Dynastar: Optimized dynamic partitioning for scalable state machine replication | |
US7496724B2 (en) | Load balancing in a mirrored storage system | |
WO2023103340A1 (en) | Block data committing method and apparatus | |
US9218313B2 (en) | Shared-bandwidth multiple target remote copy | |
US20180095831A1 (en) | Efficient state tracking for clusters | |
US11449398B2 (en) | Embedded container-based control plane for clustered environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |