JP2018032344A - 分散同期処理システムおよび分散同期処理方法 - Google Patents

分散同期処理システムおよび分散同期処理方法 Download PDF

Info

Publication number
JP2018032344A
JP2018032344A JP2016166182A JP2016166182A JP2018032344A JP 2018032344 A JP2018032344 A JP 2018032344A JP 2016166182 A JP2016166182 A JP 2016166182A JP 2016166182 A JP2016166182 A JP 2016166182A JP 2018032344 A JP2018032344 A JP 2018032344A
Authority
JP
Japan
Prior art keywords
processing
calculation
distributed
vertex
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016166182A
Other languages
English (en)
Other versions
JP6535304B2 (ja
Inventor
小林 弘明
Hiroaki Kobayashi
弘明 小林
雄大 北野
Yudai Kitano
雄大 北野
岡本 光浩
Mitsuhiro Okamoto
光浩 岡本
健 福元
Takeshi Fukumoto
健 福元
力 米森
Tsutomu Yonemori
力 米森
恭太 堤田
Kyota Tsutsumida
恭太 堤田
貴志 矢実
Takashi Yajitsu
貴志 矢実
智洋 大谷
Tomohiro Otani
智洋 大谷
南 司
Nan Si
南 司
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
NTT Data Group Corp
Original Assignee
NTT Data Corp
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp, Nippon Telegraph and Telephone Corp filed Critical NTT Data Corp
Priority to JP2016166182A priority Critical patent/JP6535304B2/ja
Publication of JP2018032344A publication Critical patent/JP2018032344A/ja
Application granted granted Critical
Publication of JP6535304B2 publication Critical patent/JP6535304B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】同期処理に伴うシステム全体の処理遅延を低減することができる、分散同期処理システムおよび分散同期処理方法を提供する。
【解決手段】分散同期処理システム1の処理サーバ30は、分散処理部20による所定の計算ステップにおける計算・送信処理の完了を検出して、完了報告を管理サーバ10に送信するとともに、管理サーバ10から次ステップ移行指示を受信して分散処理部20に出力する分散処理管理部(バーテックス管理部33)を備える。管理サーバ10は、完了報告を受信し、次の計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、取得が完了しているときに次ステップ移行指示を処理サーバ30に送信する隣接同期処理部11を備える。
【選択図】図9

Description

本発明は、分散配置された複数のサーバを同期させて処理を実行する分散同期処理システムおよび分散同期処理方法に関する。
ネットワーク上に複数のサーバを分散配置する分散処理システムのフレームワークとして、非特許文献1にはMapReduceが開示されている。但し、このMapReduceは、処理の度に、外部のデータストアからの入力データの読み込みや、結果の書き出し処理が必要であるため、ある処理の結果を次の処理で利用するようなイテレーティブな(反復する)処理には向いていない。この種の処理には、非特許文献2に開示されているBSP(Bulk Synchronous Parallel:バルク同期並列)が適している。
このBSPは、「スーパーステップ(SS:superstep)」という処理単位を繰り返し実行することにより、分散環境でのデータ処理を実行する。図1は、BSP計算モデルを説明するための図である。
1つのスーパーステップは、図1に示すように、次の3つのフェーズ(PH:phase)、「ローカル計算(LC:Local computation)」(フェーズPH1)、「データ交換(Com:Communication)」(フェーズPH2)、「同期(Sync)」(フェーズPH3)から構成される。
具体的には、複数のノード(ノード1〜ノード4)のうちのいずれかのノードがデータを受信すると、そのノード(例えば、ノード1)がフェーズPH1において、そのデータについての計算処理(ローカル計算(LC))を実行する。続いて、フェーズPH2において、各ノードが保持しているローカル計算の結果であるデータについて、ノード間でのデータ交換を実行する。次に、フェーズPH3において、同期処理を行う、より詳細には、すべてのノード間でのデータ交換の終了を待つ。
そして、スーパーステップSS1として、一連のスーパーステップの処理(PH1〜PH3)が終了すると、各ノードはその計算結果を保持した上で、次の一連の処理であるスーパーステップSS2へと進む。
このBSPを採用した分散処理フレームワークとして、非特許文献3にはPregelが開示されている。このPregel等のフレームワークでは、全体の処理をグラフG=(V,E)として表現し、これをBSPに適用して実行する。ここで、Vは「バーテックス(vertex:頂点)の集合」であり、Eは「エッジ(edge:辺)の集合」を意味する。
ここで、図2を参照し、交通シミュレーションにBSPを適用した例を説明する。
図2においては、各交差点(v)がバーテックス(vertex)に対応付けられる(図2のv〜v)。また、各交差点を結ぶ道路(e)がエッジ(edge)に対応付けられる(図2のe〜e)。ここで、エッジ(edge)は一方通行であり、双方向の道路は2つのエッジに対応付けられる。また、あるバーテックス(vertex)から見て、車両が出てゆく方向のエッジを、「出力エッジ(outgoing edge)」と呼び、車両が流入する方向のエッジを「入力エッジ(incoming edge)」と呼ぶ。例えば、図2において、バーテックスvからみると、エッジeは入力エッジであり、エッジeは出力エッジになる。逆に、バーテックスvからみると、エッジeは出力エッジであり、エッジeは入力エッジになる。
図1で示したスーパーステップでは、フェーズPH1(ローカル計算)において、バーテックス(vertex)毎に、経過時間(Δt)における、各バーテックスv〜vに対応付けられている交差点の状態(例えば、信号の色(青、黄、赤)や交差点内の車両の動き等)と、それに付随する出力エッジとしての道路内の状態(車両の動き(台数・平均速度等))とをシミュレートする。フェーズPH2(データ交換)では、あるバーテックスは、出力エッジを介して接する他のバーテックスに対して、当該出力エッジを介して出てゆく車両の動きの情報(台数等)を送信するとともに、入力エッジを介して入ってくる車両の動きの情報(台数等)を受信する。フェーズPH3(同期)では、バーテックス間で、シミュレーション時刻tを同期する。つまり、全てのバーテックス間でデータ交換の完了を待つ。
この交通シミュレーションにおいては、このように交差点(バーテックス)単位で、並列処理することにより、計算時間を短縮することが可能となる。
Dean, J., et al., "MapReduce: Simplified Data Processing on Large Clusters," OSDI '04, 2004, p.137-149. Valiant, L., et al., "A bridging model for parallel computation," Communications of the ACM, 1990, vol.33, No.8, p.103-111. Malewicz, G., et al., "Pregel: A System for Large-Scale Graph Processing," Proc. of ACM SIGMOD, 2010, p.136-145.
上記のような、BSPを採用した分散処理フレームワークを実現するためのアーキテクチャとして、master/worker構成が採用されている。図3に示すように、master/worker構成は、処理単位となるバーテックス20aを複数備えるworker(処理サーバ30a)が複数台と、workerの処理について進行状況の管理等を行うmaster(管理サーバ10a)1台とで、構成される。
ここで、master(管理サーバ10a)の役割は、worker(処理サーバ30a)への処理(バーテックス20a)の割り振り(グラフGのパーティショニング)、workerの処理の進行状況の管理、全workerに共通となる全体としてのスーパーステップの管理、バーテックスやエッジの追加や削除に伴うグラフトポロジの管理等である。
また、worker(処理サーバ30a)の役割は、各スーパーステップにおけるフェーズPH1のローカル計算、フェーズPH2における、隣接するバーテックスとの間のデータの送受信、masterへの報告である。
既存のフレームワークにおけるアーキテクチャの多くは、このmaster/worker構成を採用しており、BSPが適用されるときには、workerは、自身が備える全てのバーテックスの処理(フェーズPH1,2)が完了すると、masterに報告する。masterは、全workerからの報告を受けると、スーパーステップを「+1」し、次のスーパーステップに移行するように、各workerに指示を出すこととなる。
しかしながら、上記の構成では、スーパーステップ毎に、全バーテックスを同期するため、最も処理が遅いバーテックスにあわせることとなる。よって、たった一つでも全体から著しく遅いバーテックスがあると、その影響が全体に及ぶ。つまり、最も処理が遅いバーテックスにあわせて、全体が著しく遅延してしまう。
また、大規模なグラフGを処理対象とする場合、つまり、多数のバーテックスとエッジを備えた計算対象を扱うときには、master/worker構成では、一つのmasterでグラフ全体を管理するため、グラフGの規模が大きいと、masterがボトルネックとなってしまう。
そこで、本発明では、前記した問題を解決し、同期処理に伴うシステム全体の処理遅延を低減することができる、分散同期処理システムおよび分散同期処理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムであって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信するとともに、前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する分散処理管理部を備え、前記管理サーバが、前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する隣接同期処理部を備えることを特徴とする分散同期処理システムとした。
また、請求項3に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムの分散同期処理方法であって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信する手順と、前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行し、前記管理サーバが、前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する手順を実行することを特徴とする分散同期処理方法とした。
このように、分散同期処理システムは、管理サーバが、分散処理部ごとに、次の計算ステップに移行してよいのかを判定することができる。よって、全ての分散処理部の計算・送信処理の終了まで待機する必要がないため、同期処理に伴うシステム全体の処理遅延を低減することができる。
請求項2に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムであって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する隣接同期分散管理部を備えることを特徴とする分散同期処理システムとした。
また、請求項4に記載の発明は、並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムの分散同期処理方法であって、前記処理サーバが、前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出する手順と、前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行することを特徴とする分散同期処理方法とした。
このように、分散同期処理システムは、処理サーバが、分散処理部ごとに、次の計算ステップに移行してよいのかを判定することができる。よって、全ての分散処理部の計算・送信処理の終了まで待機する必要がないため、同期処理に伴うシステム全体の処理遅延を低減することができる。
さらに、各処理サーバが自律分散的に、次の計算ステップへの移行を判定するため、処理サーバおよび分散処理部が多数となる大規模なシステムであっても、システム全体の処理遅延を低減することが可能となる。
本発明によれば、同期処理に伴うシステム全体の処理遅延を低減する、分散同期処理システムおよび分散同期処理方法を提供することができる。
BSP計算モデルを説明するための図である。 交通シミュレーションにBSP計算モデルを適用した例を説明するための図である。 比較例に係る分散同期処理システムのmaster/worker構成を説明するための図である。 バーテックスの構成要素の定義を説明するための図である。 1つのバーテックスの構成要素を例示する図である。 BSP計算モデルにおける計算対象のグラフを例示する図である。 比較例の分散同期処理システムにおける処理の流れを説明するための図である。 比較例に係る分散同期処理システムの処理の流れ(図8(a))と、本実施形態に係る分散同期処理システムの処理の流れ(図8(b))とを、説明するための図である。 本実施形態に係る分散同期処理システムの全体構成を示す図である。 本実施形態に係る分散同期処理システムの処理の流れを示すシーケンス図である。 本実施形態の変形例に係る分散同期処理システムの全体構成を示す図である。 本実施形態の変形例に係る分散同期処理システムの処理の流れを示すフローチャートである。
<比較例の分散処理手法の内容と課題の詳細な説明>
初めに、本実施形態に係る分散同期処理システム1および分散同期処理方法の特徴構成を説明するため、比較例として従来技術における分散同期処理システム1aおよび分散同期処理方法を、詳細に説明する。
比較例の分散同期処理システム1aは、図3に示したような、master/worker構成を採用し、複数のworkerそれぞれが、複数のバーテックス(vertex)を備える。そして、このmaster/worker構成にBSPを適用するとき、各workerは、自身が備える全てのバーテックスの処理(フェーズPH1,2)が完了するとmasterに報告し、masterは、全workerからの報告を受けると、スーパーステップを次のスーパーステップに移行する。
ここで、バーテックスに着目すると、各バーテックスは、次に示す処理を実行する。
バーテックスは、BSPのフェーズPH1において、現在のバーテックスの状態、出力エッジの状態、および、前スーパーステップ(以下、単に「ステップ」と称することがある。)の入力メッセージにより取得した情報(入力エッジの状態)をパラメータとして計算を行い、バーテックスの状態および出力エッジの状態を更新する。そして、バーテックスは、フェーズPH2において、更新した出力エッジの状態を出力メッセージとして、その出力エッジに隣接するバーテックスに送信する。なお、この「出力エッジに隣接するバーテックス」は、「計算結果の出力先として接続されたバーテックス」を意味する。
上記の処理(計算・送信処理)は、次の式(1)として表わすことができる。
f(vvid,n,Eout,n,Min,n-1)=(vvid,n+1,Eout,n+1,Mout,n) ・・・式(1)
ここで、バーテックスの各構成要素の定義について、図4に示す。
図4に示すように、「vid」は、「vertex ID」を示す。「vvid,n」は、「バーテックスの状態」を示す。「n」は、現在のステップ(スーパーステップ)を示す。「Eout,n」は、出力エッジの状態の集合を示す。「Min,n」は、入力エッジの状態を示す入力メッセージのバッファに記憶される情報(現在のステップ用)を示す。「Min,n-1」は、入力メッセージのバッファに記憶される情報(1つ前のステップ用)を示す。「sn」は、現在のステップの「状態フラグ(active/inactive)」を示す。「sn+1」は、次のステップの「状態フラグ(active/inactive)」を示す。f(vvid,n,Eout,n,Min,n-1)=(vvid,n+1,Eout,n+1,Mout,n)は、式(1)において示したように、計算・送信処理を示す。ここで、以降、ステップ(スーパーステップ)nにおける計算・送信処理を、「計算・送信処理f」と記載する。
なお、「sn」の状態フラグは、そのバーテックスがBSPのフェーズ1,2の処理を実行している間は、「active」の状態とし、フェーズPH3の同期処理で他のバーテックスの処理待ち状態であるときに、「inactive」の状態とする。また、「sn+1」は、次のステップの処理に移行する設定の場合に「active」の状態とし、シミュレーション処理の設定時間が終了したこと等により、次のステップにおいて処理を実行しない設定の場合に、「inactive」の状態とする。
図5は、1つのバーテックスに注目した場合の構成要素を例示する図である。
図5に示すように、現在のステップ「n」における「vertex ID」が「1」のバーテックス「1」は、ステップ「n」おけるバーテックスの状態「v1,n」を保持する。また、バーテックス「1」は、出力エッジの状態として、「e1,3,n」をバーテックス「3」に出力し、「e1,4,n」をバーテックス「4」に出力する。そして、バーテックス「1」は、入力メッセージの情報(入力エッジの状態)として、バーテックス「2」から「m2,1,n」を受信し、バーテックス「3」から「m3,1,n」を受信する。
worker(図3参照)は、自身が備えるバーテックス毎に、現在のステップ(スーパーステップ)の状態フラグ(active/inactive)と次のステップ(スーパーステップ)の状態フラグ(active/inactive)を管理する。また、workerは、自身に属するバーテックスから、他のworkerに属するバーテックスに出力エッジの状態を出力メッセージとして送信するときには、同じworkerに属するバーテックスへのメッセージをバッファリングすることにより、まとめて送信するようにしてもよい。このようにすることで、通信コストを削減することができる。
次に、図7を参照して、比較例の分散同期処理システム1aが実行する処理の流れについて説明する。なお、ここでは、グラフGの計算対象が、図6に示すグラフトポロジであるものとして説明する。また、図7に示すように、1台のmasterと2台のworker(worker1,worker2)で構成され、バーテックスv〜vのうち、バーテックスv〜vをworker1が担当し、バーテックスv〜vをworker2が担当するものとする。以下、全体の処理の流れを通して説明する。
まず、masterは、図6に示すグラフGの各バーテックス(バーテックスv〜v)を、処理対象として設定しworkerに割り振る(ステップS101)、つまり、グラフGのパーティショニングを実行する。
ここでは、図6に示すように、バーテックスv〜vのうち、バーテックスv〜vをworker1に割り振り、バーテックスv〜vをworker2に割り振るものとする。
続いて、各worker(worker1,worker2)は、担当するバーテックスのスーパーステップを実行する(ステップS102)。具体的には、フェーズPH1のローカル計算を実行し、スーパーステップの処理を開始する。
次に、各workerは、自身が担当するバーテックスの処理の進行を監視し、各バーテックスが、フェーズPH2のデータ交換まで完了したか否かを判定する。そして、各workerは、担当する全てのバーテックスが、フェーズPH2までの処理を完了したと確認した場合に、各バーテックスの次のスーパーステップにおける状態フラグをmasterに報告(送信)する(ステップS103)。ここで、workerは、各バーテックスの次のスーパーステップにおける状態フラグとして「active」(次のスーパーステップの処理に移行する設定であること)を報告する。
そして、masterは、全てのworker(worker1,worker2)から、処理の完了を示す状態フラグの報告を受けたか否かを確認する。masterは、全てのworkerから報告を受けた場合に、スーパーステップを「+1」に更新する(ステップS104)。
ここで、masterは、グラフトポロジに変更がある場合、例えば、バーテックスやエッジの追加や削除がある場合には、そのグラフトポロジの変更を、各workerに通知する。
続いて、masterは、全てのworker(worker1,worker2)に対して、次にスーパーステップに移行するように指示する(ステップS105)。そして、各workerは、ステップS102〜S105を繰り返す。
比較例の分散同期処理システム1aにおいては、スーパーステップ毎に、計算対象となる全てのバーテックスを同期する、具体的には、図7に示す全体同期ポイントにおいて同期するため、最も遅いバーテックスにあわせることとなる。例えば、図7のスーパーステップSS1では、バーテックスv〜vのうち、最も遅いバーテックスvにあわせることとなる。また、スーパーステップSS2では、最も遅いバーテックスvにあわせることとなる。よって、著しく遅いバーテックスがあると、そのバーテックスにあわせるために、バーテックスの処理全体が著しく遅延してしまう。
また、master/worker構成では、一つのmasterで全体を管理することになるため、グラフGの規模が大きくなった場合、つまり、バーテックスの数やworkerの数が多くなるときに、masterがボトルネックとなる。
上記した全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いこと(処理の効率性)の問題(以下、「処理速度/効率性」の問題と称する。)を解決するために、非同期型の分散処理フレームワークが提案されている(例えば、非特許文献4参照)。
ここで、非特許文献4は、「Low, Y., et al., “Distributed GraphLab”, Proc. of the VLDB Endowment, 2012.」である。
しかしながら、非特許文献4に記載の非同期型の分散処理フレームワークでは、処理速度/効率性と計算精度がトレードオフの関係になるため、処理を設計する際におけるプログラマの負担(プラグラムの複雑性)が増大してしまう。
具体的には、非同期型では、各バーテックスによって、同じスーパーステップを実行していることが保証されないため、プログラマが、バーテックス間の処理の追い越しや上書きの考慮が必要となる。追い越されたイテレーション(反復処理)は、無効になってしまうため、精度の低下をまねくこととなる。また、スーパーステップの追い越し数が無制限に増えることにより、精度の理論的保証が困難になってしまう。
本実施形態に係る分散同期処理システム1(図9参照)および分散同期処理方法では、これらの問題に対し、同期型で、プログラマに優しい(つまり、処理の追い越しや上書きの考慮が不要となる)シンプルなフレームワークを提供しつつ、同期型で問題であった処理速度/効率性を改善することを課題とする。
さらに、masterのボトルネック化を回避し、大規模なグラフGでも処理速度/効率性を担保することを課題とする。
なお、本来masterが実行するグラフトロポジの管理のうち、「要素(バーテックスおよびエッジ)の動的な追加」については、システムとして構成の変更等が必要となるため、本発明の適用対象外とし、「要素の動的な追加」の必要がないケースを本発明の対象とする。
<本実施形態の概要>
次に、本実施形態に係る分散同期処理システム1が実行する処理の概要について説明する。
本実施形態に係る分散同期処理システム1(後記する図9)では、master(後記する「管理サーバ10」)による全バーテックス(後記する「分散処理部20」)での同期処理を行わず、バーテックス毎に次のスーパーステップへの移行を判断することを特徴とする。これにより、分散同期処理システム1は、著しく処理の遅いバーテックスの影響を低減する。
具体的には、分散同期処理システム1において、次のスーパーステップへの移行条件を「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」と設定する。なお、「入力エッジで接する全てのバーテックス」は、計算結果の入力元として接続された全てのバーテックス」を意味する。以下、この「次のスーパーステップへの移行条件」を「隣接同期」と称する。この隣接同期の詳細を、図8を参照して説明する。
図8は、図7において示した比較例の分散同期処理システム1aが実行する処理(図8(a)参照)と、本実施形態に係る分散同期処理システム1が実行する処理(図8(b)参照)とを示す図である。
本実施形態に係る分散同期処理システム1では、上記のように、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」(「隣接同期」)により、次のスーパーステップに移行する。
例えば、図8(b)のバーテックスvに着目すると、バーテックスvは、入力エッジで接するバーテックスv,v,vの計算・送信処理fと自身の計算・送信処理fが終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスvは、スーパーステップSS1のとき、自身の計算・送信処理fの終了がバーテックスv,v,vより遅く一番後であったので、その時点が隣接同期ポイントとなっている。
バーテックスvに着目すると、バーテックスvは、入力エッジで接するバーテックスv,vの計算・送信処理fと自身の計算・送信処理fが終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスvは、スーパーステップSS1のとき、自身の計算・送信処理fが終わった時点では、バーテックスvの計算・送信処理fは終わっているが、バーテックスvの計算・送信処理fが終わっていないため、「inactive」の状態で待機し(図8(b)の符号α)、バーテックスvの計算・送信処理fが終わった時点が隣接同期する隣接同期ポイントとなる。
また、バーテックスvに着目すると、バーテックスvは、入力エッジで接するバーテックスは存在しない、よって、スーパーステップSS1のとき、自バーテックスの計算・送信処理fが終了した時点が隣接同期する隣接同期ポイントとなる。
図8(b)に示すように、処理全体のある時点でみると、各バーテックス間においてスーパーステップがずれる可能性がある。そのため、バーテックス間でメッセージを送受信するときには上書きせずに、スーパーステップ毎に管理する。つまり、スーパーステップの情報(ステップ番号)をあわせて記憶するようにする。そのため、図4において示したバーテックスの要素に加え、本実施形態における各バーテックスは、「Min,n+m」を入力メッセージのバッファに記憶する。ここで、「Min,n+m」は、ステップ番号n+m(「m」は正の整数)において、入力エッジの状態としてバッファに記憶される情報を示す。各バーテックスは、自身のスーパーステップ(例えば、ステップ番号「n」(現在のステップ))よりも先に、次のスーパーステップに移行したバーテックスから、入力エッジの状態を取得した場合、ステップ番号n+1,n+2,…,n+m、としたステップ番号とともに、入力メッセージの状態を記憶しておく。
このように、隣接同期に基づき次のスーパーステップに移行することにより、論理的には、バーテックスそれぞれに着目すると同一スーパーステップ内での同期がとれている。そのため、プログラマは、非同期型のような処理速度/効率性と計算精度のトレードオフを考慮する必要がなくすことができる。
また、図8(a)に示す比較例にくらべ、inactiveとして同期待ちをする時間が大幅に削減されるため(図8(b)の符号β)、処理速度/効率性を改善することが可能となる。つまり、システム全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いこと(処理の効率性)の問題を解決することができる。
≪分散同期処理システムの構成≫
次に、本実施形態に係る分散同期処理システム1の構成について具体的に説明する。
図9に示すように、分散同期処理システム1は、管理サーバ10(master)と、管理サーバ10にそれぞれ接続され並列に処理を行う複数の処理サーバ30(worker)と、処理サーバ30上で動作する複数の分散処理部20(vertex)と、を備える。
管理サーバ10および処理サーバ30は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等、一般的なコンピュータとしてのハードウエアを備えており、HDDには、OS(Operating System)、アプリケーションプログラム、各種データ等が格納されている。OSおよびアプリケーションプログラムは、RAMに展開され、CPUによって実行される。なお、図9において、管理サーバ10、分散処理部20および処理サーバ30の内部は、RAMに展開されたアプリケーションプログラム等によって実現される機能(特徴構成)を、ブロックとして示している。
管理サーバ10は、システム全体を管理するmasterとして機能する。管理サーバ10は、対象とする計算処理の全体について所定単位に細分化した複数の計算処理を、workerとして機能する処理サーバ30にそれぞれ割り振る。個々の計算処理には、データ入力、計算、メッセージの送受信等が含まれる。並列に処理を行う複数の処理サーバ30(worker)上では、個々の計算処理にそれぞれ対応した複数の分散処理部20が動作する。対象とする計算処理をグラフG=(V,E)として表現したときに、この計算処理に必要な個々の計算処理は、グラフG中の個々の頂点(バーテックス:vertex)として表現される。つまり、分散処理部20は頂点(バーテックス:vertex)として機能する。
以下、分散同期処理システム1を構成する各装置について詳細に説明する。
<管理サーバ(master)>
管理サーバ10は、対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30(worker)への割り振りを行う。また、管理サーバ10は、システム上に設定したバーテックス(vertex)毎に、BSPにおける、次のスーパーステップに移行するか否かを判断する処理を行うことにより、対象とする計算処理の全体を管理する。
図3に示した、従来の分散同期処理システム1aのmasterとの違いは、次のスーパーステップへの移行を、全てのバーテックスの処理が終了していることにより判断するのではなく、本実施形態に係る管理サーバ10(master)では、バーテックス毎に、上記した「隣接同期」に基づき判定することである。
この管理サーバ10は、その特徴構成として、隣接同期処理部11を備える。
隣接同期処理部11は、各処理サーバ30(worker)から、分散処理部20(vertex)毎に、計算・送信処理fが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、計算・送信処理fの完了報告(以下、「計算・送信処理完了報告」と称する。)を受信する。
そして、隣接同期処理部11は、受信した計算・送信処理完了報告で示される分散処理部20(vertex)、すなわち、計算・送信処理が完了した分散処理部20(vertex)について、次のスーパーステップへの移行判断を上記の「隣接同期」の条件に基づき行う。つまり、隣接同期処理部11は、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」(隣接同期)の条件を満たすか否かを判定する。なお、この隣接同期の判定は、次のスーパーステップにおいて必要な計算結果の取得が完了しているか否かを、隣接する分散処理部20(vertex)からの計算・送信処理完了報告を受信しているか否かに基づき判定することを意味する。
隣接同期処理部11は、受信した計算・送信処理完了報告で示される分散処理部20(vertex)が、隣接同期の条件を満たす場合には、その分散処理部20(vertex)について、次のスーパーステップに移行する(スーパーステップを「+1」する。)ように、その分散処理部20(vertex)を担当する処理サーバ30(worker)に指示を送信する。なお、隣接同期処理部11による、次のスーパーステップへの移行指示を、以下「次ステップ移行指示」と称する。
また、隣接同期処理部11は、ある分散処理部20(vertex)の計算・送信処理完了報告を受信した場合に、その計算・送信処理完了報告で示される分散処理部20(vertex)が出力エッジで接する分散処理部20(vertex)のうち、当該分散処理部20(vertex)のみからの入力メッセージ待ち(入力エッジの状態の取得待ち)」の理由により、inactive状態で待機している分散処理部20(vertex)がある場合には、その分散処理部20(vertex)を次のスーパーステップへ移行させるように、次ステップ移行指示を送信する。
具体的には、図8(b)を参照して説明する。スーパーステップSS1のときのバーテックスvに着目すると、バーテックスvは、入力エッジで接するバーテックスv,vと自身の計算・送信処理fが終わった時点が隣接同期する隣接同期ポイントとなる。ここでバーテックスvは、自身の計算・送信処理fが終わった時点では、バーテックスvの計算・送信処理fは終わっているが、バーテックスvの計算・送信処理fが終わっていないため、「inactive」の状態で待機している。この状態において、管理サーバ10の隣接同期処理部11が、処理サーバ30(worker1)からバーテックスvの計算・送信処理fが終わった旨の計算・送信処理完了報告を受信した場合には、バーテックスvのみからの入力メッセージ待ち(入力エッジの状態の取得待ち)をしていた、バーテックスvに対して、次ステップ移行指示を送信する。
このようにすることで、自身の計算・送信処理fが終了し、inactive状態で待機していた分散処理部20(vertex)について、次にステップに移行させることができる。
<分散処理部(vertex)>
図9に戻り、分散処理部20(vertex)は、所定単位に区分された計算処理を実行し、数値計算部21およびメッセージ送受信部22を含んで構成される。
数値計算部21は、BSPにおけるフェーズPH1(ローカル計算)の処理を実行する。この数値計算部21は、メッセージ送受信部22を介して受信する次ステップ移行指示に従い、次のスーパーステップへの移行を行う。なお、数値計算部21は、自身の計算・送信処理fが完了した後、次ステップ移行指示を受信するまで、inactive状態で待機する。
メッセージ送受信部22は、他の分散処理部20や処理サーバ30(worker)との間での情報の送受信を行う。具体的には、メッセージ送受信部22は、BSPにおけるフェーズPH2(データ交換)において、自身の出力エッジの状態を出力メッセージとして、その出力エッジで接続するバーテックスへ向けて送信する。なお、この出力メッセージには、その出力エッジの状態に対応付けてその時点でのスーパーステップのステップ番号が付される。また、メッセージ送受信部22は、入力エッジで接続するバーテックスから入力エッジの状態を入力メッセージとして受信する。また、この入力メッセージには、その入力エッジに状態に対応付けてその時点でのスーパーステップのステップ番号が付される。なお、メッセージ送受信部22は、この出力メッセージおよび入力メッセージを、処理サーバ(worker)30のメッセージ処理部32を介して送受信する。
また、このメッセージ送受信部22は、自身が属する処理サーバ30(worker)から、次ステップ移行指示を受信し、数値計算部21に出力する。
<処理サーバ(worker)>
処理サーバ30(worker)(図9参照)は、管理サーバ10(master)や他の処理サーバ30(worker)と接続される。この処理サーバ30(worker)は、処理単位となる分散処理部20(vertex)を複数備え、自身が備える分散処理部20(vertex)の処理の進行状態等を管理するとともに、他の処理サーバ30(worker)や管理サーバ10(master)との間での情報の送受信を行う。また、この処理サーバ30(worker)は、仮想化制御部31、メッセージ処理部32およびバーテックス管理部33(分散処理管理部)を含んで構成される。
仮想化制御部31は、仮想化技術に基づき、処理サーバ30上に仮想化プラットホームを構築し、複数の分散処理部20(仮想マシン)を配置する制御を行う。
メッセージ処理部32は、自身に属する各分散処理部20(vertex)から、BSPにおけるフェーズPH2(データ交換)の際に、出力エッジの状態を示す出力メッセージを受け取り、計算対象のグラフGのグラフトポロジに基づき、その出力エッジで接続するバーテックスに、受信した出力メッセージを、入力エッジの状態を示す入力メッセージとして出力する。なお、以降、出力メッセージと入力メッセージとを特に区別しない場合、単に「メッセージ」と称する場合がある。
メッセージ処理部32は、出力エッジで隣接する分散処理部20(vertex)へのメッセージを、例えば、次に示す2つのタイミングで送信することができる。
(タイミング1)
自分散処理部20(vertex)の計算終了後に直ちに送信する。
具体的には、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、自身に属する分散処理部20(vertex)であるとき、および、他の処理サーバ30に属する分散処理部20(vertex)であるときに、直ちに、その分散処理部20(vertex)に送信する。
このようにすることにより、通信遅延の影響を低減させることができる。
(タイミング2)
出力エッジで接続する分散処理部20(vertex)(隣接バーテックス)が、次のスーパーステップに移行する直前までバッファリングする。
具体的には、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、他の処理サーバ30に属する分散処理部20(vertex)であるときに、その分散処理部20(vertex)が次のスーパーステップに移行する情報(次ステップ移行指示)を受ける状態になった時点で、管理サーバ10から、その次ステップ移行指示を出す旨の情報を事前に取得する。そして、移行直前にバッファリングしたメッセージをまとめて出力エッジで接続する分散処理部20(vertex)に送信する。
このようにすることで、他の処理サーバ30に属する分散処理部20(vertex)に送信する回数(通信回数)を削減することができる。
なお、メッセージ処理部32は、自分散処理部20(vertex)から、出力メッセージを受信した場合に、出力エッジで接続する分散処理部20(vertex)が、自身に属する分散処理部20(vertex)であるとき、上記のような通信回数の削減効果は得られないので、バッファリングせず、直ちに送信するようにする。
バーテックス管理部33(分散処理管理部)は、自身に属する分散処理部20(vertex)を監視し、各分散処理部20(vertex)が、計算・送信処理fが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、計算・送信処理fの完了報告(計算・送信処理完了報告)を生成し、管理サーバ10(master)に送信する。
そして、バーテックス管理部33は、管理サーバ10(master)から、計算・送信処理完了報告に対する応答として、次ステップ移行指示を受信した場合に、その次ステップ移行指示を対象となる分散処理部20(vertex)に出力する。
≪分散同期処理システムの動作≫
次に、分散同期処理システム1の動作について説明する。
図10は、本実施形態に係る分散同期処理システム1の処理の流れを示すシーケンス図である。
なお、ここでは、管理サーバ10(master)により、対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30(worker)への割り振りがすでに終わっているものとして説明する。
まず、処理サーバ30(worker)のバーテックス管理部33(分散処理管理部)は、自身に属する分散処理部20(vertex)を監視することにより、ある分散処理部20(vertex)について計算・送信処理fが完了したことを検出する(ステップS10)。そして、バーテックス管理部33は、その分散処理部20(vertex)の識別番号とその時点でのスーパーステップのステップ番号(n)とを付した計算・送信処理完了報告を、管理サーバ10に送信する(ステップS11)。
次に、計算・送信処理完了報告を受信した管理サーバ10(master)は、隣接同期処理部11が、受信した計算・送信処理完了報告で示される分散処理部20(vertex)について、隣接同期の条件を満たすか否かを判定する(ステップS12)。具体的には、隣接同期処理部11は、「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」を満たすか否かを判定する。
そして、管理サーバ10(master)の隣接同期処理部11は、隣接同期の条件を満たさない場合には(ステップS12→No)、処理サーバ30(worker)から次の計算・送信処理完了報告を受信するまで待つ。
一方、ステップS12において、管理サーバ10(master)の隣接同期処理部11は、隣接同期の条件を満たす場合に(ステップS12→Yes)、計算・送信処理完了報告を送信してきた処理サーバ30(worker)に、その分散処理部20(vertex)について、次のスーパーステップに移行するように、次ステップ移行指示を送信する(ステップS13)。
また、管理サーバ10(master)の隣接同期処理部11は、ステップS12において、受信した計算・送信処理完了報告で示される分散処理部20(vertex)が出力エッジで接する分散処理部20(vertex)のうち、当該分散処理部20(vertex)のみからの入力メッセージ待ち(入力エッジの状態の取得待ち)」の理由により、inactive状態で待機している分散処理部20(vertex)があるか否かを判定する。そして、隣接同期処理部11は、該当する分散処理部20(vertex)がある場合には、その分散処理部20(vertex)が属する処理サーバ30(worker)に対しても、次ステップ移行指示を送信する。
次ステップ移行指示を受信した処理サーバ30(worker)のバーテックス管理部33は、その計算・送信処理fが完了した分散処理部20(vertex)、および、上記ステップS12の際に、inactive状態で待機していたと判定された分散処理部20(vertex)に対し、次ステップ移行指示を出力する(ステップS14)。これにより、次ステップ移行指示を受信した分散処理部20(vertex)の数値計算部21は、次のスーパーステップ(n+1)の計算・送信処理fn+1を実行する。
以上説明したように、本実施形態に係る分散同期処理システム1および分散同期処理方法によれば、比較例の分散同期処理システムにおいて問題であった、システム全体としての処理速度の遅延や、フェーズPH3において処理をせず同期待ちが多いことの問題、つまり、処理速度/効率性の問題を解決し、処理が著しく遅い分散処理部20(vertex)の影響を低減することができる。
また、プログラマは、バーテックス間の処理の追い越しや上書きを考慮する必要がなく、シンプルなフレームワークとして、本システムのプログラムを作成することが可能となる。
〔本実施形態の変形例〕
次に、本実施形態に係る分散同期処理システム1の変形例について説明する。
図11は、本実施形態の変形例に係る分散同期処理システム1Aの全体構成を示す図である。
図9で示した本実施形態に係る分散同期処理システム1では、管理サーバ10(master)が、各分散処理部20(vertex)について、隣接同期の条件を満たすか否かの判定を行っていた。つまり、隣接同期の判定を管理サーバ10が行う「master集中型」であった。これに対し、図11に示す、分散同期処理システム1Aは、管理サーバ10(master)を備えず、各分散処理部20(vertex)について、隣接同期の条件を満たすか否かの判定を、各処理サーバ30(worker)において自律分散的に実行する。つまり、分散同期処理システム1Aは、自律分散型(master-less型)で、隣接同期を行うことを特徴とする。
具体的には、本実施形態の変形例に係る分散同期処理システム1Aでは、図9に示す分散同期処理システム1における管理サーバ10(master)を備えない構成とするとともに、各処理サーバ30A(worker)におけるバーテックス管理部33を備えないものとし、その代わりに、図11に示すように、処理サーバ30Aに、隣接同期バーテックス管理部34(隣接同期分散管理部)を備えるものとした。
なお、図9で示す構成と同じ機能を備える構成については、同一の名称と符号を付し、説明を省略する。
隣接同期バーテックス管理部34(隣接同期分散管理部)は、自身に属する分散処理部20(vertex)を監視し、各分散処理部20(vertex)が、計算・送信処理fが完了したとき、つまり、フェーズPH1(ローカル計算)およびフェーズPH2(データ交換)が完了したときに、入力エッジで接する全ての分散処理部20(vertex)からの入力メッセージ(入力エッジの状態)が揃っているか否かを判定する。なお、隣接同期バーテックス管理部34は、各分散処理部20(vertex)の入力メッセージ(incomingメッセージ)のバッファ(図4の「Min,n」(現在のステップ用))を参照して、入力メッセージ(入力エッジの状態)が揃っているか否かを判定する。
なお、本実施形態の変形例においても、本実施形態と同様に、処理全体のある時点でみると、各バーテックス間においてスーパーステップがずれる可能性がある。そのため、バーテックス間でメッセージを送受信するときには上書きせずに、スーパーステップ毎に管理する。よって、各バーテックスは、自身のスーパーステップよりも先に、次のスーパーステップに移行した入力エッジで接するバーテックスから取得した入力エッジの状態を、「Min,n+m」として入力メッセージのバッファに記憶しておく。
そして、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っている場合、つまり、隣接する分散処理部20(vertex)から、次の計算ステップにおいて必要な計算結果の取得が完了している場合には、本実施形態における隣接同期の条件「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」を満たすものとする。隣接同期バーテックス管理部34は、この場合に、次のスーパーステップに移行する(スーパーステップを「+1」する。)ように、「次ステップ移行指示」を、計算・送信処理fが完了した分散処理部20(vertex)に出力する。
隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)に対し入力エッジで接するいずれかの分散処理部20(vertex)から、当該分散処理部20(vertex)が入力メッセージ(入力エッジの状態)を受信した場合には、その受信を契機として、再度、入力メッセージ(入力エッジの状態)が揃っているか否か、つまり、隣接同期の条件を満たすか否かの判定を実行する。
なお、処理サーバ30A(worker)のメッセージ処理部32は、隣接同期バーテックス管理部34の上記した隣接同期の判定のため、入力エッジの状態としてのデータがない場合(例えば、データが「0」)であっても、フェーズPH1(ローカル計算)が終わった時点で、出力エッジで接する分散処理部20(vertex)に対して、入力メッセージを送信する。また、処理サーバ30A(worker)のメッセージ処理部32は、隣接同期バーテックス管理部34の隣接同期の条件による判定のため、出力メッセージをバッファリングせずに、直ちに送信する。
≪変形例の分散同期処理システムの動作≫
次に、変形例に係る分散同期処理システム1Aの動作について説明する。
図12は、本実施形態の変形例に係る分散同期処理システム1Aの処理の流れを示すフローチャートである。
なお、ここでは、予め対象とする計算処理に必要な個々の計算処理(vertex)の設定と、その個々の計算処理(vertex)の各処理サーバ30A(worker)への割り振りが終わっているものとして説明する。この個々の計算処理(vertex)の設定と、各処理サーバ30A(worker)への割り振りとは、例えば、これらの機能を、システム全体の管理サーバを備えさせたり、処理サーバ30Aの中の代表サーバに備えさせたりすることにより、事前に実行しておけばよい。
まず、処理サーバ30A(worker)の隣接同期バーテックス管理部34(隣接同期分散管理部)は、自身に属する分散処理部20(vertex)を監視することにより、ある分散処理部20(vertex)について計算・送信処理fが完了したことを検出する(ステップS20)。
続いて、隣接同期バーテックス管理部34は、その分散処理部20(vertex)について、入力エッジで接する全ての分散処理部20(vertex)からの入力メッセージ(入力エッジの状態)が揃っているか否かを判定する(ステップS21)。
ここで、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っていると判定した場合には(ステップS21→Yes)、隣接同期の条件「自バーテックスおよび入力エッジで接する全てのバーテックスの計算・送信処理fが完了していること」を満たすものし、後記するステップS24(「次ステップ移行指示」の出力)に進む。
一方、隣接同期バーテックス管理部34は、入力メッセージ(入力エッジの状態)が揃っていないと判定した場合には(ステップS21→No)、「次ステップ移行指示」を出力しない。そのため、その計算・送信処理fが完了した分散処理部20(vertex)は、inactive状態での待機となる(ステップS22)。
続いて、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)に対し、入力エッジで接するいずれかの分散処理部20(vertex)から、当該分散処理部20(vertex)が入力メッセージ(入力エッジの状態)を受信したか否かを判定する(ステップS23)。そして、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)が入力メッセージを受信していなければ(ステップS23→No)、受信するまで待つ。一方、隣接同期バーテックス管理部34は、inactive状態で待機している分散処理部20(vertex)が入力メッセージを受信した場合には(ステップS23→Yes)、そのことを契機として、ステップS21に戻る。
一方、隣接同期バーテックス管理部34は、隣接同期の条件を満たす場合には(ステップS21→Yes)、ステップS24において、その分散処理部20(vertex)について、次のスーパーステップに移行するように、「次ステップ移行指示」を出力する。これにより、「次ステップ移行指示」を受信した分散処理部20(vertex)の数値計算部21は、次のスーパーステップ(n+1)の計算・送信処理fn+1を実行する。
以上説明したように、本実施形態の変形例に係る分散同期処理システム1Aおよび分散同期処理方法によれば、本実施形態に係る分散同期処理システム1の効果に加えて、自律分散型を採用することにより、管理サーバ10(master)のボトルネックを回避し、大規模なグラフGにおいても、処理速度/効率性を担保することができる。
1,1A 分散同期処理システム
10 管理サーバ(master)
11 隣接同期処理部
20 分散処理部(vertex)
21 数値計算部
22 メッセージ送受信部
30,30A 処理サーバ(worker)
31 仮想化制御部
32 メッセージ処理部
33 バーテックス管理部(分散処理管理部)
34 隣接同期バーテックス管理部(隣接同期分散管理部)

Claims (4)

  1. 並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムであって、
    前記処理サーバは、
    前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信するとともに、
    前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する分散処理管理部を備え、
    前記管理サーバは、
    前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する隣接同期処理部を備えること
    を特徴とする分散同期処理システム。
  2. 並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムであって、
    前記処理サーバは、
    前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、
    前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する隣接同期分散管理部を備えること
    を特徴とする分散同期処理システム。
  3. 並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、対象とする計算処理に必要な複数の前記分散処理部を複数の前記処理サーバに対して割り当てる管理サーバと、を有する分散同期処理システムの分散同期処理方法であって、
    前記処理サーバは、
    前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出し、前記計算・送信処理の完了を示す完了報告を生成して、前記管理サーバに送信する手順と、
    前記管理サーバから次の前記計算ステップへの移行の指示である次ステップ移行指示を受信し、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行し、
    前記管理サーバは、
    前記完了報告を受信し、前記計算・送信処理を完了した分散処理部が、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを前記計算結果の入力元として接続された分散処理部からの完了報告を受信しているか否かに基づき判定し、前記計算結果の取得が完了しているときに、前記次ステップ移行指示を前記完了報告を送信してきた処理サーバに送信する手順を実行すること
    を特徴とする分散同期処理方法。
  4. 並列に処理を行う複数の処理サーバと、前記処理サーバ上で動作する複数の分散処理部と、を有する分散同期処理システムの分散同期処理方法であって、
    前記処理サーバは、
    前記分散処理部による所定の計算ステップにおける、計算処理および計算結果の出力先として接続された分散処理部への送信処理を示す計算・送信処理の完了を検出する手順と、
    前記計算・送信処理を完了した分散処理部が、計算結果の入力元として接続された分散処理部から、次の前記計算ステップにおいて必要な計算結果の取得が完了しているか否かを判定し、前記計算結果の取得が完了しているときに、次の前記計算ステップへの移行の指示である次ステップ移行指示を、前記計算・送信処理を完了した分散処理部に出力する手順と、を実行すること
    を特徴とする分散同期処理方法。
JP2016166182A 2016-08-26 2016-08-26 分散同期処理システムおよび分散同期処理方法 Active JP6535304B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016166182A JP6535304B2 (ja) 2016-08-26 2016-08-26 分散同期処理システムおよび分散同期処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016166182A JP6535304B2 (ja) 2016-08-26 2016-08-26 分散同期処理システムおよび分散同期処理方法

Publications (2)

Publication Number Publication Date
JP2018032344A true JP2018032344A (ja) 2018-03-01
JP6535304B2 JP6535304B2 (ja) 2019-06-26

Family

ID=61303509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016166182A Active JP6535304B2 (ja) 2016-08-26 2016-08-26 分散同期処理システムおよび分散同期処理方法

Country Status (1)

Country Link
JP (1) JP6535304B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023188256A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 モデル学習装置、秘密連合学習装置、それらの方法、およびプログラム
WO2023188257A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290005A (ja) * 1992-04-10 1993-11-05 Fujitsu Ltd 並列処理の負荷均一化方法
US20100124241A1 (en) * 2008-11-19 2010-05-20 Fujitsu Limited Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method
JP2013069189A (ja) * 2011-09-26 2013-04-18 Hitachi Ltd 並列分散処理方法および並列分散処理システム
JP2016024614A (ja) * 2014-07-18 2016-02-08 株式会社デンソー データ処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05290005A (ja) * 1992-04-10 1993-11-05 Fujitsu Ltd 並列処理の負荷均一化方法
US20100124241A1 (en) * 2008-11-19 2010-05-20 Fujitsu Limited Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method
JP2010122848A (ja) * 2008-11-19 2010-06-03 Fujitsu Ltd バリア同期装置、バリア同期処理システム及び方法、リダクション演算装置、リダクション演算処理システム及び方法
JP2013069189A (ja) * 2011-09-26 2013-04-18 Hitachi Ltd 並列分散処理方法および並列分散処理システム
JP2016024614A (ja) * 2014-07-18 2016-02-08 株式会社デンソー データ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023188256A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 モデル学習装置、秘密連合学習装置、それらの方法、およびプログラム
WO2023188257A1 (ja) * 2022-03-31 2023-10-05 日本電信電話株式会社 秘密グローバルモデル計算装置、ローカルモデル登録方法、プログラム

Also Published As

Publication number Publication date
JP6535304B2 (ja) 2019-06-26

Similar Documents

Publication Publication Date Title
EP2834755B1 (en) Platform for continuous graph update and computation
CN112069265B (zh) 配置数据的同步方法、业务数据系统、计算机系统和介质
JP6450330B2 (ja) 並列計算処理装置および並列計算処理方法
CN110795503A (zh) 分布式存储系统的多集群数据同步方法及相关装置
US9400767B2 (en) Subgraph-based distributed graph processing
CN103488775A (zh) 一种用于大数据处理的计算系统及计算方法
US10498817B1 (en) Performance tuning in distributed computing systems
CN106855834B (zh) 一种数据备份方法、装置和系统
US20180068040A1 (en) Handover Techniques For Simulation Systems And Methods
WO2020186836A1 (zh) 任务调度
CN113778615B (zh) 一种快速稳定的网络靶场虚拟机构建系统
Yamaoka et al. Dracena: A real-time iot service platform based on flexible composition of data streams
CN106354563A (zh) 用于3d重建的分布式计算系统以及3d重建方法
Nguyen et al. A low-cost two-tier fog computing testbed for streaming IoT-based applications
CN111552701B (zh) 确定分布式集群中数据一致性的方法及分布式数据系统
Li et al. Wide-area spark streaming: Automated routing and batch sizing
JP6535304B2 (ja) 分散同期処理システムおよび分散同期処理方法
CN105808340B (zh) 负载均衡方法及系统
Yoginath et al. Parallel vehicular traffic simulation using reverse computation-based optimistic execution
JP6688240B2 (ja) 分散同期処理システムおよび分散同期処理方法
JP6036848B2 (ja) 情報処理システム
US10353735B2 (en) Computing system including independent coupling facilities maintaining equivalency based on sequence values
CN113227975B (zh) 一种同步方法及装置
US10230583B1 (en) Multi-node object simulation
JP6778161B2 (ja) 分散同期処理システム、分散同期処理方法および分散同期処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190424

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190531

R150 Certificate of patent or registration of utility model

Ref document number: 6535304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350