JP7277756B2 - Information processing equipment - Google Patents
Information processing equipment Download PDFInfo
- Publication number
- JP7277756B2 JP7277756B2 JP2019142773A JP2019142773A JP7277756B2 JP 7277756 B2 JP7277756 B2 JP 7277756B2 JP 2019142773 A JP2019142773 A JP 2019142773A JP 2019142773 A JP2019142773 A JP 2019142773A JP 7277756 B2 JP7277756 B2 JP 7277756B2
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- node
- vector
- nodes
- information 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.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は、情報処理装置に関する。 The present invention relates to an information processing device.
分散メモリ型の並列計算機においては、計算ジョブを複数のノードに分散し、各ノードが並列して計算を行うことにより大規模な計算を実行する。各ノードは、ネットワークを介して相互に接続されており、相互にデータを交換しながら並列計算を行う。 In a distributed memory type parallel computer, a large-scale calculation is executed by distributing a calculation job to a plurality of nodes and performing calculations in parallel on each node. Each node is interconnected via a network and performs parallel computation while exchanging data with each other.
各ノード間の通信はMPI(Message Passing Interface)を利用して行われる。MPIは、各ノードが相互に通信を行うためのAPI(Application Programming Interface)である。MPIを使用することにより、複数のノードが協調して様々な集団通信を実現できる。 Communication between nodes is performed using MPI (Message Passing Interface). MPI is an API (Application Programming Interface) for mutual communication between nodes. By using MPI, multiple nodes can cooperate to realize various collective communications.
例えば、複数のノードのうちの一つを受信ノードとして定めておき、計算が正常に終了しなかった一部のノードが受信ノードにエラーコード送信することにより、計算ジョブが正常終了していないことを受信ノードが判断できる。 For example, one of a plurality of nodes is defined as a receiving node, and some nodes that did not complete the calculation normally send an error code to the receiving node, so that the calculation job does not end normally. can be determined by the receiving node.
この場合、エラーコード等のデータの送受信に要する処理時間を短縮するために、送信側のノードがデータを符号化してその情報量を小さくし、受信ノードがデータを復号する方法が提案されている(例えば特許文献1)。しかし、この方法は、代数方程式の根を求めることによりデータを復号しており、復号に要する計算量が膨大となってしまう。 In this case, in order to shorten the processing time required for transmitting and receiving data such as error codes, a method has been proposed in which the transmitting node encodes the data to reduce the amount of information, and the receiving node decodes the data. (For example, Patent Document 1). However, this method decodes data by finding the roots of algebraic equations, and the amount of calculation required for decoding becomes enormous.
一側面によれば、本発明は、計算量を低減することを目的とする。 According to one aspect, the present invention aims to reduce the amount of calculation.
一側面によれば、複数の送信ノード、演算装置、及び受信ノードを備えた情報処理装置であって、前記送信ノードは、複数の前記送信ノードの各々に対応付けられた複数の符号化ベクトルのうち、自身に対応する前記符号化ベクトルを送信データでスカラ倍することにより、前記送信データを符号化した第1のベクトルを算出する第1の算出部と、前記第1のベクトルを前記演算装置に送信する第1の送信部とを有し、前記演算装置は、複数の前記送信ノードの各々が送信した前記第1のベクトル同士を加算した第2のベクトルを算出する第2の算出部と、前記第2のベクトルを前記受信ノードに送信する第2の送信部とを有し、前記受信ノードは、前記送信ノードの各々に対応する前記符号化ベクトルの各成分を係数とする連立一次方程式であって、前記第2のベクトルの各成分を定数項とする連立一次方程式を解くことにより前記送信データを復号する復号部を有する情報処理装置が提供される。 According to one aspect, an information processing apparatus comprising a plurality of transmitting nodes, an arithmetic device, and a receiving node, wherein the transmitting node generates a plurality of encoded vectors associated with each of the plurality of transmitting nodes. Among them, a first calculation unit for calculating a first vector obtained by encoding the transmission data by scalar-multiplying the encoding vector corresponding to itself by the transmission data; and a first transmitting unit that transmits to a plurality of transmitting nodes, and a second computing unit that computes a second vector by adding together the first vectors transmitted by each of the plurality of transmitting nodes. , and a second transmitter for transmitting the second vector to the receiving node, wherein the receiving node is a system of linear equations in which each component of the encoded vector corresponding to each of the transmitting nodes is a coefficient. and an information processing apparatus having a decoding unit that decodes the transmission data by solving simultaneous linear equations in which each component of the second vector is a constant term.
一側面によれば、計算量を低減できる。 According to one aspect, the amount of calculation can be reduced.
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
図1は、検討に使用した並列計算機の構成図である。
Prior to the description of the present embodiment, matters examined by the inventors of the present application will be described.
FIG. 1 is a configuration diagram of a parallel computer used for the study.
この並列計算機1は、分散メモリ型の並列計算機であり、複数の送信ノード2、リダクション装置3、及び受信ノード4を有する。
This
このうち、複数の送信ノード2の各々は、計算ジョブを並列して実行する計算機である。並列計算機1の規模にもよるが、送信ノード2の個数は数100~数10万程度である。これらの大部分の送信ノード2においては計算ジョブが正常に終了するが、数個程度の送信ノード2では計算ジョブの実行中に異常が発生する場合がある。そのような異常としてはハードウェアの障害やオーバーフロー等がある。
Among these, each of the plurality of
異常が発生した送信ノード2は、その異常を識別するエラーコードを送信データとしてリダクション装置3に送信する。ここでは、エラーコードは整数値とする。例えば、計算時にオーバーフローが生じた場合のエラーコードは「2」とし、ハードウェアの障害によって計算が終了した場合のエラーコードは「3」等とする。
The
なお、計算が正常に終了した送信ノード2は、乗法の単位元である「1」をエラーコードとして送信する。
Note that the
リダクション装置3は、送信ノード2からエラーコードを受信し、そのエラーコードに対してMPIのリダクション操作を行う装置である。リダクション装置3が行うリダクション操作にはReduceとAllreduceとがある。Reduceは、エラーコードに対して種々の演算を行い、その演算結果をリダクション装置3のみが保有する操作である。また、Allreduceは、その演算結果を複数の送信ノード2に共有させる操作である。
The
この例では、リダクション装置3は、異常が発生した全ての送信ノード2のエラーコードの総積を求める乗法のReduceを行うものとする。例えば、異常が発生した三つの送信ノード2がそれぞれ「2」、「3」、「2」のエラーコードを送信し、残りの正常な送信ノード2がエラーコードとして「1」を送信した場合を考える。この場合は、リダクション装置3は、これらのエラーコードの総積として12(=2×3×2)を得る。
In this example, it is assumed that the
そして、受信ノード4は、リダクション装置3からエラーコードの総積を受信し、その総積から以下のようにエラーコードを求める。
Then, the
まず、送信ノード2の個数をkとし、i番目の送信ノード2が整数値のエラーコードEiを生成する。また、相異なるk個の整数Ai(i=1, …, k)を予め用意しておき、これらの整数を全ての送信ノード2に配布しておく。
First, let the number of sending
この場合、i番目の送信ノード2は、リダクション装置3にk個のデータA1+Ei、A2+Ei、…、Ak+Eiを送信する。
In this case, the i-
リダクション装置3は、全ての送信ノード2が送信したこれらのデータに対して以下の式(1)のリダクション操作を行うことによりk個の値G(Ai)を算出し、これらの値の各々を受信ノード4に送信する。
The
ここで、式(1)の整数Aiを未知数Xに置き換えた式(2)を考える。 Here, consider the equation (2) in which the integer A i in the equation (1) is replaced with the unknown X.
F(X):=G(-X)とすると、代数方程式F(X)=0の根はエラーコードEi(i=1, …, k)となる。これを利用して、受信ノード4は、リダクション装置3から受信したk個の値G(Ai)を用いてエラーコードEi(i=1, …, k)を復号する。
Letting F(X):=G(-X), the root of the algebraic equation F(X)=0 is the error code E i (i=1, …, k). Using this, the
以上説明した並列計算機1によれば、受信ノード4が代数方程式F(X)=0の根を求めることにより、k個の送信ノード2が送信したエラーコードEi(i=1, …, k)を復号することができる。
According to the
特に、この例では、異常が発生した一部の送信ノード2のみが通信に参加する。このような通信は情報集約型通信とも呼ばれる。情報集約型通信では、全ての送信ノード2が通信に参加する場合と比較して通信速度が高速になることが期待できる。
Particularly, in this example, only some
しかしながら、この方法では、代数方程式の根を求めるために膨大な計算量が必要となり、受信ノード4が高速にエラーコードEi(i=1, …, k)を復号することができない。
However, this method requires a huge amount of calculation to find the roots of the algebraic equation, and the
以下に、復号に要する計算量を低減することができる本実施形態について説明する。 The present embodiment capable of reducing the amount of calculation required for decoding will be described below.
(本実施形態)
[ハードウェア構成]
図2は、本実施形態に係る情報処理装置のハードウェア構成図である。
(this embodiment)
[Hardware configuration]
FIG. 2 is a hardware configuration diagram of the information processing apparatus according to this embodiment.
この情報処理装置10は、分散メモリ型の並列計算機であり、ノード11、中継装置12、及び演算装置13をそれぞれ複数備える。
The
このうち、複数のノード11の各々は、計算ジョブを並列実行する計算機である。ノード11の個数は特に限定されないが、例えば数100~数10万程度の個数のノード11が情報処理装置10に設けられる。
Among these, each of the plurality of
また、各ノード11は、プロセッサ14とメモリ15とを備えており、プロセッサ14とメモリ15が協働して計算ジョブを実行する。なお、プロセッサ14は、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)等のような計算機能を備えたハードウェアである。また、メモリ15は、DRAM(Dynamic Random Access Memory)等の揮発性メモリである。
Each
更に、各ノード11はネットワークインターフェース16を有しており、そのネットワークインターフェース16を介して各ノード11と中継装置12とが接続される。
Furthermore, each
中継装置12は、例えばスイッチやルータであり、各ノード11と演算装置13とを相互に接続する。また、この例では、複数の中継装置12の各々がネットワークを介して相互に接続される。そのネットワークとしては、例えばLAN(Local Area Network)がある。
The
演算装置13は、各ノード11からエラーコードを受信し、そのエラーコードに対してMPIのリダクション操作を行うリダクション装置である。演算装置13が行うリダクション操作としては、例えば前述のReduceとAllreduceとがある。また、演算装置13は、プロセッサ17とメモリ18とを有しており、これらが協働することによりリダクション操作が行われる。
The
なお、プロセッサ17は、CPUやGPU等のようなハードウェアである。そして、メモリ18は、DRAM等の揮発性メモリである。
Note that the processor 17 is hardware such as a CPU or a GPU. The
また、この例では、ノード11の筐体とは別の筐体に演算装置13を収容する。そのような演算装置13は独立筐体型の演算装置とも呼ばれる。なお、ノード11の筐体に収容されたノード内蔵型の演算装置13を用いてもよい。
Also, in this example, the
[機能構成]
図3は、本実施形態に係る情報処理装置10の機能構成図である。
図3に示すように、情報処理装置10は、複数の送信ノード21、受信ノード22、及び演算装置13を備える。
[Function configuration]
FIG. 3 is a functional configuration diagram of the
As shown in FIG. 3, the
この例では、複数のノード11(図2参照)のうちの一つを受信ノード22とし、残りのノード11を送信ノード21とする。また、送信ノード21の個数をN個とし、各送信ノード21をnode0~nodeN-1で表す。
In this example, one of the plurality of nodes 11 (see FIG. 2) is the receiving
これらの送信ノード21の各々には、識別子id0~idN-1と識別符号idcode0~idcodeN-1が予め割り当てられる。
Identifiers id 0 to id N-1 and identification codes idcode 0 to idcode N-1 are assigned in advance to each of these
このうち、識別子id0~idN-1は、各送信ノード21を一意に識別する数値である。以下では、idr=rとなるように、識別子id0~idN-1として0~N-1の整数値を各送信ノード21に割り当てる。
Among them, the identifiers id 0 to id N−1 are numerical values that uniquely identify each
また、識別符号idcode0~idcodeN-1は、識別子id0~idN-1の各々を符号化した値である。符号化の方法は特に限定されない。本実施形態では、idr=rの場合、rを冪指数とする2の冪乗「2r」を識別符号idcoderとする。 Also, the identification codes idcode 0 to idcode N-1 are values obtained by encoding each of the identifiers id 0 to id N-1 . The encoding method is not particularly limited. In this embodiment, when id r =r, the identification code idcode r is the power of 2, where r is the exponent.
更に、送信ノード21の各々には、N個の符号化ベクトルencdvec(node0)~encdvec(nodeN-1)が対応付けられる。符号化ベクトルencdvec(node0)~encdvec(nodeN-1)は、送信ノード21の送信データを符号化するためのベクトルであり、情報処理装置10の起動時や計算ジョブの開始時に各送信ノード21のメモリ15に格納される。
Further, each
ここでは、符号化ベクトルencdvec(node0)~encdvec(nodeN-1)の成分は整数とする。また、符号化ベクトルencdvec(nodei)(i=0, …, N-1)の次元数kは、送信ノード21の個数N以下である。
Here, the components of the encoded vector encdvec(node 0 ) to encdvec(node N-1 ) are integers. Also, the number of dimensions k of the encoded vector encdvec(node i ) (i=0, . . . , N−1) is equal to or less than the number N of
以下では、N個の符号化ベクトルencdvec(nodei)(i=0, …, N-1)が張るベクトル空間をVとし、その基底ベクトルをe0、e2、…eN-1とする。 In the following, let V be the vector space spanned by N encoded vectors encdvec(node i )(i=0, …, N-1), and its basis vectors be e 0 , e 2 , … e N-1 .
ここで、N個の符号化ベクトルから任意のj(≦k)個を以下の式(3)のように選ぶ。 Here, arbitrary j (≤k) coded vectors are selected from N coded vectors as shown in the following equation (3).
また、以下の式(4)のようにj個の基底ベクトルが張るVの部分空間をUとする。 Also, let U be a subspace of V spanned by j basis vectors as in the following equation (4).
任意のv ∈ VのUへの正射影をπとすると、式(3)の各符号化ベクトルのUへの正射影πは次のようになる。 Let π be the orthogonal projection of any v ∈ V onto U, then the orthogonal projection π of each encoded vector in Equation (3) onto U is as follows.
本実施形態では、式(5)のj個の符号化ベクトルの各々が一次独立となるようにN個の符号化ベクトルencdvec(nodei)(i=0, …, N-1)を予め定めておく。これにより、各符号化ベクトルの成分を要素とする行列について以下の性質が成り立つ。 In this embodiment, N encoded vectors encdvec(node i ) (i=0, . Keep As a result, the following property holds for the matrix whose elements are the components of each encoded vector.
まず、N個の符号化ベクトルencdvec(nodei)(i=0, …, N-1)の各々を次の式(6)のように成分表示する。 First, each of N encoded vectors encdvec(node i )(i=0, .
そして、各成分を要素とするN行k列の行列A0を次の式(7)で定義する。 Then, a matrix A 0 of N rows and k columns having each component as an element is defined by the following equation (7).
この行列A0を以下では符号化行列と呼ぶ。符号化行列A0のk個の列からj(≦k)個を任意に選択し、選択した列番号を式(5)に倣ってi0、i1、…ij-1とする。そして、以下の式(8)のように、αst(s= i0、i1、…ij-1, t= i0、i1、…ij-1)をs行t列の成分に持つj行j列の小行列をAとする。 This matrix A 0 is hereinafter referred to as an encoding matrix. Arbitrarily select j (≦k) columns from the k columns of the encoding matrix A 0 , and let the selected column numbers be i 0 , i 1 , . Then, α st (s= i 0 , i 1 , …i j-1 , t= i 0 , i 1 , …i j-1 ) is represented by the following equation (8) as the component of row s and column t Let A be a submatrix of j rows and j columns in .
このとき、式(5)の各符号化ベクトルが一次独立であるから、j×jの正方行列である小行列Aは正則となる。よって、N個の符号化ベクトルencdvec(nodei)(i=0, …, N-1)を予め定めるということは、式(7)の符号化行列から任意に選んだ小行列Aが正則になるように、式(7)の符号化行列A0を定めることに他ならない。 At this time, since each encoded vector in Equation (5) is linearly independent, the submatrix A, which is a j×j square matrix, is regular. Therefore, predetermining N encoded vectors encdvec(node i )(i=0, . It is nothing but to define the encoding matrix A 0 of the equation (7) so that
この条件が満たされる限り、符号化ベクトルencdvec(nodei)の決め方は特に限定されない。 As long as this condition is satisfied, the method of determining the encoded vector encdvec(node i ) is not particularly limited.
例えば、encdvec(noden) = (1, res(i), res(i2), …res(ik-1))(i = 0, …, N-1)となるように符号化ベクトルencdvec(nodei)を生成してもよい。なお、res(z)は、N以上の最小の素数pでzを割ったときの余りである。この場合、res(z)は、0≦res(z)≦p-1を満たす剰余でもよいし、絶対値最小剰余sであってもよい。絶対値最小剰余sは、-(p-1)/2≦s≦(p-1)/2を満たす剰余である。 For example, the encoding vector encdvec (node i ) may be generated. Note that res(z) is the remainder when z is divided by the smallest prime number p greater than or equal to N. In this case, res(z) may be a remainder that satisfies 0≤res(z)≤p-1 or may be the minimum absolute value remainder s. The absolute minimum remainder s is a remainder that satisfies -(p-1)/2≤s≤(p-1)/2.
これらの剰余により得られるN個の符号化ベクトルのうちから任意のk個を選択し、その各成分を並べてk×kの正方行列を作成すると、その正方行列はVandermonde行列となる。よって、これにより得られた符号化ベクトルは、前述の式(7)、(8)で説明した条件を自動的に満たすことができる。 If arbitrary k pieces of coded vectors are selected from the N pieces of coded vectors obtained from these remainders and the respective components are arranged to form a k×k square matrix, the square matrix becomes a Vandermonde matrix. Therefore, the encoded vector obtained by this can automatically satisfy the conditions described in the above equations (7) and (8).
なお、(1, res(i), res(i2), …res(ik-1))は、各成分を標数がpの有限体Fp(=Z/Zp)の要素と同一視すると、(1, i, i2, …、ik-1)と簡潔に表現することができる。 Note that (1, res(i), res(i 2 ), …res(i k-1 )) is the same as an element of a finite field F p (=Z/Z p ) of characteristic p. can be expressed simply as (1, i, i 2 , . . . , i k-1 ).
また、素数pは、情報処理装置10の起動時や計算ジョブの開始時に各送信ノード21のメモリ15に格納しておけばよい。
再び図3を参照する。
Also, the prime number p may be stored in the
Refer to FIG. 3 again.
各々の送信ノード21は、実行部31、第1の算出部32、及び第1の送信部33を有する。これらの各部は、プロセッサ14とメモリ15が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。
Each
このうち、実行部31は、各送信ノード21に割り振られた計算ジョブを実行する。また、nodei(i = 0, …, N-1)における実行部31は、自身に割り当てられた計算ジョブが異常により終了したかを示すエラーコードEiを出力する。そのような異常としてはハードウェアの障害やオーバーフロー等がある。
Among these, the
この例ではエラーコードEiを整数値とする。そして、異常がある場合にはエラーコードEiを非ゼロの値とすると共に、異常の種別に応じてその値を変える。例えば、計算時にオーバーフローが生じた場合のエラーコードは「1」とし、ハードウェアの障害によって計算が終了した場合のエラーコードは「2」等とする。
一方、異常がない場合にはエラーコードEiをゼロにする。
In this example, the error code Ei is an integer value. Then, when there is an abnormality, the error code E i is set to a non-zero value, and the value is changed according to the type of abnormality. For example, the error code is "1" when an overflow occurs during calculation, and the error code is "2" when the calculation ends due to a hardware failure.
On the other hand, if there is no abnormality, the error code Ei is set to zero.
なお、実行部31は、自装置の計算負荷が閾値を超えたときにエラーコードEiを出力してもよい。この場合、実行部31は、計算負荷が閾値を超えていない場合にはエラーコードEiとしてゼロを出力し、計算負荷が閾値を超えた場合に非ゼロのエラーコードEiを出力すればよい。例えば、エラーコードEiとして、計算負荷が閾値を超えた時刻を実行部31が出力してもよい。
Note that the
また、i番目(i= 0, …, N-1)の送信ノード21の第1の算出部32は、複数の符号化ベクトルのうちで自身に対応する符号化ベクトルencdvec(nodei)に送信データDiをスカラ倍した第1のベクトルVi = Di・encdvec(nodei)を算出する。これにより、送信データDiが符号化されることになる。 Also , the first calculator 32 of the i-th (i=0, . A first vector V i =D i ·encdvec(node i ) obtained by multiplying the data D i by a scalar is calculated. Thereby, the transmission data D i is encoded.
送信データDiは特に限定されないが、この例ではエラーコードEiを送信データDiとする。これにより、計算ジョブが正常に終了した送信ノード21の送信データDiはゼロとなり、計算ジョブが異常終了した送信ノード21の送信データDiは非ゼロとなる。
The transmission data D i is not particularly limited, but in this example, the error code E i is used as the transmission data D i . As a result, the transmission data D i of the
そして、i番目(i= 0, …, N-1)の送信ノード21の第1の送信部33は、送信データDiがゼロでない場合には、識別符号idcodeiの「2i」と、第1のベクトルViとを演算装置13に送信する。なお、送信データDiゼロの場合には、第1の送信部33は、識別符号idcodeの「2i」に代えてゼロを演算装置13に送信する。
Then , when the transmission data D i is not zero, the
一方、演算装置13は、第1の受信部35、第2の算出部36、及び第2の送信部37を有する。これらの各部は、プロセッサ17(図2参照)とメモリ18が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。
On the other hand, the
このうち、第1の受信部35は、N個の送信ノード21の各々から第1のベクトルVi(i = 0, …, N-1)を受信する。更に、第1の受信部35は、各々の送信ノード21から識別符号idcodeの「2i」を受信する。
Among them, the
そして、第2の算出部36は、MPIの加法のリダクション操作により、N個の第1のベクトルVi同士を加算した第2のベクトルW(= V1+V2+ … + VN)を算出する。なお、前述のように、計算ジョブが正常に終了した送信ノード21においては第1のベクトルViはゼロベクトルとなる。よって、第2のベクトルWは、N個の送信ノード21のうちで計算ジョブが異常終了した一部の送信ノード21における第1のベクトルViの和となる。
Then, the
更に、第2の算出部36は、N個の送信ノード21が送信した識別符号idcodeiの「2i」の総和Sを算出する。計算ジョブが正常に終了した送信ノード21は「2i」に代えてゼロを送信するが、総和Sにゼロは寄与しない。よって、総和Sは、N個の送信ノード21のうちで計算ジョブが異常終了した一部の送信ノード21における識別符号idcodeiの「2i」の総和となる。
Further, the
そして、第2の送信部37は、第2のベクトルWと総和Sとを受信ノード22に送信する。
The
その受信ノード22は、第2の受信部38と復号部39とを有する。これらの各部は、プロセッサ14(図2参照)とメモリ15が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。
The receiving
また、受信ノード22のメモリ15には前述の符号化行列A0が予め格納される。メモリ15に符号化行列A0を格納するタイミングは特に限定されず、例えば情報処理装置10の起動時や計算ジョブの開始時にメモリ15に格納される。
The encoding matrix A 0 is stored in advance in the
また、第2の受信部38は、演算装置13から第2のベクトルWを受信する。
Also, the
そして、復号部39は、第2のベクトルWを用いて送信データDiを以下のように復号する。
Then, the
まず、復号部39は、2進表記された総和Sを利用して、ゼロベクトルではない第1のベクトルViを送信した送信ノード21を以下のように特定する。
First, the
例えば、識別子idiが1、3、5の送信ノード21における送信データDiが非ゼロであり、これらの送信ノード21がゼロベクトルではない第1のベクトルViを送信した場合を考える。なお、識別子idiが1、3、5以外の送信ノード21における送信データDiはゼロであり、これらの送信ノード21は2の冪乗に代えてゼロを送信したものとする。
For example, consider the case where transmission data D i at
この場合、識別子idiが1、3、5以外の送信ノード21が送信したゼロは総和Sに寄与しないため、総和Sは21+23+25となる。これを2進表記すると101010となる。この2進表記において1が立っているビットの冪指数は1、3、5であり、これは識別子idiに等しい。これにより、復号部39は、非ゼロの送信データを送信した送信ノード21の識別子idiを総和Sから復号することができる。
In this case, zeros transmitted by the transmitting
次に、復号部39は、このように復号した識別子idiと符号化行列A0とを利用して以下のように小行列Aを生成する。まず、復号部39は、符号化行列A0の各成分のうち、行番号と列番号が識別子idiに等しい小行列Aを生成する。例えば、上記のように識別子idiが1、3、5の場合は、αij(i= 1、3、5, j= 1、3、5)で作られる3×3の行列が小行列Aとなる。
Next, the
なお、その小行列Aの各成分は、識別子idiが1、3、5の各々の符号化ベクトルの成分に等しい。よって、復号部39は、識別子idiが1、3、5の各々に対応する符号化ベクトルの成分を用いて小行列Aを生成したことになる。
It should be noted that each component of the submatrix A is equal to each component of the encoded vectors whose identifiers id i are 1, 3, and 5, respectively. Therefore, the
そして、復号部39は、次の式(9)で表される連立一次方程式を解くことにより送信データDiを復号する。
Then, the
なお、式(9)において、w1, w2, …wkは、第2のベクトルWの各成分を表す。 Note that w 1 , w 2 , .
式(9)の解(x1, x2,…,xk)が送信データ(D1, D2,…,Dk)に等しいことは次のように理解される。 It is understood as follows that the solution ( x1 , x2 ,..., xk ) of equation (9) is equal to the transmitted data ( D1 , D2 ,..., Dk ).
まず、第2のベクトルWは、符号化ベクトルに送信データをスカラ倍してなる複数の第1のベクトルViを足し合わせて得られるため、次の式(10)が成り立つ。 First, the second vector W is obtained by adding a plurality of first vectors V i obtained by scalar-multiplying the transmission data to the encoded vector, so the following equation (10) holds.
前述のように小行列Aは正則であるから逆行列を持つ。その逆行列を式(11)の両辺に左からかけることにより、解(x1, x2,…,xk)が送信データ(D1, D2,…,Dk)に等しいことが分かる。よって、式(9)を解くことにより送信データ(D1, D2,…,Dk)が得られることになる。 As mentioned above, submatrix A is nonsingular, so it has an inverse. By multiplying both sides of equation (11) by the inverse matrix from the left, it can be seen that the solution (x 1 , x 2 ,..., x k ) is equal to the transmitted data (D 1 , D 2 ,..., D k ). . Therefore, the transmission data (D 1 , D 2 , . . . , D k ) can be obtained by solving the equation (9).
式(9)の解法は特に限定されず、例えばガウスの消去法等により復号部39が式(9)を解けばよい。
The method of solving equation (9) is not particularly limited, and the
以上説明した情報処理装置10によれば、受信ノード22の復号部39が式(9)の連立一次方程式を解くことにより送信データDiを復号する。連立一次方程式を解くのに要する計算量は、式(2)の代数方程式を解くのに要する計算量と比較して少ないため、受信ノード22が高速に送信データDiを復号することができる。
According to the
また、送信データDiとして非ゼロとゼロのいずれかの値をとるデータを採用したため、送信データDiが非ゼロの送信ノード21に対応した符号化ベクトルの各成分のみで小行列Aが生成される。その小行列Aを係数行列とする連立一次方程式(9)を解くと非ゼロの送信データのみが復号される。よって、値がゼロの送信データDiを不必要に復号する必要がなくなり、計算量を更に低減することができる。
In addition, since the transmission data D i is either non-zero or zero-valued data, the submatrix A is generated only with each component of the encoded vector corresponding to the
更に、このように計算量が低減すると、送信データDiとしてエラーコードを採用した場合に、異常のある送信ノード21でどのようなエラーが発生したのかを受信ノード22が速やかに特定することができる。
Furthermore, when the amount of calculation is reduced in this way, the receiving
しかも、識別符号idcodeiとして2の冪乗「2i」を採用することにより、その総和Sから識別子idiを復号することができる。特に、送信データDiの値がゼロの場合に、送信ノード21が2の冪乗「2r」に代えてゼロを送信することにより、非ゼロの送信データDiを送信した送信ノード21の識別子idiを復号することができる。
Moreover, by adopting the power of 2 "2 i " as the identification code idcode i , the identifier id i can be decoded from the sum S. In particular, when the value of the transmission data D i is zero, the
[具体例]
次に、本実施形態の具体例について説明する。
この例では各パラメータを以下の値とする。
・送信ノード21の個数N: 128個
・非ゼロのエラーコードを送信する送信ノード21の個数: 3個
・非ゼロのエラーコードを送信する送信ノード21の識別子id: 0、1、127
[Concrete example]
Next, a specific example of this embodiment will be described.
In this example, each parameter has the following values.
- Number N of transmission nodes 21: 128 - Number of
また、符号化ベクトルencdvec(nodei)(i = 0, …, N-1)は、encdvec(nodei) = (1, res(i), res(i2), …res(ik-1))で定義する。なお、res(z)は、前述のようにN以上の最小の素数pでzを割ったときの余りである。この例ではN=128であるため、p=131となる。また、k=3とする。
この場合、各送信ノード21の符号化ベクトルは次のようになる。
Also, the encoded vector encdvec(node i )(i = 0, …, N-1) is encdvec(node i ) = (1, res(i), res(i 2 ), …res(i k-1 )). Note that res(z) is the remainder when z is divided by the smallest prime number p greater than or equal to N as described above. Since N=128 in this example, p=131. Also, let k=3.
In this case, the encoded vector of each transmitting
・encdvec(node0) = (1,res(0),res(02)) = (1, 0, 0)
・encdvec(node1) = (1,res(1),res(12)) = (1, 0×131 + 1, 0×131+1) = (1,1,1)
・encdvec(node127) = (1,res(127),res(1272)) = (1,res(0×131 + 127),res(123×131 + 16)) = (1,127,16)
・ encdvec(node 0 ) = (1,res(0),res(0 2 )) = (1, 0, 0)
・ encdvec(node 1 ) = (1, res(1), res(1 2 )) = (1, 0×131 + 1, 0×131 + 1) = (1, 1, 1)
・ encdvec(node 127 ) = (1, res(127), res(127 2 )) = (1, res(0×131 + 127), res(123×131 + 16)) = (1,127,16)
また、送信データDiは以下の通りとする。
・D0 = 15
・D1 = 18
・D127 = 3
Also, the transmission data D i is as follows.
・D0 = 15
・D1 = 18
・D127 = 3
この場合、送信データDiを符号化した第1のベクトルVi = Di・encdvec(nodei)は次のようになる。
・V0 = D0・encdvec(node0) = 15・(1, 0, 0) = (15, 0, 0)
・V1 = D1・encdvec(node1) = 18・(1, 1, 1) = (18, 18, 18)
・V127 = D127・encdvec(node127) = 3・(1, 127, 16) = (3, 381, 48)
In this case, the first vector V i =D i ·encdvec(node i ) obtained by encoding the transmission data D i is as follows.
・V0 = D0・encdvec( node0 ) = 15 ・(1, 0, 0) = (15, 0, 0)
・V1 = D1・encdvec( node1 ) = 18 ・(1, 1, 1) = (18, 18, 18)
・V127 = D127・encdvec( node127 ) = 3 ・(1, 127, 16) = (3, 381, 48)
図4は、各送信ノード21が演算装置13に送信するデータのフォーマットの一例を示す図である。
FIG. 4 is a diagram showing an example of the format of data that each
図4に示すように、各送信ノード21が送信するデータは、識別符号部51と符号化ペイロード52とを有する。
As shown in FIG. 4, data transmitted by each
このうち、識別符号部51は、各送信ノード21の識別符号idcodeiを格納する領域である。なお、送信データDiの値がゼロの送信ノード21においては、識別符号idcodeiに代えてゼロが識別符号部51に格納される。例えば、計算が正常に終了してエラーコードEiがゼロとなった送信ノード21においてはゼロが識別符号部51に格納される。
Among them, the
また、この例では、識別符号部51をword1とword2に分ける。なおword1とword2の長さはいずれも64bitである。そして、識別子idiが0~63の識別符号idcodeiをword1に格納する。
Also, in this example, the
一方、識別子idiが64~127の送信ノード21については、識別子idiから64を減じた値を冪指数とする2の冪乗を識別符号idcodeiとし、そのidcodeiをword2に格納する。例えば、識別子idが127の送信ノード21については、「263(=2127-64)」を当該ノードの識別符号idcode127としてword2に格納する。
On the other hand, for the transmitting
そして、符号化ペイロード52は、各送信ノード21の第1のベクトルViを格納する領域である。ここでは、符号化ペイロード52をword1~word3に分け、これらの各々に第1のベクトルViの第1成分、第2成分、及び第3成分を格納する。なお、word1~word3の長さはいずれも64bitである。
The encoded
また、送信データDiの値がゼロの送信ノード21においては第1のベクトルViはゼロベクトルとなるため、word1~word3の各々には「0」が格納される。
Also, since the first vector V i is a zero vector at the
演算装置13は、このようなデータを全ての送信ノード21から受信し、前述のような加法によるリダクション操作を行う。そのリダクション操作により、第2のベクトルWと総和Sとが算出されることになる。
図5は、そのリダクション操作により得られたデータのフォーマットの一例を示す図である。 FIG. 5 is a diagram showing an example of the format of data obtained by the reduction operation.
このデータは、リダクション操作を終えた後に演算装置13のメモリ18(図2参照)に格納されるデータであり、識別符号部53と符号化ペイロード54とを有する。
This data is data stored in the memory 18 (see FIG. 2) of the
このうち、識別符号部53はword1とword2に分けられる。そして、word1に、識別子idiが0~63の送信ノード21の識別符号idcodeiの総和が格納される。また、word2には、識別子idiが64~127の送信ノード21の識別符号idcodeiの総和が格納される。
Among them, the
一方、符号化ペイロード54はword1~word3に分けられる。word1は、第2のベクトルWの第1成分を格納する領域である。同様に、word2とword3は、それぞれ第2のベクトルWの第2成分と第3成分を格納する領域である。
On the other hand, the encoded
受信ノード22は、これらのデータを受信して、式(9)と同様に以下の式(12)の連立一次方程式を解く。
Receiving
なお、式(12)の左辺の係数行列は、encdvec(node0) = (1, 0, 0)、encdvec(node1) = (1,1,1)、encdvec(node127) = (1,127,16)の各符号化ベクトルを並べることにより受信ノード22が生成する。
Note that the coefficient matrix on the left side of Equation (12) is encdvec(node 0 ) = (1, 0, 0), encdvec(node 1 ) = (1,1,1), encdvec(node 127 ) = (1,127, 16) is generated by the receiving
式(12)の解は、x1 = 15、x2 = 18、x3 = 3となる。以上により、各送信データD0(= 15)、D1(= 18)、D127 (= 3)を復号できたことになる。
[フローチャート]
The solution of equation (12) is x1 =15, x2 =18, x3 =3. As described above, the transmission data D 0 (=15), D 1 (=18), and D 127 (=3) have been decoded.
[flowchart]
次に、本実施形態に係る情報処理方法についてフローチャートを参照しながら説明する。 Next, an information processing method according to this embodiment will be described with reference to flowcharts.
図6は、送信ノード21が行う処理について説明するためのフローチャートである。
FIG. 6 is a flowchart for explaining the processing performed by the
まず、ステップS1において、各送信ノード21の第1の算出部32が、送信すべき送信データDiがあるかどうかを判断する。例えば、識別子idiを有する送信ノード21においては、エラーコードEiがゼロのときに送信すべきデータはない(NO)と判断される。一方、エラーコードEiが非ゼロのときには、送信すべきデータはある(YES)と判断される。
ここでYESと判断された場合にはステップS2に移る。
First, in step S1, the first calculator 32 of each
If YES is determined here, the process moves to step S2.
ステップS2においては、第1の算出部32が第1のベクトルViを算出することにより、送信データDiを符号化する。例えば、識別子idiを有する送信ノード21においては、第1の算出部32が符号化ベクトルencdvec(nodei)を送信データDiでスカラ倍することにより第1のベクトルViを算出する。
In step S2, the first calculator 32 encodes the transmission data D i by calculating the first vector V i . For example, in the
次に、ステップS3に移り、第1の送信部33が、識別符号部51(図4参照)に識別符号idcodeiを格納する。例えば、識別子idiを有する送信ノード21においては、第1の送信部33が「2i」を識別符号部51に格納する。
Next, in step S3, the
次いで、ステップS4に移り、識別子idiを有する送信ノード21の第1の送信部33が第1のベクトルViの各要素を符号化ペイロード52(図4参照)に格納する。
Next, moving to step S4, the
一方、ステップS1においてNOと判断された場合にはステップS5に移る。 On the other hand, if NO is determined in step S1, the process proceeds to step S5.
ステップS5においては、識別子idiを有する送信ノード21の第1の送信部33が識別符号部51(図4参照)に「0」を格納する。
In step S5, the
次に、ステップS6に移り、識別子idiを有する送信ノード21の第1の送信部33が符号化ペイロード52(図4参照)に「0」を格納する。
Next, moving to step S6, the
上記のようにしてステップS4やステップS6を行った後はステップS7に移る。 After performing steps S4 and S6 as described above, the process proceeds to step S7.
ステップS7においては、全ての送信ノード21の各々が識別符号部51と符号化ペイロード52の各データを演算装置13に送信する。
以上により、送信ノード21の処理を終える。
In step S7, each of all the
With the above, the processing of the
次に、これらのデータを受信した受信ノード22の処理について説明する。前述のように、受信ノード22が行う処理としては、識別符号idcodeiの総和Sに基づいて各送信ノード21の識別子idiを復号する処理と、第2のベクトルWに基づいて各送信データDiを復号する処理とがある。
まず、前者の処理について説明する。
Next, the processing of the receiving
First, the former process will be explained.
図7は、総和Sに基づいて各送信ノード21の識別子idiを復号する処理について説明するためのフローチャートである。
FIG. 7 is a flowchart for explaining the process of decoding the identifier id i of each
まず、ステップS11において、復号部39が、識別符号部53(図5参照)のword1を変数idc_wordに代入する。変数idc_wordは、識別符号部53のword1とword2の各々において1が立っているビットを特定するための作業用の変数である。
First, in step S11, the
次に、ステップS12に移り、復号部39が、読み込んだword数を格納するための変数idc_word_countに1を代入する。
Next, moving to step S12, the
続いて、ステップS13に移り、復号部39がidc_listに空リストを代入する。idc_listは、復号した識別子idiを格納するためのリストである。
Subsequently, the process moves to step S13, and the
次いで、ステップS14に移り、復号部39が、変数idc_word内に1が立っているビットが存在するかどうかを判断する。
ここでYESと判断された場合にはステップS15に移る。
Next, moving to step S14, the
If YES is determined here, the process moves to step S15.
ステップS15では、復号部39が、変数idc_word内において1が立っているビットを特定し、そのビットに対応する冪指数を識別子idiとしてidc_listに追加する。
In step S15, the
図5の例では、識別符号部53のword1が「3」であり、これを二進表記すると11となる。よって、0と1が識別子idiであると特定されることになる。
In the example of FIG. 5, the word1 of the
次に、ステップS16に移り、復号部39が、識別符号部53のword2を変数idc_wordに代入する。なお、ステップS14においてNOと判断された場合にはステップS15をスキップしてステップS16を行う。
Next, moving to step S16, the
次いで、ステップS17に移り、復号部39が、変数idc_word_countを1だけインクリメントする。
Next, moving to step S17, the
続いて、ステップS18に移り、復号部39が、変数idc_wordが識別符号部53の最後のwordかどうかを判断する。例えば、復号部39は、変数idc_word_countの値が2のときに、変数idc_wordが識別符号部53の最後のwordである(YES)と判断する。そして、変数idc_word_countの値が2よりも小さいときは、復号部39は、変数idc_wordが識別符号部53の最後のwordではない(NO)と判断する。
Subsequently, the process moves to step S18, and the
ここでNOと判断された場合にはステップS14に戻る。一方、YESと判断された場合には処理を終える。 If NO is determined here, the process returns to step S14. On the other hand, if the answer is YES, the process ends.
このように図7のフローチャートに従って処理を行うことにより、送信ノード21の識別子idiが格納されたidc_listが完成する。
By performing the processing according to the flowchart of FIG. 7 in this way, the idc_list in which the identifier id i of the
図8は、図5の例で得られるidc_listの内容を模式的に示す図である。この例では、id0 = 0、id1 = 1、id127 = 127の各識別子がidc_listに格納される。 FIG. 8 is a diagram schematically showing the contents of idc_list obtained in the example of FIG. In this example, the identifiers id 0 = 0, id 1 = 1, id 127 = 127 are stored in idc_list.
以上のように、本実施形態では、識別子idiを冪指数とする2のべき乗「2i」の総和Sを算出し、その総和Sにおいて1が立っているビットを特定することにより、識別子idiを簡単に復号することができる。 As described above, in the present embodiment, the sum S of powers of 2 "2 i " with the identifier id i as the exponent is calculated, and by specifying the bit in which 1 is set in the sum S, the identifier id i can be easily decoded.
次に、受信ノード22が第2のベクトルWに基づいて各送信データDiを復号する処理について説明する。
Next, processing for decoding each transmission data D i by the receiving
図9は、受信ノード22が各送信データDiを復号する処理について説明するためのフローチャートである。
FIG. 9 is a flowchart for explaining the process of decoding each transmission data D i by the receiving
まず、ステップS21において、受信ノード22の復号部39が、idc_listに格納されている各識別子idiを昇順に整列する。なお、昇順に代えて降順に各識別子idiを整列してもよい。
First, in step S21, the
次に、ステップS22に移り、復号部39が、各識別子idiに対応した符号化ベクトルを生成する。符号化ベクトルは、式(7)の符号化行列A0から生成することができる。例えば、idc_listに格納されている識別子idをi1、i2、…ijとする。また、符号化行列A0の要素をαijとする。このとき、αst(s= i1、i2、…ij, j= i1、i2、…ij)で作られるj×jの小行列Aの各列が、符号化ベクトルencdvec(nodei1)、encdvec(nodei2)、…encdvec(nodeij)となる。
Next, moving to step S22, the
次いで、ステップS23に移り、復号部39が、符号化ベクトルencdvec(nodei1)、encdvec(nodei2)、…encdvec(nodeij)を並べることにより小行列Aを生成する。
Next, moving to step S23, the
次に、ステップS24に移り、復号部39が、連立一次方程式ソルバの係数行列に小行列Aを代入する。連立一次方程式ソルバは、受信ノード22のプロセッサ14とメモリ15が協働して実行するプログラムであり、例えばガウスの消去法により連立一次方程式を解くプログラムである。
Next, moving to step S24, the
その連立一次方程式は、式(9)に示したように、小行列Aを係数行列とし、かつ第2のベクトルWの各成分をw1, w2, …wkを定数項とする方程式である。 The simultaneous linear equations, as shown in Equation (9), are equations in which the submatrix A is the coefficient matrix and the components of the second vector W are w 1 , w 2 , . . . wk as constant terms. be.
次いで、ステップS25に移り、復号部39が、連立一次方程式ソルバの定数項に第2のベクトルWの各成分w1, w2, …wkを代入する。例えば、復号部39は、符号化ペイロード54(図5参照)のword1、word2、word3の各々に格納されている第2のベクトルWの各成分を連立一次方程式ソルバの定数項に代入する。
Next, moving to step S25, the
そして、ステップS26に移り、復号部39が連立一次方程式ソルバを実行する。
Then, the process moves to step S26, and the
次いで、ステップS27に移り、復号部39が連立一次方程式を解いて得られた解を昇順に並べ、それらを送信データDiであると特定する。
以上により、送信データDiを復号する処理を終了する。
Next, in step S27, the
Thus, the process of decoding the transmission data D i is completed.
上記した本実施形態によれば、ステップS26において、式(9)の連立一次方程式を解くことにより送信データを復号する。代数方程式と比較して連立方程式は少ない計算量で解けるため、高速に送信データを復号できる。 According to the present embodiment described above, in step S26, the transmission data is decoded by solving the simultaneous linear equations of Equation (9). Since simultaneous equations can be solved with a smaller amount of calculation than algebraic equations, transmission data can be decoded at high speed.
更に、本実施形態では分解能kを大きくすることも可能となる。分解能kは、送信データDiを復号することが可能な送信ノード21の最大個数である。例えば、分解能kを超える個数の送信ノード21が送信データDiを送信した場合には送信データDiを復号することができない。
分解能kが大きくなることは以下のように理解できる。
Furthermore, in this embodiment, it is also possible to increase the resolution k. The resolution k is the maximum number of
The fact that the resolution k increases can be understood as follows.
まず、符号化ベクトルを生成するための素数をp、送信データDiのビット数をaとする。このとき、符号化ペイロード52(図4参照)のword1~word3の各々に格納されるデータのビット数はa+log2pで抑えられる。また、符号化ペイロード54(図5参照)のword1~word3のビット数をLとすると、a+log2p+log2k≦Lであれば、リダクション操作中にオーバーフローが発生しないことが保証される。 First, let p be a prime number for generating an encoded vector, and let a be the number of bits of transmission data D i . At this time, the number of bits of data stored in each of word1 to word3 of the encoded payload 52 (see FIG. 4) is reduced to a+ log2p . Also, if the number of bits of word1 to word3 of the encoded payload 54 (see FIG. 5) is L, then if a+ log2p + log2k ≦L, it is guaranteed that no overflow will occur during the reduction operation. be.
一方、図1の例でオーバーフローを発生させないためにはk≦L/aである必要がある。データ長としてa=16、L=64を想定すると、図1の例ではk≦4となってしまう。 On the other hand, in order to prevent overflow from occurring in the example of FIG. 1, it is necessary that k≦L/a. Assuming that the data length is a=16 and L=64, k≦4 in the example of FIG.
これに対し、本実施形態ではk≦248/pであり、p≦246の範囲であれば図1の例よりも分解能kを大きくすることができる。 On the other hand, in the present embodiment, k≦2 48 /p, and within the range of p≦2 46 , the resolution k can be made larger than in the example of FIG.
これにより、本実施形態では復号可能な送信データDiの個数を図1の例よりも多くすることができ、多くの送信ノード21が送信データDiを送信した場合でもそれらを復号することが可能となる。 As a result, in this embodiment , the number of pieces of transmission data D i that can be decoded can be made larger than in the example of FIG. It becomes possible.
以上説明した各実施形態に関し、更に以下の付記を開示する。 The following supplementary remarks are further disclosed regarding each of the embodiments described above.
(付記1) 複数の送信ノード、演算装置、及び受信ノードを備えた情報処理装置であって、
前記送信ノードは、
複数の前記送信ノードの各々に対応付けられた複数の符号化ベクトルのうち、自身に対応する前記符号化ベクトルを送信データでスカラ倍することにより、前記送信データを符号化した第1のベクトルを算出する第1の算出部と、
前記第1のベクトルを前記演算装置に送信する第1の送信部とを有し、
前記演算装置は、
複数の前記送信ノードの各々が送信した前記第1のベクトル同士を加算した第2のベクトルを算出する第2の算出部と、
前記第2のベクトルを前記受信ノードに送信する第2の送信部とを有し、
前記受信ノードは、
前記送信ノードの各々に対応する前記符号化ベクトルの各成分を係数とする連立一次方程式であって、前記第2のベクトルの各成分を定数項とする連立一次方程式を解くことにより前記送信データを復号する復号部を有する、
ことを特徴とする情報処理装置。
(付記2) 前記送信データは、ゼロと非ゼロのいずれかを示すデータであることを特徴とする付記1に記載の情報処理装置。
(付記3) 複数の前記送信ノードの各々は、計算ジョブを並列実行する実行部を更に有し、
前記実行部は、前記計算ジョブが異常終了したときに非ゼロを示す前記送信データを出力し、前記計算ジョブが正常に終了したときにゼロを示す前記送信データを出力することを特徴とする付記2に記載の情報処理装置。
(付記4) 前記第1の送信部は、自身を識別する整数値を冪指数とする2の冪乗を前記演算装置に送信し、
前記第2の算出部は、前記送信ノードの各々が送信した前記2の冪乗の総和を算出し、
前記第2の送信部は、前記総和を前記受信ノードに送信し、
前記復号部は、前記総和を2進表記したときに1が立っているビットに対応する冪指数を前記整数値と特定することにより、前記総和から前記整数値を復号することを特徴とする付記1に記載の情報処理装置。
(付記5) 前記第1の送信部は、前記送信データがゼロを示すデータである場合には、前記2の冪乗に代えてゼロを送信することを特徴とする付記4に記載の情報処理装置。
(付記6) 前記復号部は、特定した前記整数値が割り当てられた前記送信ノードに対応する前記符号化ベクトルの成分を用いて前記連立一次方程式の前記係数を生成することを特徴とする付記4に記載の情報処理装置。
(付記7) 複数の前記符号化ベクトルの成分を並べた行列の要素のうち、任意の複数の列番号と、複数の前記列番号に等しい複数の行番号とで特定される複数の要素を備えた正方行列は正則であることを特徴とする付記1に記載の情報処理装置。
(付記8) 複数の前記送信ノードの全ての個数をN、前記N以下の整数をk、複数の前記送信ノードの各々を識別する整数値をi、前記N以上の最小の素数をp、前記pで前記iを割ったときの余りをres(i)としたときに、前記符号化ベクトルは(1, res(i), res(i2), …res(ik-1))であることを特徴とする付記1に記載の情報処理装置。
(Appendix 1) An information processing device comprising a plurality of transmission nodes, an arithmetic device, and a reception node,
The transmitting node
a first vector obtained by encoding the transmission data by scalar-multiplying the encoding vector corresponding to the transmission node, among the plurality of encoding vectors associated with each of the plurality of transmission nodes, by the transmission data; A first calculation unit that calculates
a first transmission unit that transmits the first vector to the arithmetic unit;
The computing device is
a second calculation unit that calculates a second vector obtained by adding the first vectors transmitted by each of the plurality of transmission nodes;
a second transmitter that transmits the second vector to the receiving node;
The receiving node
The transmission data is obtained by solving a simultaneous linear equation with each component of the encoded vector corresponding to each of the transmission nodes as a coefficient, the simultaneous linear equation with each component of the second vector as a constant term. having a decoding unit for decoding,
An information processing device characterized by:
(Appendix 2) The information processing apparatus according to
(Appendix 3) Each of the plurality of transmission nodes further includes an execution unit that executes computation jobs in parallel,
The execution unit outputs the transmission data indicating non-zero when the calculation job ends abnormally, and outputs the transmission data indicating zero when the calculation job ends normally. 3. The information processing device according to 2.
(Additional Note 4) The first transmission unit transmits to the arithmetic device a power of 2 whose exponent is an integer value that identifies itself,
The second calculation unit calculates the sum of the powers of 2 transmitted by each of the transmission nodes,
The second transmitting unit transmits the sum to the receiving node,
The decoding unit decodes the integer value from the sum by identifying a power exponent corresponding to a bit set to 1 when the sum is expressed in binary notation as the integer value. 1. The information processing device according to 1.
(Supplementary note 5) The information processing according to
(Supplementary note 6)
(Appendix 7) comprising a plurality of elements specified by a plurality of arbitrary column numbers and a plurality of row numbers equal to the plurality of column numbers among the elements of the matrix in which the components of the plurality of encoded vectors are arranged; The information processing apparatus according to
(Appendix 8) N is the total number of the plurality of transmission nodes, k is an integer equal to or less than the N, i is an integer value that identifies each of the plurality of transmission nodes, p is the smallest prime number equal to or greater than the N, and The encoded vector is (1, res(i), res(i 2 ), ... res(i k-1 )), where res(i) is the remainder when i is divided by p. The information processing apparatus according to
1…並列計算機、2…送信ノード、3…リダクション装置、4…受信ノード、10…情報処理装置、11…ノード、12…中継装置、13…演算装置、14…プロセッサ、15…メモリ、16…ネットワークインターフェース、17…プロセッサ、18…メモリ、21…送信ノード、22…受信ノード、31…実行部、32…第1の算出部、33…第1の送信部、35…第1の受信部、36…第2の算出部、37…第2の送信部、38…第2の受信部、39…復号部、51…識別符号部、52…符号化ペイロード、53…識別符号部、54…符号化ペイロード。
Claims (5)
前記送信ノードは、
複数の前記送信ノードの各々に対応付けられた複数の符号化ベクトルのうち、自身に対応する前記符号化ベクトルを送信データでスカラ倍することにより、前記送信データを符号化した第1のベクトルを算出する第1の算出部と、
前記第1のベクトルを前記演算装置に送信する第1の送信部とを有し、
前記演算装置は、
複数の前記送信ノードの各々が送信した前記第1のベクトル同士を加算した第2のベクトルを算出する第2の算出部と、
前記第2のベクトルを前記受信ノードに送信する第2の送信部とを有し、
前記受信ノードは、
前記送信ノードの各々に対応する前記符号化ベクトルの各成分を係数とする連立一次方程式であって、前記第2のベクトルの各成分を定数項とする連立一次方程式を解くことにより前記送信データを復号する復号部を有する、
ことを特徴とする情報処理装置。 An information processing device comprising a plurality of transmitting nodes, computing devices, and receiving nodes,
The transmitting node
a first vector obtained by encoding the transmission data by scalar-multiplying the encoding vector corresponding to the transmission node, among the plurality of encoding vectors associated with each of the plurality of transmission nodes, by the transmission data; A first calculation unit that calculates
a first transmission unit that transmits the first vector to the arithmetic unit;
The computing device is
a second calculation unit that calculates a second vector obtained by adding the first vectors transmitted by each of the plurality of transmission nodes;
a second transmitter that transmits the second vector to the receiving node;
The receiving node
The transmission data is obtained by solving a simultaneous linear equation with each component of the encoded vector corresponding to each of the transmission nodes as a coefficient, the simultaneous linear equation with each component of the second vector as a constant term. having a decoding unit for decoding,
An information processing device characterized by:
前記第2の算出部は、前記送信ノードの各々が送信した前記2の冪乗の総和を算出し、
前記第2の送信部は、前記総和を前記受信ノードに送信し、
前記復号部は、前記総和を2進表記したときに1が立っているビットに対応する冪指数を前記整数値と特定することにより、前記総和から前記整数値を復号することを特徴とする請求項1に記載の情報処理装置。 The first transmission unit transmits to the arithmetic device a power of 2 whose exponent is an integer value that identifies itself,
The second calculation unit calculates the sum of the powers of 2 transmitted by each of the transmission nodes,
The second transmitting unit transmits the sum to the receiving node,
The decoding unit decodes the integer value from the sum by specifying, as the integer value, an exponent corresponding to a bit set to 1 when the sum is expressed in binary notation. Item 1. The information processing apparatus according to item 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019142773A JP7277756B2 (en) | 2019-08-02 | 2019-08-02 | Information processing equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019142773A JP7277756B2 (en) | 2019-08-02 | 2019-08-02 | Information processing equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021026429A JP2021026429A (en) | 2021-02-22 |
JP7277756B2 true JP7277756B2 (en) | 2023-05-19 |
Family
ID=74664004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019142773A Active JP7277756B2 (en) | 2019-08-02 | 2019-08-02 | Information processing equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7277756B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015233178A (en) | 2014-06-09 | 2015-12-24 | 富士通株式会社 | Information aggregation system, program, and method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004072271A (en) * | 2002-08-02 | 2004-03-04 | Kyushu Ando Denki Kk | Apparatus management system and method |
JP2009060410A (en) * | 2007-08-31 | 2009-03-19 | Naoki Suehiro | Data transmission method, data transmitter, and data receiver |
JP6597231B2 (en) * | 2015-11-27 | 2019-10-30 | 富士通株式会社 | Arithmetic device, program, information processing method |
-
2019
- 2019-08-02 JP JP2019142773A patent/JP7277756B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015233178A (en) | 2014-06-09 | 2015-12-24 | 富士通株式会社 | Information aggregation system, program, and method |
Also Published As
Publication number | Publication date |
---|---|
JP2021026429A (en) | 2021-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957120B1 (en) | Secret sharing method, secret sharing system, distribution apparatus, and program | |
US20210194504A1 (en) | Encoding method and device, and apparatus | |
US9484959B2 (en) | Error correction encoding method and error correction encoding device | |
US8402353B2 (en) | Cyclic code processing circuit, network interface card, and cyclic code processing method | |
US10362151B2 (en) | Coding in Galois fields with reduced complexity | |
US20200228238A1 (en) | Polar Code Encoding Method and Apparatus | |
Kakar et al. | Uplink-downlink tradeoff in secure distributed matrix multiplication | |
CN115906126A (en) | Data processing method and device in multi-party security computing | |
EP3297171B1 (en) | Efficient erasure decoding for mds codes | |
JP7277756B2 (en) | Information processing equipment | |
Ardakani et al. | On allocation of systematic blocks in coded distributed computing | |
US11316534B2 (en) | Encoding method and device, decoding method and device, and storage medium | |
CN112532252A (en) | Encoding method, decoding method, electronic device, and storage medium | |
Das et al. | Distributed matrix computations with low-weight encodings | |
EP3297170B1 (en) | Efficient reed-solomon encoding | |
JP2010541466A (en) | Method and apparatus for multiple description coding | |
US20170155565A1 (en) | Calculation device, program, and information processing method | |
Lvov et al. | Initialization algorithms for convolutional network coding | |
CN109951250B (en) | LDPC encoding method and apparatus for communication signals | |
JP2017175495A (en) | Transmitter, receiver, communication system, method and program | |
Anisimov et al. | Robust prefix encoding using lower (2, 3) number representation | |
Das et al. | Preserving Sparsity and Privacy in Straggler-Resilient Distributed Matrix Computations | |
US20230130624A1 (en) | Secure computation system, secure computation server apparatus, securecomputation method, and secure computation program | |
CN116781214B (en) | Decoding module generation method, device and readable storage medium | |
US11689221B1 (en) | BCH fast soft decoding beyond the (d-1)/2 bound |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220407 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230308 |
|
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: 20230404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7277756 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |