JP2018032345A - 計算装置および計算方法 - Google Patents

計算装置および計算方法 Download PDF

Info

Publication number
JP2018032345A
JP2018032345A JP2016166183A JP2016166183A JP2018032345A JP 2018032345 A JP2018032345 A JP 2018032345A JP 2016166183 A JP2016166183 A JP 2016166183A JP 2016166183 A JP2016166183 A JP 2016166183A JP 2018032345 A JP2018032345 A JP 2018032345A
Authority
JP
Japan
Prior art keywords
vertices
workers
worker
spt
sub
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
JP2016166183A
Other languages
English (en)
Other versions
JP6650850B2 (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 JP2016166183A priority Critical patent/JP6650850B2/ja
Publication of JP2018032345A publication Critical patent/JP2018032345A/ja
Application granted granted Critical
Publication of JP6650850B2 publication Critical patent/JP6650850B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】分散処理システムにおいて、ワーカの状態変更に伴う処理負荷を軽減する。【解決手段】並列して計算処理を行う複数のワーカ(20−1〜20−P)と、複数のワーカ(20−1〜20−P)の中の処理単位である複数の頂点(v1〜vn)と、ワーカ(20−1〜20−P)とを管理するマスタ装置(10)とを有する計算装置(S)において、マスタ装置(10)は、複数のワーカ(20−1〜20−P)に対する複数の頂点(v1〜vn)の配置を、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法によって決定するようにした。【選択図】図5

Description

本発明は、複数のコンピュータによる分散処理に用いて好適な計算装置および計算方法に関する。
複数のコンピュータを有する分散処理システムのフレームワークとして、非特許文献1にはマップレデュース(MapReduce)が開示されている。但し、マップレデュースは、ある処理の結果を次の処理で利用するようなイテレーティブな処理には不向きであり、この種の処理には、非特許文献2に開示されているBSP(bulk-synchronous parallel)が適していると考えられる。
BSPを適用した例として、非特許文献3には、「Pregel」という分散処理フレームワークが開示されている。BSPにおいては、全体の処理内容をグラフG=(V,E)として表現することができる。ここで、Vは頂点(vertex)の集合であり、各頂点は、細分化された個々の処理内容に対応する。また、Eは辺(edge)の集合であり、辺は各頂点間の情報伝達を行う経路に対応する。
BSPでは、「スーパーステップ(superstep)」という処理単位を繰り返し実行することにより、分散環境でのデータ処理を実行する。図1は、BSP計算モデルを説明するための図である。一つのスーパーステップは、図1に示すように、フェーズPH1として「ローカル計算(LC:Local computation)」、フェーズPH2として「データ交換(COM:Communication)」、フェーズPH3として「同期(SYNC:Synchronization)」の3つのフェーズPH1〜PH3を有している。
具体的には、図1示すように、複数の頂点v1〜v4は、フェーズPH1において、これら頂点v1〜v4内の計算処理(ローカル計算(LC))を実行する。続いて、フェーズPH2において、各頂点v1〜v4が保持しているローカル計算の結果であるデータについて、頂点v1〜v4間でのデータ交換を実行する。次に、フェーズPH3において、各頂点の処理時刻の同期処理を行う。より詳細には、すべての頂点v1〜v4間でのデータ交換の終了を待つ。そして、Step1として、一つのスーパーステップの処理(PH1〜PH3)が終了すると、各頂点v1〜v4はその計算結果を保持した上で、次のスーパーステップの処理であるStep2へと進む。以下、同様にして、複数のスーパーステップが繰り返される。
ここで、図2を参照し、具体的なアプリケーションとして、交通システムのシミュレーションにBSPを適用した例を説明する。
図2においては、各交差点が頂点v1〜v4に対応付けられ、各交差点を結ぶ道路が辺e1〜e6に対応付けられている。ここで、辺(edge)は一方通行であり、双方向の道路は2つの辺に対応付けられる。ある頂点(vertex)から見て、車両が出てゆく方向の辺(edge)を、「出力辺(outgoing edge)」と呼び、車両が流入する方向の辺を「入力辺(incoming edge)」と呼ぶ。例えば、図2において、頂点v2から見ると、辺e1は入力辺であり、辺e2は出力辺になる。逆に、頂点v1から見ると、辺e1は出力辺であり、辺e2は入力辺になる。
図1にて述べたフェーズPH1(ローカル計算)では、例えば、所定時間内における、各頂点v1〜v4に対応付けられている交差点内の信号の色(赤・黄・青)や車両の動き等と、各頂点v1〜v4に接続されている出力辺(outgoing edge)に対応する道路内の車両の動き(車両の台数や平均速度)とをシミュレートする。また、上述したフェーズPH2(データ交換)では、出力辺(outgoing edge)を介して接する他の頂点に対して、該出力辺を介して出てゆく車両の情報を送信するとともに、入力辺(incoming edge)を介して接する他の頂点から、該入力辺を介して流入する車両の情報を受信する。また、上述したフェーズPH3(SYNC)では、各頂点の処理時刻の同期処理を行う。
このように、交差点単位で頂点(vertex)を定め、分散処理を実行することにより、大規模な交通システムの挙動を短時間でシミュレートできる。ここで、分散処理システムでは、一台のサーバ(コンピュータ)または仮想マシンに、一または複数の頂点が割り当てられる。これら頂点が割り当てられるサーバまたは仮想マシンをワーカ(worker)と呼ぶ。また、複数のワーカに一または複数の頂点を割り当てる際に、割り当てるデータや処理対象を生成する処理を「パーティショニング」と呼ぶ。
次に、図3を参照し、パーティショニングの一例を説明する。
図3においてグラフG全体は12個の頂点v1〜v12を有しており、これらが4個ずつ、3つのパーティションPT1〜PT3に割り当てられている。そして、パーティションPT1〜PT3は、3台のワーカWK1〜WK3に、それぞれ割り当てられる。パーティショニングは、処理速度/効率性を大きく左右するため、如何なる手法を採るが重要になる。既存のパーティショニング方法、例えば非特許文献4に開示されている方法は、パーティションの大きさ(含まれる頂点の数)をなるべく均等にし、パーティション間をまたぐ辺(edge)数をなるべく少なくすることを目指すものであった。これにより、複数のワーカの処理時間のばらつきを小さくでき、ワーカ間の通信量も最小化できるためである。このような手法をPBM(Partitioning for Balancing workload while Minimizing Inter-partition edges)と呼ぶこととする。
Dean, J., et al., "MapReduce: Simplified Data Processing on Large Clusters," OSDI '04, 2004. Valiant, L., et al., "A bridging model for parallel computation,"Communications of the ACM, 1990. Malewicz, G., et al., "Pregel: A System for Large-Scale Graph Processing," SIGMOD '10, 2010. 藤森 俊匡,塩川 浩昭,鬼塚 真、分散グラフ処理におけるグラフ分割の最適化(第7回データ工学と情報マネジメントに関するフォーラム(DEIM2015),2015年3月)、[online]、[平成28年8月5日検索]、インターネット〈 URL:http://db-event.jpn.org/deim2015/paper/68.pdf 〉
ところで、分散処理システムでは、ワーカの動的な追加や削除が発生する場合がある。このような場合は、パーティショニングをやり直すこと、すなわち再パーティショニングが必要になる。しかし、上述した従来のパーティショニング手法(PBM)では、再パーティショニング時の計算量が大きくなるという問題が生じる。また、PBMでは、再パーティショニング時に発生する、頂点とワーカとのマッピングの変更量を考慮していないため、再パーティショニングに基づく再割当時にワーカ間でデータの転送が大量に発生する可能性がある。
図4を参照し、その問題点の一例を説明する。図4は、上述した図3のグラフGに対して、PBMによる再パーティショニングを行った結果を示す。まず、図4は、図3の状態に対してワーカの数が一つ増加している(ワーカWK4が追加されている)。その結果、グラフG全体は、パーティションPT1〜PT4に再パーティショニングされている。図3と図4とを比較すると、図4にてハッチングを施した6個の頂点v2,v4,v5,v6,v8,v12は、マッピングされるワーカに変化が生じている。すなわち、全体の半数(6/12)に渡る頂点のマッピングが変更されており、それに応じた計算量や、データの伝送量が、再パーティショニングに基づく再割当時に発生することになる。
この発明は上述した事情に鑑みてなされたものであり、ワーカの状態変更に伴う処理負荷を軽減できる計算装置および計算方法を提供することを目的とする。
上記課題を解決するため本発明にあっては、下記構成を有することを特徴とする。
請求項1記載の計算装置にあっては、並列して計算処理を行う複数のワーカと、複数の前記ワーカの中の処理単位である複数の頂点と、前記ワーカとを管理するマスタ装置とを有する計算装置であって、前記マスタ装置は、複数の前記ワーカに対する複数の前記頂点の配置を、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法によって決定するパーティショニング部を有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1に記載の計算装置において、前記手法は、コンシステントハッシュ法であることを特徴とする。
請求項1,2の構成によれば、ワーカの構成に変化が生じた際、パーティショニング部は、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法(例えばコンシステントハッシュ法)によって、頂点の配置を再決定する。これにより、再配置時に転送するデータ量を少なくすることができ、計算装置の処理負荷を軽減できる。
さらに、請求項3記載の構成にあっては、請求項2に記載の計算装置において、前記マスタ装置は、複数の前記頂点を複数のサブパーティションの何れかに割り当てるサブパーティション生成部をさらに有し、前記パーティショニング部は、前記サブパーティションを単位として、複数の前記ワーカに対する複数の前記頂点の配置を決定することを特徴とする。
この構成によれば、複数のサブパーティションに含まれる頂点の数をなるべく均等にし、また、複数のサブパーティションをまたぐ辺数をなるべく小さくすることによって、計算装置の実行速度を向上させることができる。
さらに、請求項4記載の構成にあっては、請求項3に記載の計算装置において、前記サブパーティション生成部は、複数の前記サブパーティションに各々含まれる前記頂点の数を均等にし、複数の前記サブパーティション間をまたぐ辺数を最小化するように、複数の前記頂点の各々を複数の前記サブパーティションのうち何れかに割り当てることを特徴とする。
この構成によれば、複数のサブパーティションに含まれる頂点の数を均等にし、また、複数のサブパーティションをまたぐ辺数を最小化できるため、計算装置の実行速度を一層向上させることができる。
また、請求項5記載の計算方法にあっては、並列して計算処理を行う複数のワーカと、複数の前記ワーカの中の処理単位である複数の頂点と、前記ワーカとを管理するマスタ装置とを有する計算装置が行う計算方法であって、前記マスタ装置が、複数の前記ワーカに対する複数の前記頂点の配置を、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法によって決定することを特徴とする。
この構成によれば、請求項1に係る構成と同様に、ワーカの構成に変化が生じた際、再配置時に転送するデータ量を少なくすることができ、計算装置の処理負荷を軽減できる。
本発明によれば、ワーカの状態変更に伴う処理負荷を軽減できる。
BSP計算モデルの説明図である。 交通システムのシミュレーションに適用したBSP計算モデルの説明図である。 BSP計算モデルにおけるグラフの模式図である。 BSP計算モデルにおける他のグラフの模式図である。 本発明の一実施形態による分散処理システムSのブロック図である。 一実施形態における(a)複数の頂点、(b)サブパーティション、(c)パーティショニング例、および(d)再パーティショニング例の模式図である。
〈実施形態の構成〉
次に、図5を参照し、本発明の一実施形態による分散処理システムSの構成を説明する。
分散処理システムSは、マスタ装置10と、並列して計算処理を行うP台のサーバ20−1〜20−Pと、これらを接続するネットワーク30と、を有している。
マスタ装置10およびサーバ20−1〜20−Pは、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等、一般的なコンピュータとしてのハードウエアを備えており、HDDには、OS(Operating System)、アプリケーションプログラム、各種データ等が格納されている。OSおよびアプリケーションプログラムは、RAMに展開され、CPUによって実行される。図5において、マスタ装置10の内部は、RAMに展開されたアプリケーションプログラム等によって実現される機能を、ブロックとして示している。
本実施形態において、個々のサーバ20−1〜20−Pは、個々のワーカとして機能することとする。すなわち、分散処理システムSはP個のワーカを有している。分散処理システムSで処理される頂点をv1〜vnとすると、各頂点v1〜vnは、m個のサブパーティションSPT1〜SPTmのうち何れかに割り当てられ、これらサブパーティションSPT1〜SPTmが、サーバ20−1〜20−Pのうち何れかに割り当てられる。ここで、サブパーティションとは、十分に小さくしたグラフの断片であり、一つのサブパーティションに含まれる頂点の数は、一台のサーバに割当可能な頂点の数よりも十分に小さくしておくとよい。
また、マスタ装置10は、頂点v1〜vnとサーバ20−1〜20−Pとを管理するために、頂点・辺テーブル102と、サブパーティション・テーブル104と、サブパーティション生成部106と、ワーカ・テーブル108と、パーティショニング部110と、ワーカ制御部112と、を有している。
頂点・辺テーブル102は、頂点IDと、頂点データと、辺データと、を記憶する。ここで、頂点IDは、頂点v1〜vnを一意に特定する番号であり、例えば、「1」〜「n」の自然数にするとよい。頂点データは、各頂点IDに対応付けられ、各頂点の処理内容を特定するデータである。また、辺データは、各頂点を接続する辺(edge)の処理内容を特定するデータである。
サブパーティション・テーブル104は、サブパーティションSPT1〜SPTmの各々に対して、次のデータを記憶する。
(1)サブパーティションID、
(2)サブパーティション・ハッシュ
(3)複数の頂点ID
ここで、「サブパーティションID」とは、サブパーティションSPT1〜SPTmを一意に特定する番号である。
また、「サブパーティション・ハッシュ」とは、サブパーティションIDに対して所定のハッシュ関数を施して得られたハッシュ値であり、これもサブパーティションを一意に特定するものである。あるサブパーティションに対応付けてサブパーティション・テーブル104に記憶される頂点IDは、当該サブパーティションに属する頂点を表すデータになる。
サブパーティション生成部106は、分散処理システムSで実行しようとする処理内容に応じて、サブパーティションSPT1〜SPTmの内容を設定する。すなわち、頂点v1〜vnをサブパーティションSPT1〜SPTmに割り当てるように、サブパーティション・テーブル104の内容を設定する。
また、ワーカ・テーブル108は、各ワーカすなわちサーバ20−1〜20−Pの各々に対して、次のデータを記憶する。
(1)ワーカID
(2)ワーカ・ハッシュ
(3)一または複数のサブパーティションID
ここで、「ワーカID」とは、ワーカすなわちサーバ20−1〜20−Pを一意に特定する番号であり、サブパーティションIDとは重複しない値に設定される。
また、「ワーカ・ハッシュ」とは、ワーカIDに対して、上記ハッシュ関数(サブパーティション・ハッシュを求めるハッシュ関数と同一のハッシュ関数)を施して得られたハッシュ値であり、これもワーカを一意に特定するものである。また、「一または複数のサブパーティションID」とは、当該ワーカにパーティショニングされた一または複数のサブパーティションのIDである。本実施形態においては、コンシステントハッシュ法を用いて、サーバ20−1〜20−PとサブパーティションSPT1〜SPTmとを対応付ける。このため、上述したように、ワーカ・ハッシュと、サブパーティション・ハッシュとは、同一のハッシュ関数を用いて生成される。なお、コンシステントハッシュ法は、「Karger, D., et al., "Consistent hashing and random trees", ACM STOC '97, 1997.」等に詳述されている。
パーティショニング部110は、実働中のワーカすなわちサーバ20−1〜20−Pが変化すると、これに応じてワーカ・テーブル108の内容を更新する。すなわち、実働中のワーカであるサーバ20−1〜20−Pに対して、サブパーティションSPT1〜SPTmをパーティショニングする。
ワーカ制御部112は、ワーカ・テーブル108の内容に基づいて、サーバ20−1〜20−Pを制御する。すなわち、ワーカ・テーブル108に規定されている通りに、サーバ20−1〜20−P間で、サブパーティションの内容(頂点v1〜vnの実体も含む)を相互に伝送させる。そして、サーバ20−1〜20−PにおけるサブパーティションSPT1〜SPTmの配置がワーカ・テーブル108の通りになると、各サーバ20−1〜20−Pは、スーパーステップを繰り返し実行する。
「スーパーステップ」は、図1に示した通り、フェーズPH1(ローカル計算)と、フェーズPH2(データ交換)と、フェーズPH3(同期)とを有している。これにより、サーバ20−1〜20−Pにおいて、分散処理が実行される。
〈実施形態の動作〉
(サブパーティション・テーブル104の設定)
次に、本実施形態の動作を説明する。
まず、分散処理システムSで行うべき処理内容に応じて、頂点・辺テーブル102には、頂点v1〜vnおよびこれらを結ぶ辺(edge)が特定されていることとする。サブパーティション生成部106は、これら頂点v1〜vnをサブパーティションSPT1〜SPTmに割り当てる。その手法は、上述したPBMを適用する。すなわち、各サブパーティションSPT1〜SPTmの大きさ(含まれる頂点の数)をなるべく均等にするとともに、サブパーティションをまたぐ辺をなるべく少なくするように(好ましくは最小化するように)、割当を行う。
サブパーティション生成部106は、これらサブパーティションSPT1〜SPTmに対してサブパーティション・ハッシュを生成し、サブパーティションID、サブパーティション・ハッシュおよび複数の頂点IDをサブパーティション・テーブル104に書き込む。
(ワーカ・テーブル108の設定)
サブパーティション・テーブル104が完成すると、パーティショニング部110は、ワーカであるサーバ20−1〜20−Pに対してワーカ・ハッシュを生成し、サブパーティションSPT1〜SPTmをサーバ20−1〜20−Pにパーティショニングする。そして、パーティショニング部110は、ワーカID、ワーカ・ハッシュおよび一または複数のサブパーティションIDをワーカ・テーブル108に書き込む。
ここで、サブパーティションSPT1〜SPTmのサーバ20−1〜20−Pに対するパーティショニングは、サーバ20−1〜20−Pのワーカ・ハッシュに対する「距離」が短い順に、サブパーティション・ハッシュを検索し、対応するサブパーティションSPT1〜SPTmを当該サーバに割り当てるとよい。
ここで、「距離」とは、様々な数値を適用することができるが、例えば、ワーカ・ハッシュとサブパーティション・ハッシュとのXOR(排他的論理和)を適用することができる。以上のようにして、ワーカ・テーブル108の内容が設定されると、ワーカ制御部112は、ワーカ・テーブル108の内容を反映させるように、サーバ20−1〜20−Pに対して、サブパーティションSPT1〜SPTmの配置を変更させる。
(ワーカ・テーブル108の再設定)
サーバ20−1〜20−Pにおいて分散処理を実行中にサーバ20−1〜20−Pの構成が変更されると(例えばサーバの数が増加または減少すると)、パーティショニング部110は、変更後のサーバ20−1〜20−Pに応じて、ワーカ・テーブル108を再設定する。そして、ワーカ制御部112は、再設定されたワーカ・テーブル108の内容を、構成変更後のサーバ20−1〜20−Pに反映させる。
ここで、サーバ20−1〜20−Pの構成が変更された場合であっても、継続して使用されるサーバは、同一のワーカIDおよびワーカ・ハッシュを維持することとする。なお、サーバの構成が変更された場合であっても、サブパーティションSPT1〜SPTmの構成は特に変更する必要はないため、サブパーティション・テーブル104は、従前の内容を維持する。
(具体的な動作例)
次に、図6(a)〜(d)を参照し、本実施形態の具体的な動作例を説明する。まず図6(a)は、分散処理システムSにおいて処理される複数の頂点v1〜vnを示す。なお、各頂点v1〜vnを結ぶ辺(edge)については、図示を省略する。
次に、図6(b)は、サブパーティション生成部106が、頂点v1〜vnをサブパーティションSPT1〜SPTmに割り当てた状態を示す。上述したように、サブパーティション生成部106は、各サブパーティションSPT1〜SPTmの大きさ(含まれる頂点の数)をなるべく均等にするため、図示の例では、含まれる頂点の数は3個または4個になっている。
次に、図6(c)は、サブパーティションSPT1〜SPTmを3台のサーバ20−1〜20−3にパーティショニングした例を示す。次に、図6(d)は、ワーカの構成が変更されたため、サブパーティションSPT1〜SPTmの再パーティショニングが行われた例を示す。すなわち、3台のサーバ20−1〜20−3に加えて、サーバ20−4がワーカとして追加されている。
ワーカの構成が変更される前からワーカを構成していたサーバ20−1〜20−3は、同一のワーカIDおよびワーカ・ハッシュを維持する。このため、各サーバ20−1〜20−3にマッピングされていたサブパーティションは、マッピング状態をできるだけ維持する傾向が強くなる。図6(c),(d)を比較すると、図6(c)においてサーバ20−1〜20−3にマッピングされていた各1個(計3個)のサブパーティションが、サーバ20−4にマッピングされている。しかし、残りの9個のサブパーティションについては、マッピング状態が全く変化していないことが解る。
〈実施形態の効果〉
以上のように、本実施形態によれば、コンシステントハッシュ法によってサブパーティションSPT1〜SPTmをワーカ(サーバ20−1〜20−P)にマッピングしたため、ワーカの構成を変更する際に、サブパーティションSPT1〜SPTmおよびこれらに含まれる頂点v1〜vnを移動するための処理量および通信量を小さくすることができ、分散処理システムSの処理負担を軽減できる。この結果、特に、分散処理の実行中に、ワーカの追加/削除が生じた際、分散処理の中断時間を短くできるという利点が生じる。
また、コンシステントハッシュ法によれば、サブパーティションの数をm、増減後のワーカ数をPとすると、再パーティショニング時のマッピングの変更量は、平均「m/P」に抑制することができる。これにより、ワーカ数Pが大きいほど、その効果が顕著に現れる。
さらに、本実施形態における、サブパーティション生成部106は、各サブパーティションSPT1〜SPTmに属する頂点v1〜vnの数と、サブパーティション間をまたぐ辺数とに基づいて、各頂点をサブパーティションに割り当てる。すなわち、各サブパーティションSPT1〜SPTmの大きさ(含まれる頂点の数)をなるべく均等にするとともに、サブパーティションをまたぐ辺をなるべく少なくするように、頂点v1〜vnをサブパーティションSPT1〜SPTmにマッピングする。これにより、各ワーカすなわちサーバ20−1〜20−Pの処理負担を均等化できるとともに、各ワーカ間の通信量も小さくすることができる。
〈変形例〉
本発明は上述した実施形態に限定されるものではなく、種々の変形が可能である。上述した実施形態は本発明を理解しやすく説明するために例示したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部を他の構成に置換することも可能である。また、図中に示した制御線や情報線は説明上必要と考えられるものを示しており、製品上で必要な全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。上記実施形態に対して可能な変形は、例えば以下のようなものである。
(1)上記実施形態におけるマスタ装置10のハードウエアは一般的なコンピュータによって実現できるため、上述したマスタ装置10内の処理を実行するプログラム等を記憶媒体に格納し、または伝送路を介して頒布してもよい。
(2)上記実施形態におけるワーカは物理サーバであるサーバ20−1〜20−Pであったが、サーバ20−1〜20−Pにおいて仮想マシンを起動させ、これら仮想マシンをワーカにしてもよい。
(3)上記実施形態においては、ワーカ(サーバ20−1〜20−P)に対するサブパーティションSPT1〜SPTmの配置を、コンシステントハッシュ法を用いて決定した。しかし、サブパーティションSPT1〜SPTmを配置する手法はコンシステントハッシュ法に限定されるわけではない。すなわち、ランダムに再配置した場合よりも転送するデータ量が少ない手法であれば、様々な手法を採用することができる。
10 マスタ装置
20−1〜20−P サーバ(ワーカ)
30 ネットワーク
104 サブパーティション・テーブル
106 サブパーティション生成部
108 ワーカ・テーブル
110 パーティショニング部
112 ワーカ制御部
S 分散処理システム(計算装置)
SPT1〜SPTm サブパーティション
1〜vn 頂点

Claims (5)

  1. 並列して計算処理を行う複数のワーカと、
    複数の前記ワーカの中の処理単位である複数の頂点と、前記ワーカとを管理するマスタ装置と
    を有する計算装置であって、
    前記マスタ装置は、複数の前記ワーカに対する複数の前記頂点の配置を、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法によって決定するパーティショニング部を有する
    ことを特徴とする計算装置。
  2. 前記手法は、コンシステントハッシュ法であることを特徴とする請求項1に記載の計算装置。
  3. 前記マスタ装置は、複数の前記頂点を複数のサブパーティションの何れかに割り当てるサブパーティション生成部をさらに有し、
    前記パーティショニング部は、前記サブパーティションを単位として、複数の前記ワーカに対する複数の前記頂点の配置を決定する
    ことを特徴とする請求項2に記載の計算装置。
  4. 前記サブパーティション生成部は、複数の前記サブパーティションに各々含まれる前記頂点の数を均等にし、複数の前記サブパーティション間をまたぐ辺数を最小化するように、複数の前記頂点の各々を複数の前記サブパーティションのうち何れかに割り当てる
    ことを特徴とする請求項3に記載の計算装置。
  5. 並列して計算処理を行う複数のワーカと、
    複数の前記ワーカの中の処理単位である複数の頂点と、前記ワーカとを管理するマスタ装置と
    を有する計算装置が行う計算方法であって、
    前記マスタ装置が、複数の前記ワーカに対する複数の前記頂点の配置を、再配置を行う際にランダムに再配置した場合よりも転送するデータ量が少ない手法によって決定する
    ことを特徴とする計算方法。
JP2016166183A 2016-08-26 2016-08-26 計算装置および計算方法 Active JP6650850B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016166183A JP6650850B2 (ja) 2016-08-26 2016-08-26 計算装置および計算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016166183A JP6650850B2 (ja) 2016-08-26 2016-08-26 計算装置および計算方法

Publications (2)

Publication Number Publication Date
JP2018032345A true JP2018032345A (ja) 2018-03-01
JP6650850B2 JP6650850B2 (ja) 2020-02-19

Family

ID=61304507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016166183A Active JP6650850B2 (ja) 2016-08-26 2016-08-26 計算装置および計算方法

Country Status (1)

Country Link
JP (1) JP6650850B2 (ja)

Also Published As

Publication number Publication date
JP6650850B2 (ja) 2020-02-19

Similar Documents

Publication Publication Date Title
KR102193012B1 (ko) 분산 처리 시스템 및 이의 동작 방법
Tziritas et al. Application-aware workload consolidation to minimize both energy consumption and network load in cloud environments
Sun et al. A cost efficient framework and algorithm for embedding dynamic virtual network requests
Heintz et al. End-to-end optimization for geo-distributed mapreduce
Ke et al. On traffic-aware partition and aggregation in mapreduce for big data applications
US20160350146A1 (en) Optimized hadoop task scheduler in an optimally placed virtualized hadoop cluster using network cost optimizations
WO2015176636A1 (zh) 分布式数据库服务管理系统
JP2008294717A (ja) 仮想ネットワーク構成方法及びネットワークシステム
Convolbo et al. GEODIS: towards the optimization of data locality-aware job scheduling in geo-distributed data centers
KR20140018187A (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
CN105391652A (zh) 基于usb重定向实现usb设备网络共享的系统及方法
Zhou et al. On achieving efficient data transfer for graph processing in geo-distributed datacenters
Chen et al. E2FS: an elastic storage system for cloud computing
CN106656525B (zh) 一种数据广播系统、数据广播方法及设备
CN107070709A (zh) 一种基于底层numa感知的nfv实现方法
Zhou et al. Cost-aware partitioning for efficient large graph processing in geo-distributed datacenters
Li et al. Wide-area spark streaming: Automated routing and batch sizing
Vig et al. An efficient distributed approach for load balancing in cloud computing
Saravanakumar et al. An Efficient On-Demand Virtual Machine Migration in Cloud Using Common Deployment Model.
CN114391137A (zh) 用于多核处理系统中的域分解感知处理器分配的系统、方法和计算机可存取介质
CN115774599A (zh) 用于使用容器编排服务管理的集群的分布式数据网格路由
JP2013182575A (ja) サーバおよびプログラム
JP6650850B2 (ja) 計算装置および計算方法
Roman et al. Understanding spark performance in hybrid and multi-site clouds
Wang et al. Coupling GPU and MPTCP to improve Hadoop/MapReduce performance

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160829

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: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

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: 20200114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200121

R150 Certificate of patent or registration of utility model

Ref document number: 6650850

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250