JP6450330B2 - 並列計算処理装置および並列計算処理方法 - Google Patents

並列計算処理装置および並列計算処理方法 Download PDF

Info

Publication number
JP6450330B2
JP6450330B2 JP2016018940A JP2016018940A JP6450330B2 JP 6450330 B2 JP6450330 B2 JP 6450330B2 JP 2016018940 A JP2016018940 A JP 2016018940A JP 2016018940 A JP2016018940 A JP 2016018940A JP 6450330 B2 JP6450330 B2 JP 6450330B2
Authority
JP
Japan
Prior art keywords
node
calculation
data
processing
lcx
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016018940A
Other languages
English (en)
Other versions
JP2017138780A (ja
Inventor
小林 弘明
弘明 小林
健 福元
健 福元
南 司
南 司
貴志 矢実
貴志 矢実
智洋 大谷
智洋 大谷
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.)
NTT Data Corp
Nippon Telegraph and Telephone 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 JP2016018940A priority Critical patent/JP6450330B2/ja
Publication of JP2017138780A publication Critical patent/JP2017138780A/ja
Application granted granted Critical
Publication of JP6450330B2 publication Critical patent/JP6450330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク上に分散配置されることによりクラスタを構成する並列計算処理装置および並列計算処理方法に関する。
並列計算モデルのなかで、並列化された処理のステップ毎にインタラクション(相互作用)が生じ、それを同期しながら計算を進めるモデルとしてBSP(Bulk Synchronous Parallel:バルク同期並列)がある(非特許文献1参照)。このBSP計算モデルは、例えば、地図上のある地点の人や車の移動に関するシミュレーションにおいて、地図をメッシュ分割し、あるメッシュに存在する人や車を数える際に、当該地区(メッシュ)内を数えるだけでなく、隣接する地区(メッシュ)との出入(out/in)も数えることで、より正確な数値を求めるというような計算モデルである。
このBSPは、「スーパーステップ(superstep)」という処理単位を繰り返し実行することにより、分散環境でのデータ処理を実行する。図1は、BSP計算モデルを説明するための図である。
スーパーステップは、図1(a)に示すように、スーパーステップ1(図1において「SS1」と記載。以下同様。)として「ローカル計算(LC:Local computation)」、スーパーステップ2(SS2)として「データ交換」、スーパーステップ3(SS3)といて「同期」の3つのフェーズから構成される。
具体的には、図1(a)示すように、複数のノード(ノード1〜ノード4)のうちのいずれかのノードがデータを受信すると、そのノード(例えば、ノード1)がスーパーステップ1(SS1)において、そのデータについての計算処理(ローカル計算(LC))を実行する。続いて、スーパーステップ2(SS2)において、各ノードが保持しているローカル計算の結果であるデータについて、ノード間でのデータ交換を実行する。次に、スーパーステップ3(SS3)において、同期処理を行う、より詳細には、すべてのノード間でのデータ交換の終了を待つ。
そして、Step1として、一連のスーパーステップの処理(SS1〜SS3)が終了すると、各ノードはその計算結果を保持した上で、次の一連のスーパーステップの処理であるStep2へと進む。
このBSPを、対象領域をメッシュ分割してシミュレーションする計算(メッシュ分割シミュレーション計算)を行う場合に採用すると、図1(b)に示す処理となる。メッシュ分割された対象領域は、各ノードに割り当てられる。ここで、分割されたメッシュのひとつとして「メッシュx」に注目すると、メッシュxについて計算ステップをStep nからStep n+1に進めるには、メッシュxとその隣接メッシュ(xnorth,xeast,xwest,xsouth)のStep nの計算結果が必要となる。
具体的には、このメッシュ分割シミュレーション計算では、スーパーステップ1(SS1)において、各メッシュにおける計算処理(ローカル計算(LC))を実行する。続いて、スーパーステップ2(SS2)において、各メッシュ(隣接メッシュとの間)の計算結果の送受信(データ交換)を実行する。次に、スーパーステップ3(SS3)において、すべての隣接メッシュからのデータ(計算結果)の受信完了待ちを行う。このスーパーステップの一連の処理を繰り返すことにより、BSP計算モデルによるシミュレーション計算を実行する。
Leslie G. Valiant, et al., "A bridging model for parallel computation", Communications of the ACM, 1990.
しかしながら、このBSP計算モデルは、以下に示す問題がある。
(問題1:負荷分散性の向上)
BSP計算モデルは、前ステップの計算結果を引き継いで次ステップ以降の計算を進めていく(つまり、「ステートフル」である。)ため、複数の計算ノードでクラスタを構成して処理を行う際に、信号の振分処理がボトルネック化する等の理由により、負荷分散性を向上させるのが難しい。
(問題2:可用性(耐障害性)の向上)
BSP計算モデルは、前ステップの計算結果を引き継いで次ステップ以降の計算を進めていく(つまり、「ステートフル」である。)ため、可用性(耐障害性)を高めるためには、データ保護・復旧等の仕組みが必要となる。また、BSP計算モデルは、ノードが相互にインタラクションしながら処理を進めるため、一部のノード障害が全体に波及してしまう。
図2は、問題2(可用性(耐障害性)の向上)について、詳細に説明するための図である。
図2(a)に示すようなメッシュ分割されたシミュレーション計算を複数のノードが並列実行することを前提とする。ここで、ある注目するメッシュxについて、Step nの計算時間(データが揃ってから計算が完了するまでの時間)をt(x,n)、データ送受信の通信遅延をlatency(簡易化のために定数とする。)とする。この場合、メッシュxについて、計算開始からStep nの計算とデータ送受信が完了するまでにかかる時間T(x,n)は、図1(b)の(式1)となる。
ここで、メッシュxの隣接メッシュをメッシュxnorth,メッシュxeast,メッシュxwest,メッシュxsouthとする。
このとき、すべてのメッシュについて、計算開始からStep nの計算が完了するまでにかかる時間T(all,n)は、図1(c)の(式2)となる。
(式1)および(式2)により示されるように、シミュレーション計算時間は、各ステップにおけるローカル計算(LC)の計算時間の最大値に依存する。そのため、どこか一箇所のメッシュでも著しく計算時間が延びた場合、シミュレーション全体の計算時間が著しく延び、最悪の場合には停止してしまう。つまり、一部のメッシュの処理遅延や停止により、シミュレーション全体が遅延もしくは停止することとなる(図1の符号α)。
(問題3:動的な構成変更への対応)
計算処理するリソースを効率的に利用するために、処理負荷に応じたクラスタ規模の動的な拡大・縮小を可能とする必要がある。その際、クラスタ構成の変更(ノードの増減設)時の振分先決定処理のための再計算や、ノード間の処理(データ)引継ぎのコストを抑える必要がある。
(問題4:汎用化)
BSP計算モデル等を採用する様々なアプリケーションに対し、問題1〜3を解決する汎用的なソリューションを提供する必要がある。
従来のBSP計算モデルでは、上記した問題1〜4が存在していたため、例えば、金融、通信、交通のようなミッションクリティカルなシステム(24時間365日、止まらないことを要求される、極めて高い信頼性が必要とされる業務に使用されるシステム)には、適用できなかった。
このような背景を鑑みて本発明がなされたのであり、本発明は、BSP計算モデルにおいて負荷分散性を向上させることができる、並列計算処理装置および並列計算処理方法を提供することを課題とする。
さらに、本発明は、BSP計算モデルをミッションクリティカルなシステムに提供可能とする、並列計算処理装置および並列計算処理方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、クラスタを構成するノードとしてネットワーク上に配置され、並列計算処理を実行する並列計算処理装置であって、複数の前記ノードの中から、計算処理を担当するノードであるマスタノードを決定し、前記マスタノードに計算処理を振り分ける振分処理部と、所定の計算ステップとして前記計算処理を実行する数値計算部と、前記マスタノードの計算処理の処理結果を、前記マスタノードと計算処理を並列に実行する1つ以上のネイバノードに送信するとともに、前記ネイバノードの計算処理の処理結果を受信し、前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定し、揃っていると判定した場合に、受信した前記ネイバノードからの処理結果を、前記数値計算部に出力するデータ送受信同期部と、前記データ送受信同期部が、前記ネイバノードからの処理結果が揃っていないと判定した場合に、前記次に実行する所定の計算ステップに必要となるデータとして、ダミーデータを生成し、前記数値計算部の計算処理を続行させる障害管理部と、を備えることを特徴とする並列計算処理装置とした。
また、請求項に記載の発明は、クラスタを構成するノードとしてネットワーク上に配置される並列計算処理装置の並列計算処理方法であって、前記並列計算処理装置が、複数の前記ノードの中から、計算処理を担当するノードであるマスタノードを決定し、前記マスタノードに計算処理を振り分けるステップと、所定の計算ステップとして前記計算処理を実行するステップと、前記マスタノードの計算処理の処理結果を、前記マスタノードと計算処理を並列に実行する1つ以上のネイバノードに送信するとともに、前記ネイバノードの計算処理の処理結果を受信し、前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定するステップと、を実行し、前記ネイバノードからの処理結果が揃っていると判定した場合に、受信した前記ネイバノードからの処理結果を用いて、次の所定の計算ステップを実行し、前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定するステップにおいて、前記ネイバノードからの処理結果が揃っていないと判定した場合に、前記次に実行する所定の計算ステップに必要となるデータとして、ダミーデータを生成し、前記計算処理を続行させるステップを、さらに実行することを特徴とする並列計算処理方法とした。
このようにすることで、並列計算処理装置は、その計算処理を担当するノード(マスタノード)に振り分けた上で計算ステップを実行し、計算処理の処理結果を得ることができる。そして、マスタノードが、自身の計算処理の処理結果をネイバノードに送信するとともに、ネイバノードから処理結果を受信し、ネイバノードからの処理結果が揃っていると判定した場合に、次の計算ステップを実行することができる。
よって、計算処理を各ノード(マスタノード)に振り分けることができるので、振分処理のボトルネック化を防ぐことができるとともに、並列計算処理の負荷分散性を向上させることができる。また、並列化された処理ステップごとにデータ(処理結果)を送受信し、それを同期しながら計算する処理(BSP計算モデル)を、所定の計算ステップとして汎用化して提供することが可能となる。
また、並列計算処理装置は、ネイバノードからの処理結果が揃っていないと判定した場合に、ダミーデータを生成し、そのダミーデータを用いて並列計算処理を続行することができる。
請求項2に記載の発明は、前記数値計算部が実行した前記マスタノードとしての前記計算処理の処理結果の複製データと、前記データ送受信同期部が前記ネイバノードから受信した処理結果の複製データとを生成し、前記生成した各前記複製データを、前記マスタノード以外の他のノードであるレプリカノードに送信するデータ格納処理部を、さらに備えることを特徴とする請求項1に記載の並列計算処理装置とした。
また、請求項に記載の発明は、前記マスタノードとしての前記計算処理の処理結果の複製データと、前記ネイバノードから受信した処理結果の複製データとを生成し、前記生成した各前記複製データを、前記マスタノード以外の他のノードであるレプリカノードに送信するステップを、さらに実行することを特徴とする請求項に記載の並列計算処理方法とした。
このように、並列計算処理装置は、マスタノードとして計算処理した処理結果と、ネイバノードから受信した処理結果とについて複製データを生成し、レプリカノードに記憶させることができる。
よって、マスタノードに障害が発生した場合であっても、レプリカノードの記憶された複製データにより、並列計算処理を継続することが可能となる。
請求項3に記載の発明は、前記マスタノードとして機能するノードの障害を検出した場合に、前記レプリカノードを前記マスタノードに昇格させる障害管理部を、さらに備えることを特徴とする請求項2に記載の並列計算処理装置とした。
また、請求項に記載の発明は、前記マスタノードとして機能するノードの障害を検出した場合に、前記レプリカノードを前記マスタノードに昇格させるステップを、さらに実行することを特徴とする請求項に記載の並列計算処理方法とした。
このように、並列計算処理装置は、マスタノードとして機能するノードの障害を検出した場合に、レプリカノードをマスタノードに昇格させることにより処理停止を防ぎ、昇格したマスタノードにより並列計算処理を継続することができる。
本発明によれば、BSP計算モデルにおいて負荷分散性を向上させる、並列計算処理装置および並列計算処理方法を提供することができる。
さらに、本発明によれば、BSP計算モデルをミッションクリティカルなシステムに適用可能とする、並列計算処理装置および並列計算処理方法を提供することができる。
BSP計算モデルを説明するための図である。 本発明の課題である、可用性(耐障害性)の向上についての問題を、詳細に説明するための図である。 本実施形態に係る並列計算処理装置を含む並列計算処理システムの構成を示す図である。 本実施形態に係る並列計算処理装置が実行する処理の流れを示すフローチャートである。
次に、本発明を実施するための形態(以下、「本実施形態」という。)における、並列計算処理装置1および並列計算処理方法について説明する。
図3は、本実施形態に係る並列計算処理装置1を含む並列計算処理システム1000の構成を示す図である。
並列計算処理システム1000では、ネットワーク上に分散配置されることによりクラスタを構成する複数の並列計算処理装置1が相互に通信接続される。この並列計算処理装置1は、上記したBSP計算モデル等の、並列化された処理のステップ毎にインタラクション(相互作用)が生じ、それを同期しながら計算を進める計算処理を用いて、分割シミュレーション計算等を実行する装置である。なお、以下の説明においては、図1(b)において示したメッシュ分割シミュレーション計算を例に説明するが、これに限定されない。
図3に示す並列計算処理システム1000を構成する各並列計算処理装置1は、以下において説明する機能それぞれを一つ並列計算処理装置1が備えるものであるが、説明をより分かりやすくするため、並列計算処理装置1が、図1(b)に示すようなメッシュ分割シミュレーション計算において、以下に示す3つの機能を実行する各ノードとして説明する。
1つ目の機能として説明するノード(並列計算処理装置1)は、信号を受信しその計算処理を担当するノード、つまり、図1(b)においてメッシュxを担当するノードである。このノードを、以下「LCxマスタノード1A」(マスタノード)と記して説明する。
2つ目の機能として説明するノード(並列計算処理装置1)は、上記したBSPのスーパーステップ2(SS2)において、計算結果(データ)の交換を行う、つまり、ステップ毎にLCxマスタノード1Aと相互にインタラクションが発生するノード(図1(b)の隣接メッシュを担当するノード)である。このノードを、以下「LCxネイバノード1B)」(ネイバノード)と記して説明する。
3つ目の機能として説明するノード(並列計算処理装置1)は、LCxマスタノード1Aに格納されるデータの複製を記憶するノードである。このノードを、以下「LCxレプリカノード1C」(レプリカノード)と記して説明する。
並列計算処理システム1000においてクラスタを構成する各並列計算処理装置1は、LCxマスタノード1A、LCxネイバノード1B、LCxレプリカノード1Cが実行する機能をそれぞれが備える。また、後記するように、LCxマスタノード1Aが計算結果(データ)の送受信を行うLCxネイバノード1Bは、当該LCxマスタノード1Aに対応する1台以上の並列計算処理装置1が予め設定される。また、LCxマスタノード1Aのデータの複製を記憶するLCxレプリカノード1Cも、当該LCxマスタノード1Aに対応する1台以上の並列計算処理装置1が予め設定される。
以下、並列計算処理装置1が備える各機能について詳細に説明する。
<並列計算処理装置の構成>
並列計算処理装置1は、不図示の、制御手段と、通信手段と、記憶手段とを備えるコンピュータである。
通信手段は、自身以外の他の並列計算処理装置1等との間で通信接続を行うための通信インタフェース等から構成される。
また、記憶手段は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等からなり、処理結果(データ)や、他の並列計算処理装置1との通信に必要となるアドレス(例えば、IPアドレス)等の設定情報が格納される。
制御手段は、並列計算処理装置1全体の制御を司り、図3に示すように、数値計算部10と、振分処理部20と、データ送受信同期部30と、データ格納処理部40と、障害管理部50とを含んで構成される。なお、並列計算処理装置1がLCxマスタノード1Aとして機能するときの各部の符号には「A」を付し、並列計算処理装置1がLCxネイバノード1Bとして機能するときの各部の符号には「B」を付し、並列計算処理装置1がLCxレプリカノード1Cとして機能するときの各部の符号には「C」を付して適宜説明する。
また、この制御手段は、例えば、記憶手段に格納されたプログラムをCPU(Central Processing Unit:図示省略)がRAM(図示省略)に展開し実行することで実現される。
数値計算部10は、上記したBSP計算モデルにおいて示したスーパーステップのローカル計算(LC:「SS1」)(所定の計算ステップ)を実行する。この数値計算部10は、LCx計算元データ取得部11、LCx計算部12、LCx計算結果出力部13を含んで構成される。
LCx計算元データ取得部11は、LCx(その並列計算処理装置1自身が担当するメッシュxのローカル計算)に必要なデータセット(隣接メッシュを担当するノード(LCxネイバノード1B)すべてからのデータ)を、データ送受信同期部30から取得する。
LCx計算部12は、LCx計算元データ取得部11が取得したデータセットを利用して計算処理を行う。
LCx計算結果出力部13は、LCx計算部12が計算した計算結果(データ)をデータ送受信同期部30に出力する。
このLCx計算部12のロジックを変更することにより、並列計算処理システム1000において、様々な用途の計算に対応可能となる。つまり、様々なアプリケーションに対応したロジックをLCx計算部12に設定することにより、汎用的に本システムを利用することができる。
振分処理部20は、外部から受信した信号に付されたキー情報(LCxマスタノード1Aを特定するID)に基づき、当該信号の振分先を決定し、その決定した振分先のノード(LCxマスタノード1A)に、その信号を振り分ける。また、振分処理部20は、データ送受信同期部30の制御のもとで、LCxネイバノード1Bに対し、計算結果(データ)の送受信を行う。
この振分処理部20は、データ振分部21、データ交換部22を含んで構成される。
データ振分部21は、例えば、コンシステントハッシュ法に基づき、外部から受信した信号に付されたキー情報(LCxマスタノード1Aを特定するID)を抽出してハッシュ値を算出することにより、LCxマスタノード1Aとなるノードを決定する。そして、データ振分部21は、その決定したLCxマスタノード1Aに受信した信号を送信する。
なお、図1(b)に示したようなメッシュ分割シミュレーション計算においては、分割したメッシュごとにID(メッシュID)が割り振られ、そのメッシュIDのメッシュの処理を担当するノード(LCxマスタノード1A(並列計算処理装置1))が予め設定される。そして、閉じたID空間上においてメッシュIDを例えば時計回りに配置しておき、信号を受信した際に、その信号に付されたキー情報から時計回りに辿った場合に最初に当たったメッシュIDのノード(並列計算処理装置1)が、その信号を担当するメッシュxに対応するLCxマスタノード1Aとなる。このとき、メッシュIDと並列計算処理装置1のアドレス(IPアドレス等)との対応表(メッシュID−ノード対応表)が予め各ノード(並列計算処理装置1)の記憶手段に記憶される。このコンシステントハッシュ法に基づく、分散処理システムでは、処理負荷に応じたノード(並列計算処理装置1)の増減設の際に、その増減設の対象となる並列計算処理装置1が保持するデータの移行処理(データの再配置)が、システム全体には及ばす一部のノード(並列計算処理装置1)に限定されるため、データ移行の処理負荷(再計算・再配置等のコスト)を軽減させ、動的な構成変更への対応を容易にすることができる。
このコンシステントハッシュ法については、「入江道生,他4名,“スケールアウトと柔軟な構成変更を実現するセッション制御サーバのクラスタモデル”,電子情報通信学会,2011年電子情報通信学会総合大会,通信講演論文集2,B−6−11」に詳しい。
データ交換部22は、データ送受信同期部30から取得した計算結果(データ)を、LCxネイバノード1Bに送信する。また、データ交換部22は、LCxネイバノード1Bから計算結果(データ)を受信し、データ送受信同期部30に出力する。
なお、図1(b)に示したようなメッシュ分割シミュレーション計算においては、そのLCxマスタノード1A(並列計算処理装置1)自身が担当するメッシュxの隣接メッシュの情報が予め記憶手段に記憶される。具体的には、隣接メッシュのメッシュIDとそのメッシュIDに対応付けられたLCxネイバノード1Bのアドレス(IPアドレス等)の対応表(隣接メッシュ対応表)が、予めLCxマスタノード1A(並列計算処理装置1)の記憶手段に記憶される。データ交換部22は、この対応表(隣接メッシュ対応表)を参照することにより、LCxネイバノード1Bとそのアドレス(IPアドレス等)を特定し、計算結果を送信する。
データ送受信同期部30は、LCxマスタノード1AとLCxネイバノード1Bとの間で、数値計算部10の計算結果(データ)の送受信等を行う。このデータ送受信同期部30は、ネイバノードデータ送信部31、ネイバノードデータ受信部32、LCx計算元データセット判定部33、LCx計算元データ出力部34、LCx計算結果取得部35を含んで構成される。
ネイバノードデータ送信部31は、LCxマスタノード1AとLCxネイバノード1Bとの間で、計算結果等のデータを送信する。具体的には、並列計算処理装置1がLCxマスタノード1Aとして機能するときは、データ送受信同期部30A内のネイバノードデータ送信部31が、振分処理部20A(データ交換部22)を介して、LCxネイバノード1Bに向けて計算結果等のデータを送信する。また、並列計算処理装置1がLCxネイバノード1Bとして機能するときは、データ送受信同期部30B内のネイバノードデータ送信部31が、振分処理部20B(データ交換部22)を介して、LCxマスタノード1Aに向けて計算結果等のデータを送信する。
ネイバノードデータ受信部32は、LCxマスタノード1AとLCxネイバノード1Bとの間で、計算結果等のデータを受信する。具体的には、並列計算処理装置1がLCxマスタノード1Aとして機能するときは、データ送受信同期部30A内のネイバノードデータ受信部32が、LCxネイバノード1Bから計算結果等のデータを受信する。また、並列計算処理装置1がLCxネイバノード1Bとして機能するときは、データ送受信同期部30B内のネイバノードデータ受信部32が、LCxマスタノード1Aからの計算結果等のデータを受信する。
このネイバノードデータ受信部32は、LCxマスタノード1Aの機能を実行する場合において、LCxネイバノード1Bからの計算結果(データ)を受信したときには、その計算結果(データ)をデータ格納処理部40(40A)に出力し記憶させる。また、ネイバノードデータ受信部32は、LCxネイバノード1Bの機能を実行する場合において、LCxマスタノード1Aからの計算結果(データ)を受信したときには、その計算結果(データ)をデータ格納処理部40(40B)に出力し記憶させる。
LCx計算元データセット判定部33は、データ格納処理部40(40A)に格納されるLCxネイバノード1Bからの計算結果(データ)の格納状況を監視し、予め設定されたすべてのLCxネイバノード1Bからの計算結果(データセット)が揃ったか否かを判定する。そして、LCx計算元データセット判定部33は、データセットが揃った場合に、その旨をLCx計算元データ出力部34に通知する。また、LCx計算元データセット判定部33は、所定期間が経過してもデータセットが揃わない場合、つまり、タイムアウト等を契機として、その旨を障害管理部50(50A)に通知する。
LCx計算元データ出力部34は、LCx計算元データセット判定部33から、データセットが揃った旨の通知を受信した場合に、その計算結果(データ)を記憶手段(不図示)から取得し数値計算部10(10A)に出力する。
LCx計算結果取得部35は、数値計算部10から計算結果(データ)を取得すると、その計算結果(データ)をデータ格納処理部40に出力し記憶させる。また、LCx計算結果取得部35は、数値計算部10から取得した計算結果(データ)を、ネイバノードデータ送信部31に出力する。
なお、このデータ送受信同期部30が、上記したBSP計算モデル(図1参照)において示したスーパーステップのデータ交換(「SS2」)および同期(「SS3」)を実行する。
データ格納処理部40は、LCxマスタノード1AやLCxネイバノード1Bが計算した計算結果(データ)を記憶手段(不図示)に格納するとともに、データの複製を作成(レプリケーション)し、LCxレプリカノード1Cに保存させる。このデータ格納処理部40は、データ格納部41、レプリケーション部42を含んで構成される。
データ格納部41は、データ送受信同期部30(具体的には、ネイバノードデータ受信部32やLCx計算結果取得部35等)から計算結果であるデータを受け取り、記憶手段(不図示)に格納する。
レプリケーション部42は、データ格納部41が格納したデータ(図3のデータ100)についての複製データを作成し、そのLCxマスタノード1Aに対応して予め設定された1つ以上のLCxレプリカノード1Cに向けて、その複製データを送信することにより保存させる。
また、このレプリケーション部42は、LCxレプリカノード1Cの機能を実行する場合において、LCxマスタノード1Aから複製データ(データ100)を受信すると、データ格納部41を介して、自身の記憶手段に記憶させる。
レプリケーション部42は、LCxマスタノード1A(並列計算処理装置1)自身に格納したデータ100の複製データを記憶させるLCxレプリカノード1Cを、例えば、コンシステントハッシュ法に基づき特定する。具体的には、レプリケーション部42は、上記した閉じたID空間上で、自身が担当するメッシュxのメッシュIDから時計回りに次に位置するメッシュIDのノード(並列計算処理装置1)をLCxレプリカノード1Cとして特定する。さらに、レプリケーション部42は、時計回りにその次に位置するメッシュIDのノード(並列計算処理装置1)をLCxレプリカノード1Cとして特定する。このようにして、レプリケーション部42は、設定された冗長度に対応する数のLCxレプリカノード1Cを特定し、複製データを送信することにより、LCxマスタノード1Aのデータの複製データを記憶させることができる。
障害管理部50は、LCxマスタノード1Aとしての並列計算処理装置1自身の障害や、LCxネイバノード1Bとの間の障害、LCxレプリカノード1Cの障害等を監視するとともに、障害を検知した場合には、処理停止を防ぐために以下に示す処理を実行する。
(1)LCxマスタノード1Aのローカル計算(LC)での障害
LCxマスタノード1Aの障害管理部50Aは、ローカル計算(LC)中において、自身のノードの障害を検知した場合には、次の処理を実行する。
(1−1)障害管理部50Aは、LCxレプリカノード1CをLCxマスタノード1Aに昇格させ、昇格したLCxマスタノード1Aにローカル計算(LC)を実行させる。
この場合、1つ以上のLCxレプリカノード1Cのうちのいずれか1つをLCxマスタノード1Aに昇格させる。このLCxマスタノード1A(昇格するLCxレプリカノード1C)を決定するロジックは予め設定しておく。例えば、障害管理部50Aは、コンシステントハッシュ法に基づき、自身のメッシュxのメッシュIDから閉じたID空間において時計回りに次に位置するメッシュIDのノード(LCxレプリカノード1C)を特定し、LCxマスタノード1Aに昇格するノードとして決定する。障害管理部50Aは、この決定したLCxレプリカノード1Cに、LCxマスタノード1Aに昇格する旨の通知を送信すること等により、そのLCxレプリカノード1Cを、LCxマスタノード1Aに昇格させる。
(1−2)障害管理部50Aは、LCxマスタノード1Aにおけるローカル計算(LC)と同時に、LCxレプリカノード1Cにおいてもローカル計算(LC)を実行させる。なお、ローカル計算(LC)を同時に実行させるLCxレプリカノード1Cを決定するロジックは上記と同様、予め設定しておく。
これにより、例えば、障害管理部50Aが自身のLCxマスタノード1Aの軽微な障害を検知した場合に、予備的に並行してLCxレプリカノード1Cにおいて、処理を実行しておくことができる。よって、LCxマスタノード1Aがその後処理停止等に陥った場合に、即座に処理を引き継ぐことができる。
(1−3)障害管理部50Aは、ダミーデータを用いてローカル計算(LC)を数値計算部10Aに実行させる。
障害管理部50Aは、例えば、同じ処理要求(信号)に対する過去の計算結果(データ)の平均値を計算し、その平均値をダミーデータとする。このダミーデータを用いて、数値計算部10Aがローカル計算(LC)を実行することにより、計算精度は低下するが、並列計算処理装置1の処置停止を防ぐことができる。
(2)LCxネイバノード1Bへの処理結果(データ)送信中のLCxマスタノード1Aの障害
LCxマスタノード1Aの障害管理部50Aは、LCxネイバノード1Bへの処理結果(データ)送信中において、LCxマスタノード1Aに障害が発生した場合には、次の処理を実行する。
(2−1)障害管理部50Aは、LCxレプリカノード1CをLCxマスタノード1Aに昇格させ、昇格したLCxマスタノード1Aが、LCxネイバノード1Bへの計算結果(データ)の再送信を実行する。
(2−2)LCxネイバノード1Bのデータ送受信同期部30B内のLCx計算元データセット判定部33が、タイムアウト(所定の時間経過)等によりLCxマスタノード1Aからの計算結果(データ)を受信できていないと判定した旨を、障害管理部50Bが受け取る。これにより、LCxネイバノード1Bの障害管理部50Bが、LCxマスタノード1Aからの計算結果のダミーデータを生成し、数値計算部10Bに処理を続行させる。
このダミーデータは、過去にLCxマスタノード1Aから受信した計算結果(データ)の平均値でもよい。また、障害が発生したLCxマスタノード1A以外の並列計算処理装置1から受信したデータの平均値等をダミーデータとして利用してもよい。
(3)LCxネイバノード1Bからの処理結果(データ)受信中のLCxマスタノード1Aの障害
LCxマスタノード1Aの障害管理部50Aは、LCxネイバノード1Bからの処理結果(データ)受信中において、LCxマスタノード1Aに障害が発生した場合には、次の処理を実行する。
(3−1)障害管理部50は、LCxレプリカノード1CをLCxマスタノード1Aに昇格させ、昇格したLCxマスタノード1Aが、LCxネイバノード1Bからの計算結果(データ)を再受信する。データの送受信は、例えば、PUSH型、PULL型のいずれを採用してもよい。例えば、昇格したLCxマスタノード1Aが、タイムアウト等を契機として、まだ処理結果(データ)を受信していないLCxネイバノード1Bに対し、データの再送信を要求することにより、計算結果(データ)を受信する。
(3−2)LCxマスタノード1Aのデータ送受信同期部30A内のLCx計算元データセット判定部33が、タイムアウト(所定の時間経過)等によりあるLCxネイバノード1Bからの計算結果(データ)を受信できていないと判定した旨を、障害管理部50Aが受け取る。このとき、障害管理部50Aは、そのLCxネイバノード1Bからの計算結果のダミーデータを生成し、数値計算部10Aに処理を続行させる。
このダミーデータは、過去にそのLCxネイバノード1Bから受信した計算結果(データ)の平均値でもよいし、当該LCxネイバノード1B以外の他のLCxネイバノード1Bから受信した計算結果(データ)の平均値等でもよい。
(4)LCxレプリカノード1Cの障害
LCxマスタノード1Aの障害管理部50Aは、LCxレプリカノード1Cの障害を検知した場合には、正常な他の並列計算処理装置1から、新たなLCxレプリカノード1Cを選出する。
この新たなLCxレプリカノード1Cを決定するロジックは予め設定しておくものとする。例えば、障害管理部50Aは、コンシステントハッシュ法に基づき、自身のメッシュxのメッシュIDから閉じたID空間において時計回りに次やその次等に位置するメッシュIDのノードとして決定(冗長度の対応して決定)したノード(LCxレプリカノード1C)のさらにその次に位置するメッシュIDのノードを、新たなLCxレプリカノード1Cとして決定してもよい。これにより、障害管理部50は、システム全体のとしての冗長度を回復することができる。
(5)LCxネイバノード1Bの障害
LCxネイバノード1Bに障害が発生した場合には、その並列計算処理装置1の障害管理部50Bにより、その並列計算処理装置1のLCxレプリカノード1Cを、LCxマスタノード1Aとして昇格する処理が行われる(上記したLCxマスタノード1Aにおける障害対応(1−1)と同様の処理)。これにより、障害が発生したLCxネイバノード1BのLCxレプリカノード1Cが、LCxネイバノード1Bの機能を実行することができ、処理停止を防ぐことができる。
<処理の流れ>
次に、並列計算処理装置1が実行する処理の流れについて説明する。
図4は、本実施形態に係る並列計算処理装置1が実行する処理の流れを示すフローチャートである。図4においては、並列計算処理装置1がLCxマスタノード1Aである場合の処理に沿って説明するが、各並列計算処理装置1は、自身がLCxマスタノード1Aである場合の処理、LCxネイバノード1Bである場合の処理、LCxレプリカノード1Cである場合の処理のいずれも実行することができる。
また、ここでは、複数の並列計算処理装置1のいずれかが受信した信号が、その振分処理部20により、その信号を担当するメッシュxに対応する並列計算処理装置1(LCxマスタノード1A)に振り分けられたものとして説明する。
まず、LCxマスタノード1Aの振分処理部20は、信号(データ)を受信した場合に(ステップS1)、コンシステントハッシュ法等に基づき、当該信号について自身が処理担当となる信号(データ)と判定し、その信号(データ)を、数値計算部10Aに出力する。そして、数値計算部10A(LCx計算部12)が、不図示の記憶手段に記憶されているデータ(各LCxネイバノード1Bの計算結果)を取得し、ローカル計算を実行する(ステップS2)。なお、初期状態において、各LCxネイバノード1Bの計算結果(データ)がまだ記憶手段に記憶されていない場合には、予め設定した初期値等を取得して、ローカル計算(LC)が実行される。
続いて、数値計算部10AのLCx計算結果出力部13が、計算結果(データ)をデータ送受信同期部30Aに出力する。計算結果(データ)を取得したデータ送受信同期部30AのLCx計算結果取得部35は、そのデータを、データ格納処理部40Aに出力する。そして、データ格納処理部40Aのデータ格納部41が、当該データを記憶手段に格納する(ステップS3)。
次に、データ格納処理部40Aのレプリケーション部42は、データ格納部41が格納したデータの複製データを生成し(レプリケーション:ステップS4)、LCxレプリカノード1Cに送信することにより、その複製データをLCxレプリカノード1Cの記憶手段に格納させる(ステップS5)。
続いて、LCxマスタノード1Aのデータ送受信同期部30A(ネイバノードデータ送信部31)は、数値計算部10Aのローカル計算の計算結果(データ)を、振分処理部20A(データ交換部22)を介して、各LCxネイバノード1Bに送信する(ステップS6)。これにより、各LCxネイバノード1Bのデータ送受信同期部30B(ネイバノードデータ受信部32)が計算結果(データ)を受信し、記憶手段に格納する。
次に、各LCxネイバノード1Bのデータ送受信同期部30B(ネイバノードデータ送信部31)は、自身の数値計算部10Bのローカル計算の計算結果(データ)を、振分処理部20B(データ交換部22)を介して、LCxマスタノード1Aに送信する(ステップS7)。
LCxマスタノード1Aのデータ送受信同期部30A(ネイバノードデータ受信部32)は、LCxネイバノード1Bから計算結果(データ)を受信すると、データ格納処理部40Aに出力する。そして、データ格納処理部40Aのデータ格納部41が、当該データを記憶手段(不図示)に格納する。また、データ格納処理部40Aのレプリケーション部42が、LCxネイバノード1Bから取得した計算結果(データ)の複製データを生成し、LCxレプリカノード1Cに送信することにより(ステップS8)、その複製データをLCxレプリカノード1Cの記憶手段に格納させる(ステップS9)。
このステップS8およびステップS9の処理は、LCxネイバノード1Bから計算結果(データ)を受信する度に実行される。これにより、各LCxネイバノード1Bから計算結果(データ)を受信中にLCxマスタノード1Aに障害が発生した場合においても、それまでに受信したデータをLCxレプリカノード1Cが引継いで直ちに処理を続行させることができる。
次に、LCxマスタノード1Aのデータ送受信同期部30A(LCx計算元データセット判定部33)は、設定されているすべてのLCxネイバノード1Bから、計算結果(データ)を受信し記憶手段に格納したか否かを判定する。つまり、すべてのデータ(データセット)が揃ったか否かを判定する(ステップS10)。そして、LCx計算元データセット判定部33が、所定の時間内において、すべてのデータ(データセット)が揃ったと判定した場合には(ステップS10→Yes)、ステップS2に戻り、次の処理ステップに進む。一方、LCx計算元データセット判定部33が、所定の時間内において、すべてのデータ(データセット)が揃っていない、つまり受信できなかったデータがあると判定した場合には(ステップS10→No)、その旨の情報を、障害管理部50Aに出力する。そして、障害管理部50Aが、該当する障害に対応する処理を実行する(ステップS11)。例えば、障害管理部50Aは、LCxレプリカノード1CをLCxマスタノード1Aの昇格させることにより、処理を続行させたり、ダミーデータを利用して処理を続行させたりする等の処理を行う。そして、ステップS2に戻る。これにより、LCxマスタノード1Aの処理停止を防ぐことができる。
以上説明した本実施形態に係る並列計算処理装置1および並列計算処理方法によれば、以下に示す顕著な効果を奏することができる。
(負荷分散性の向上)
従来のBSP計算モデルでは、複数の計算ノードでクラスタを構成して処理を行う際に、信号の振分処理がボトルネック化する等の理由により、負荷分散性を向上させるのが難しかった。しかしながら、本実施形態に係る並列計算処理装置1によれば、例えば、コンシステントハッシュ法等を用いて、信号を各計算ノードに振り分けることができる。よって、振分処理のボトルネック化を防ぐことができるとともに、並列計算処理の負荷分散性を向上させることができる。
(可用性(耐障害性)の向上)
従来のBSP計算モデルで問題であった、可用性(耐障害性)を高めるための、データの保護・復旧等の仕組みを、LCxレプリカノード1Cを設けること等により実現することができる。具体的には、LCxマスタノード1Aが障害を検知した場合に、障害管理部50により、LCxレプリカノード1CをLCxマスタノード1Aに昇格させたり、LCxレプリカノード1CをLCxマスタノード1Aと同時に予備的に実行させたり、ダミーデータを用いること等により、一部のノード障害が全体に波及しないようにして、処理を続行することができる。
(動的な構成変更への対応)
本実施形態に係る並列計算処理装置1は、信号の振分処理や、LCxレプリカノード1Cの決定処理等を、コンシステントハッシュ法等を用いて実行する。これにより、クラスタ構成の変更(ノードの増減設)があった場合における、ノード間の処理(データ)の引継ぎコストを抑えることができる。よって、処理負荷に応じたクラスタ規模の動的な拡大・縮小への対応が可能となる。
(汎用化)
本実施形態に係る並列計算処理装置1によれば、BSP計算モデル等を採用する様々なアプリケーションを、LCx計算部12に適用することができる。これにより、汎用的なソリューションを提供することが可能となる。
このように、本実施形態に係る並列計算処理装置1および並列計算処理方法によれば、上記の効果を奏することができ、並列計算処理の負荷分散性を向上させるとともに、BSP計算モデルをミッションクリティカルなシステムに適用することが可能となる。
1 並列計算処理装置
1A LCxマスタノード(マスタノード)
1B LCxネイバノード(ネイバノード)
1C LCxレプリカノード(レプリカノード)
10 数値計算部
11 LCx計算元データ取得部
12 LCx計算部
13 LCx計算結果出力部
20 振分処理部
21 データ振分部
22 データ交換部
30 データ送受信同期部
31 ネイバノードデータ送信部
32 ネイバノードデータ受信部
33 LCx計算元データセット判定部
34 LCx計算元データ出力部
35 LCx計算結果取得部
40 データ格納処理部
41 データ格納部
42 レプリケーション部
50 障害管理部
1000 並列計算処理システム

Claims (6)

  1. クラスタを構成するノードとしてネットワーク上に配置され、並列計算処理を実行する並列計算処理装置であって、
    複数の前記ノードの中から、計算処理を担当するノードであるマスタノードを決定し、前記マスタノードに計算処理を振り分ける振分処理部と、
    所定の計算ステップとして前記計算処理を実行する数値計算部と、
    前記マスタノードの計算処理の処理結果を、前記マスタノードと計算処理を並列に実行する1つ以上のネイバノードに送信するとともに、前記ネイバノードの計算処理の処理結果を受信し、前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定し、揃っていると判定した場合に、受信した前記ネイバノードからの処理結果を、前記数値計算部に出力するデータ送受信同期部と、
    前記データ送受信同期部が、前記ネイバノードからの処理結果が揃っていないと判定した場合に、前記次に実行する所定の計算ステップに必要となるデータとして、ダミーデータを生成し、前記数値計算部の計算処理を続行させる障害管理部と、
    を備えることを特徴とする並列計算処理装置。
  2. 前記数値計算部が実行した前記マスタノードとしての前記計算処理の処理結果の複製データと、前記データ送受信同期部が前記ネイバノードから受信した処理結果の複製データとを生成し、前記生成した各前記複製データを、前記マスタノード以外の他のノードであるレプリカノードに送信するデータ格納処理部を、さらに備えること
    を特徴とする請求項1に記載の並列計算処理装置。
  3. 前記マスタノードとして機能するノードの障害を検出した場合に、前記レプリカノードを前記マスタノードに昇格させる障害管理部を、さらに備えること
    を特徴とする請求項2に記載の並列計算処理装置。
  4. クラスタを構成するノードとしてネットワーク上に配置される並列計算処理装置の並列計算処理方法であって、
    前記並列計算処理装置は、
    複数の前記ノードの中から、計算処理を担当するノードであるマスタノードを決定し、前記マスタノードに計算処理を振り分けるステップと、
    所定の計算ステップとして前記計算処理を実行するステップと、
    前記マスタノードの計算処理の処理結果を、前記マスタノードと計算処理を並列に実行する1つ以上のネイバノードに送信するとともに、前記ネイバノードの計算処理の処理結果を受信し、前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定するステップと、を実行し、
    前記ネイバノードからの処理結果が揃っていると判定した場合に、受信した前記ネイバノードからの処理結果を用いて、次の所定の計算ステップを実行し、
    前記所定の計算ステップの次に実行する所定の計算ステップに必要な前記ネイバノードからの処理結果が揃っているか否かを判定するステップにおいて、前記ネイバノードからの処理結果が揃っていないと判定した場合に、前記次に実行する所定の計算ステップに必要となるデータとして、ダミーデータを生成し、前記計算処理を続行させるステップを、さらに実行すること
    を特徴とする並列計算処理方法。
  5. 前記マスタノードとしての前記計算処理の処理結果の複製データと、前記ネイバノードから受信した処理結果の複製データとを生成し、前記生成した各前記複製データを、前記マスタノード以外の他のノードであるレプリカノードに送信するステップを、さらに実行すること
    を特徴とする請求項に記載の並列計算処理方法。
  6. 前記マスタノードとして機能するノードの障害を検出した場合に、前記レプリカノードを前記マスタノードに昇格させるステップを、さらに実行すること
    を特徴とする請求項に記載の並列計算処理方法。
JP2016018940A 2016-02-03 2016-02-03 並列計算処理装置および並列計算処理方法 Active JP6450330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016018940A JP6450330B2 (ja) 2016-02-03 2016-02-03 並列計算処理装置および並列計算処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016018940A JP6450330B2 (ja) 2016-02-03 2016-02-03 並列計算処理装置および並列計算処理方法

Publications (2)

Publication Number Publication Date
JP2017138780A JP2017138780A (ja) 2017-08-10
JP6450330B2 true JP6450330B2 (ja) 2019-01-09

Family

ID=59566841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016018940A Active JP6450330B2 (ja) 2016-02-03 2016-02-03 並列計算処理装置および並列計算処理方法

Country Status (1)

Country Link
JP (1) JP6450330B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2569276B (en) 2017-10-20 2020-10-14 Graphcore Ltd Compiler method
GB201717295D0 (en) 2017-10-20 2017-12-06 Graphcore Ltd Synchronization in a multi-tile processing array
GB2569274B (en) 2017-10-20 2020-07-15 Graphcore Ltd Synchronization amongst processor tiles
GB2569271B (en) * 2017-10-20 2020-05-13 Graphcore Ltd Synchronization with a host processor
GB2569275B (en) 2017-10-20 2020-06-03 Graphcore Ltd Time deterministic exchange
US10963003B2 (en) 2017-10-20 2021-03-30 Graphcore Limited Synchronization in a multi-tile processing array
JP7192388B2 (ja) * 2018-10-22 2022-12-20 富士通株式会社 並列処理装置、並列演算実行プログラムおよびバックアップ方法
GB2579412B (en) 2018-11-30 2020-12-23 Graphcore Ltd Gateway pull model
JP7331604B2 (ja) * 2019-10-04 2023-08-23 富士通株式会社 情報処理システム、情報処理方法、および情報処理プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069189A (ja) * 2011-09-26 2013-04-18 Hitachi Ltd 並列分散処理方法および並列分散処理システム

Also Published As

Publication number Publication date
JP2017138780A (ja) 2017-08-10

Similar Documents

Publication Publication Date Title
JP6450330B2 (ja) 並列計算処理装置および並列計算処理方法
US10990561B2 (en) Parameter server and method for sharing distributed deep learning parameter using the same
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
CN102521038B (zh) 基于分布式文件系统的虚拟机迁移方法和装置
CN106899648B (zh) 一种数据处理方法和设备
CN106843745A (zh) 容量扩展方法及装置
CN106603692B (zh) 一种分布式存储系统中的数据存储方法及装置
CN106855834B (zh) 一种数据备份方法、装置和系统
KR20200080286A (ko) 컴퓨팅 클러스터 인터페이스 관리
US11243980B2 (en) Monotonic transactions in a multi-master database with loosely coupled nodes
KR20210106929A (ko) 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법
CN104937565B (zh) 从第一节点到第二节点的地址范围传送
CN113407637A (zh) 一种数据同步方法、装置、电子设备以及存储介质
CN103428288A (zh) 基于分区状态表和协调节点的副本同步方法
CN111291062A (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN105740091B (zh) 数据备份、恢复方法和设备
US20130226867A1 (en) Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system
US10169440B2 (en) Synchronous data replication in a content management system
CN105279029A (zh) 一种基于作业计算资源的局部存储动态分配方法
JP6535304B2 (ja) 分散同期処理システムおよび分散同期処理方法
CN105007233A (zh) 一种基于dhcp服务器集群负载分配地址的方法
US11327785B2 (en) Computing system including enhanced application performance based on last completed operation sequence value
CN109947593B (zh) 数据容灾方法、系统、策略仲裁装置和存储介质
US10666727B2 (en) Distributed processing network operations
CN117290076B (zh) 一种易扩缩容的多并发任务派发的设备管理方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181207

R150 Certificate of patent or registration of utility model

Ref document number: 6450330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250