JP7277756B2 - Information processing equipment - Google Patents

Information processing equipment Download PDF

Info

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
Application number
JP2019142773A
Other languages
Japanese (ja)
Other versions
JP2021026429A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019142773A priority Critical patent/JP7277756B2/en
Publication of JP2021026429A publication Critical patent/JP2021026429A/en
Application granted granted Critical
Publication of JP7277756B2 publication Critical patent/JP7277756B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2017-097795号公報JP 2017-097795 A

一側面によれば、本発明は、計算量を低減することを目的とする。 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は、検討に使用した並列計算機の構成図である。FIG. 1 is a configuration diagram of a parallel computer used for the study. 図2は、本実施形態に係る情報処理装置のハードウェア構成図である。FIG. 2 is a hardware configuration diagram of the information processing apparatus according to this embodiment. 図3は、本実施形態に係る情報処理装置10の機能構成図である。FIG. 3 is a functional configuration diagram of the information processing apparatus 10 according to this embodiment. 図4は、本実施形態に係る送信ノードが演算装置に送信するデータのフォーマットの一例を示す図である。FIG. 4 is a diagram showing an example of the format of data that the transmission node according to this embodiment transmits to the arithmetic device. 図5は、本実施形態におけるリダクション操作により得られたデータのフォーマットの一例を示す図である。FIG. 5 is a diagram showing an example of the format of data obtained by the reduction operation in this embodiment. 図6は、本実施形態に係る送信ノードが行う処理について説明するためのフローチャートである。FIG. 6 is a flowchart for explaining the processing performed by the transmission node according to this embodiment. 図7は、本実施形態において、総和に基づいて各送信ノードの識別子を復号する処理について説明するためのフローチャートである。FIG. 7 is a flowchart for explaining the process of decoding the identifier of each transmission node based on the sum in this embodiment. 図8は、図5の例で得られるidc_listの内容を模式的に示す図である。FIG. 8 is a diagram schematically showing the contents of idc_list obtained in the example of FIG. 図9は、本実施形態に係る受信ノードが各送信データを復号する処理について説明するためのフローチャートである。FIG. 9 is a flowchart for explaining the process of decoding each piece of transmission data by the receiving node according to this embodiment.

本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
図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 parallel computer 1 is a distributed memory type parallel computer and has a plurality of transmission nodes 2 , reduction devices 3 and reception nodes 4 .

このうち、複数の送信ノード2の各々は、計算ジョブを並列して実行する計算機である。並列計算機1の規模にもよるが、送信ノード2の個数は数100~数10万程度である。これらの大部分の送信ノード2においては計算ジョブが正常に終了するが、数個程度の送信ノード2では計算ジョブの実行中に異常が発生する場合がある。そのような異常としてはハードウェアの障害やオーバーフロー等がある。 Among these, each of the plurality of transmission nodes 2 is a computer that executes computation jobs in parallel. Depending on the scale of the parallel computer 1, the number of transmission nodes 2 is about several hundred to several hundred thousand. Most of the sending nodes 2 complete the calculation job normally, but some of the sending nodes 2 may experience an error during execution of the calculation job. Such anomalies include hardware failures and overflows.

異常が発生した送信ノード2は、その異常を識別するエラーコードを送信データとしてリダクション装置3に送信する。ここでは、エラーコードは整数値とする。例えば、計算時にオーバーフローが生じた場合のエラーコードは「2」とし、ハードウェアの障害によって計算が終了した場合のエラーコードは「3」等とする。 The transmission node 2 in which an abnormality has occurred transmits an error code identifying the abnormality to the reduction device 3 as transmission data. Here, the error code is assumed to be an integer value. For example, the error code is "2" when an overflow occurs during calculation, and the error code is "3" when the calculation ends due to a hardware failure.

なお、計算が正常に終了した送信ノード2は、乗法の単位元である「1」をエラーコードとして送信する。 Note that the transmission node 2 that has completed the calculation normally transmits "1", which is the unit element of multiplication, as an error code.

リダクション装置3は、送信ノード2からエラーコードを受信し、そのエラーコードに対してMPIのリダクション操作を行う装置である。リダクション装置3が行うリダクション操作にはReduceとAllreduceとがある。Reduceは、エラーコードに対して種々の演算を行い、その演算結果をリダクション装置3のみが保有する操作である。また、Allreduceは、その演算結果を複数の送信ノード2に共有させる操作である。 The reduction device 3 is a device that receives an error code from the transmission node 2 and performs an MPI reduction operation on the error code. Reduction operations performed by the reduction device 3 include Reduce and Allreduce. Reduce is an operation in which various calculations are performed on an error code and only the reduction device 3 holds the calculation results. Allreduce is an operation for sharing the operation result among a plurality of transmission nodes 2 .

この例では、リダクション装置3は、異常が発生した全ての送信ノード2のエラーコードの総積を求める乗法のReduceを行うものとする。例えば、異常が発生した三つの送信ノード2がそれぞれ「2」、「3」、「2」のエラーコードを送信し、残りの正常な送信ノード2がエラーコードとして「1」を送信した場合を考える。この場合は、リダクション装置3は、これらのエラーコードの総積として12(=2×3×2)を得る。 In this example, it is assumed that the reduction device 3 performs multiplicative Reduce to obtain the total product of the error codes of all transmission nodes 2 in which an abnormality has occurred. For example, three sending nodes 2 in which an abnormality has occurred send error codes "2", "3", and "2", respectively, and the remaining normal sending nodes 2 send "1" as the error code. think. In this case, the reduction device 3 obtains 12 (=2*3*2) as the total product of these error codes.

そして、受信ノード4は、リダクション装置3からエラーコードの総積を受信し、その総積から以下のようにエラーコードを求める。 Then, the receiving node 4 receives the total product of the error codes from the reduction device 3, and obtains the error code from the total product as follows.

まず、送信ノード2の個数をkとし、i番目の送信ノード2が整数値のエラーコードEiを生成する。また、相異なるk個の整数Ai(i=1, …, k)を予め用意しておき、これらの整数を全ての送信ノード2に配布しておく。 First, let the number of sending nodes 2 be k, and the i-th sending node 2 generates an integer error code Ei . Also, k different integers A i (i=1, . . . , k) are prepared in advance and distributed to all the transmission nodes 2 .

この場合、i番目の送信ノード2は、リダクション装置3にk個のデータA1+Ei、A2+Ei、…、Ak+Eiを送信する。 In this case, the i-th transmission node 2 transmits k pieces of data A 1 +E i , A 2 +E i , . . . , A k +E i to the reduction device 3 .

リダクション装置3は、全ての送信ノード2が送信したこれらのデータに対して以下の式(1)のリダクション操作を行うことによりk個の値G(Ai)を算出し、これらの値の各々を受信ノード4に送信する。 The reduction device 3 calculates k values G(A i ) by performing the reduction operation of the following formula (1) on these data transmitted by all the transmission nodes 2, and each of these values to the receiving node 4.

Figure 0007277756000001
Figure 0007277756000001

ここで、式(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.

Figure 0007277756000002
Figure 0007277756000002

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 receiving node 4 uses k values G(A i ) received from the reduction device 3 to decode the error code E i (i=1, . . . , k).

以上説明した並列計算機1によれば、受信ノード4が代数方程式F(X)=0の根を求めることにより、k個の送信ノード2が送信したエラーコードEi(i=1, …, k)を復号することができる。 According to the parallel computer 1 described above, the error codes E i (i=1, . . . , k ) can be decrypted.

特に、この例では、異常が発生した一部の送信ノード2のみが通信に参加する。このような通信は情報集約型通信とも呼ばれる。情報集約型通信では、全ての送信ノード2が通信に参加する場合と比較して通信速度が高速になることが期待できる。 Particularly, in this example, only some transmission nodes 2 in which an abnormality has occurred participate in the communication. Such communication is also called information-intensive communication. In information-intensive communication, it can be expected that the communication speed will be faster than in the case where all sending nodes 2 participate in the communication.

しかしながら、この方法では、代数方程式の根を求めるために膨大な計算量が必要となり、受信ノード4が高速にエラーコードEi(i=1, …, k)を復号することができない。 However, this method requires a huge amount of calculation to find the roots of the algebraic equation, and the receiving node 4 cannot decode the error code E i (i=1, . . . , k) at high speed.

以下に、復号に要する計算量を低減することができる本実施形態について説明する。 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 information processing device 10 is a distributed memory type parallel computer, and includes a plurality of nodes 11, relay devices 12, and arithmetic devices 13, respectively.

このうち、複数のノード11の各々は、計算ジョブを並列実行する計算機である。ノード11の個数は特に限定されないが、例えば数100~数10万程度の個数のノード11が情報処理装置10に設けられる。 Among these, each of the plurality of nodes 11 is a computer that executes computation jobs in parallel. Although the number of nodes 11 is not particularly limited, the information processing apparatus 10 is provided with several hundred to several hundred thousand nodes 11, for example.

また、各ノード11は、プロセッサ14とメモリ15とを備えており、プロセッサ14とメモリ15が協働して計算ジョブを実行する。なお、プロセッサ14は、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)等のような計算機能を備えたハードウェアである。また、メモリ15は、DRAM(Dynamic Random Access Memory)等の揮発性メモリである。 Each node 11 also includes a processor 14 and a memory 15 that cooperate to perform computational jobs. Note that the processor 14 is hardware having a calculation function such as a CPU (Central Processing Unit) or a GPU (Graphical Processing Unit). The memory 15 is a volatile memory such as DRAM (Dynamic Random Access Memory).

更に、各ノード11はネットワークインターフェース16を有しており、そのネットワークインターフェース16を介して各ノード11と中継装置12とが接続される。 Furthermore, each node 11 has a network interface 16 , and each node 11 and the relay device 12 are connected via the network interface 16 .

中継装置12は、例えばスイッチやルータであり、各ノード11と演算装置13とを相互に接続する。また、この例では、複数の中継装置12の各々がネットワークを介して相互に接続される。そのネットワークとしては、例えばLAN(Local Area Network)がある。 The relay device 12 is, for example, a switch or router, and connects each node 11 and the arithmetic device 13 to each other. Also, in this example, each of the plurality of relay devices 12 is connected to each other via the network. Such networks include, for example, LANs (Local Area Networks).

演算装置13は、各ノード11からエラーコードを受信し、そのエラーコードに対してMPIのリダクション操作を行うリダクション装置である。演算装置13が行うリダクション操作としては、例えば前述のReduceとAllreduceとがある。また、演算装置13は、プロセッサ17とメモリ18とを有しており、これらが協働することによりリダクション操作が行われる。 The arithmetic device 13 is a reduction device that receives an error code from each node 11 and performs an MPI reduction operation on the error code. Reduction operations performed by the arithmetic unit 13 include, for example, Reduce and Allreduce described above. Further, the arithmetic device 13 has a processor 17 and a memory 18, and the reduction operation is performed by cooperation of these.

なお、プロセッサ17は、CPUやGPU等のようなハードウェアである。そして、メモリ18は、DRAM等の揮発性メモリである。 Note that the processor 17 is hardware such as a CPU or a GPU. The memory 18 is a volatile memory such as DRAM.

また、この例では、ノード11の筐体とは別の筐体に演算装置13を収容する。そのような演算装置13は独立筐体型の演算装置とも呼ばれる。なお、ノード11の筐体に収容されたノード内蔵型の演算装置13を用いてもよい。 Also, in this example, the computing device 13 is accommodated in a housing different from the housing of the node 11 . Such an arithmetic device 13 is also called an independent housing type arithmetic device. Note that the node-embedded arithmetic device 13 housed in the housing of the node 11 may be used.

[機能構成]
図3は、本実施形態に係る情報処理装置10の機能構成図である。
図3に示すように、情報処理装置10は、複数の送信ノード21、受信ノード22、及び演算装置13を備える。
[Function configuration]
FIG. 3 is a functional configuration diagram of the information processing apparatus 10 according to this embodiment.
As shown in FIG. 3, the information processing device 10 includes a plurality of transmission nodes 21, reception nodes 22, and arithmetic devices 13. FIG.

この例では、複数のノード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 node 22 and the remaining nodes 11 are the transmitting nodes 21 . Also, the number of transmission nodes 21 is N, and each transmission node 21 is represented by node 0 to node N-1 .

これらの送信ノード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 transmission nodes 21 .

このうち、識別子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 transmission node 21 . In the following, integer values of 0 to N-1 are assigned to each transmission node 21 as identifiers id 0 to id N -1 so that id r =r.

また、識別符号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 transmission node 21 is associated with N encoded vectors encdvec(node 0 ) to encdvec(node N−1 ). The encoding vectors encdvec(node 0 ) to encdvec(node N−1 ) are vectors for encoding the transmission data of the transmission node 21, and each transmission node is encoded when the information processing device 10 is activated or when a calculation job is started. 21 is stored in the memory 15 .

ここでは、符号化ベクトル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 transmission nodes 21 .

以下では、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).

Figure 0007277756000003
Figure 0007277756000003

また、以下の式(4)のようにj個の基底ベクトルが張るVの部分空間をUとする。 Also, let U be a subspace of V spanned by j basis vectors as in the following equation (4).

Figure 0007277756000004
Figure 0007277756000004

任意の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.

Figure 0007277756000005
Figure 0007277756000005

本実施形態では、式(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, .

Figure 0007277756000006
Figure 0007277756000006

そして、各成分を要素とする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).

Figure 0007277756000007
Figure 0007277756000007

この行列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 .

Figure 0007277756000008
Figure 0007277756000008

このとき、式(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 memory 15 of each transmission node 21 when the information processing apparatus 10 is activated or when a calculation job is started.
Refer to FIG. 3 again.

各々の送信ノード21は、実行部31、第1の算出部32、及び第1の送信部33を有する。これらの各部は、プロセッサ14とメモリ15が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。 Each transmission node 21 has an execution unit 31 , a first calculation unit 32 and a first transmission unit 33 . These units are implemented by the processor 14 and the memory 15 working together to execute the information processing program according to the present embodiment.

このうち、実行部31は、各送信ノード21に割り振られた計算ジョブを実行する。また、nodei(i = 0, …, N-1)における実行部31は、自身に割り当てられた計算ジョブが異常により終了したかを示すエラーコードEiを出力する。そのような異常としてはハードウェアの障害やオーバーフロー等がある。 Among these, the execution unit 31 executes a calculation job assigned to each transmission node 21 . Also, the execution unit 31 at node i (i=0, . . . , N-1) outputs an error code Ei indicating whether the calculation job assigned to itself ended due to an error. Such anomalies include hardware failures and overflows.

この例ではエラーコード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 execution unit 31 may output an error code E i when the calculation load of its own device exceeds a threshold. In this case, the execution unit 31 outputs zero as the error code Ei when the computational load does not exceed the threshold, and outputs a non-zero error code Ei when the computational load exceeds the threshold. . For example, the execution unit 31 may output the time when the computational load exceeds the threshold as the error code Ei .

また、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 transmission node 21 whose calculation job ended normally becomes zero, and the transmission data D i of the transmission node 21 whose calculation job ended abnormally becomes non-zero.

そして、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 first transmission unit 33 of the i-th ( i=0, . The first vector V i is sent to the arithmetic unit 13 . When the transmission data D i is zero, the first transmission unit 33 transmits zero to the arithmetic unit 13 instead of "2 i " of the identification code idcode.

一方、演算装置13は、第1の受信部35、第2の算出部36、及び第2の送信部37を有する。これらの各部は、プロセッサ17(図2参照)とメモリ18が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。 On the other hand, the computing device 13 has a first receiver 35 , a second calculator 36 and a second transmitter 37 . These units are implemented by the processor 17 (see FIG. 2) and the memory 18 working together to execute the information processing program according to the present embodiment.

このうち、第1の受信部35は、N個の送信ノード21の各々から第1のベクトルVi(i = 0, …, N-1)を受信する。更に、第1の受信部35は、各々の送信ノード21から識別符号idcodeの「2i」を受信する。 Among them, the first receiving unit 35 receives the first vector V i (i=0, . . . , N−1) from each of the N transmitting nodes 21 . Furthermore, the first receiving unit 35 receives the identification code idcode “2 i ” from each transmission node 21 .

そして、第2の算出部36は、MPIの加法のリダクション操作により、N個の第1のベクトルVi同士を加算した第2のベクトルW(= V1+V2+ … + VN)を算出する。なお、前述のように、計算ジョブが正常に終了した送信ノード21においては第1のベクトルViはゼロベクトルとなる。よって、第2のベクトルWは、N個の送信ノード21のうちで計算ジョブが異常終了した一部の送信ノード21における第1のベクトルViの和となる。 Then, the second calculation unit 36 calculates a second vector W (=V 1 +V 2 + . calculate. Incidentally, as described above, the first vector V i becomes a zero vector in the transmission node 21 where the calculation job has normally ended. Therefore, the second vector W is the sum of the first vectors V i in some of the N transmission nodes 21 whose calculation jobs have ended abnormally.

更に、第2の算出部36は、N個の送信ノード21が送信した識別符号idcodeiの「2i」の総和Sを算出する。計算ジョブが正常に終了した送信ノード21は「2i」に代えてゼロを送信するが、総和Sにゼロは寄与しない。よって、総和Sは、N個の送信ノード21のうちで計算ジョブが異常終了した一部の送信ノード21における識別符号idcodeiの「2i」の総和となる。 Further, the second calculator 36 calculates the sum S of “2 i ” of the identification codes idcode i transmitted by the N transmission nodes 21 . A sending node 21 that has successfully completed a computation job sends zero instead of "2 i ", but zero contributes to the sum S. Therefore, the total sum S is the sum of “2 i ” of the identification code idcode i of some of the N transmitting nodes 21 whose calculation jobs have ended abnormally.

そして、第2の送信部37は、第2のベクトルWと総和Sとを受信ノード22に送信する。 The second transmitting unit 37 then transmits the second vector W and the sum S to the receiving node 22 .

その受信ノード22は、第2の受信部38と復号部39とを有する。これらの各部は、プロセッサ14(図2参照)とメモリ15が協働して本実施形態に係る情報処理プログラムを実行することにより実現される。 The receiving node 22 has a second receiving section 38 and a decoding section 39 . These units are implemented by the processor 14 (see FIG. 2) and the memory 15 working together to execute the information processing program according to the present embodiment.

また、受信ノード22のメモリ15には前述の符号化行列A0が予め格納される。メモリ15に符号化行列A0を格納するタイミングは特に限定されず、例えば情報処理装置10の起動時や計算ジョブの開始時にメモリ15に格納される。 The encoding matrix A 0 is stored in advance in the memory 15 of the receiving node 22 . The timing for storing the encoded matrix A0 in the memory 15 is not particularly limited, and is stored in the memory 15, for example, when the information processing apparatus 10 is started or when a calculation job is started.

また、第2の受信部38は、演算装置13から第2のベクトルWを受信する。 Also, the second receiving unit 38 receives the second vector W from the computing device 13 .

そして、復号部39は、第2のベクトルWを用いて送信データDiを以下のように復号する。 Then, the decoding unit 39 uses the second vector W to decode the transmission data D i as follows.

まず、復号部39は、2進表記された総和Sを利用して、ゼロベクトルではない第1のベクトルViを送信した送信ノード21を以下のように特定する。 First, the decoding unit 39 uses the binary summation S to identify the transmission node 21 that transmitted the first vector V i that is not the zero vector, as follows.

例えば、識別子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 transmission nodes 21 with identifiers id i of 1, 3, and 5 are non-zero, and these transmission nodes 21 transmit first vectors V i that are not zero vectors. It is assumed that the transmission data D i in transmission nodes 21 whose identifiers id i are other than 1, 3, and 5 is zero, and that these transmission nodes 21 have transmitted zero instead of powers of two.

この場合、識別子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 nodes 21 whose identifiers id i are other than 1, 3, and 5 do not contribute to the total sum S, so the total sum S is 2 1 +2 3 +2 5 . This is 101010 in binary notation. The exponents of the bits set to 1 in this binary notation are 1, 3, 5, which is equal to the identifier id i . As a result, the decoding unit 39 can decode the identifier id i of the transmission node 21 that has transmitted the non-zero transmission data from the total sum S.

次に、復号部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 decoding unit 39 uses the identifier id i decoded in this way and the encoding matrix A0 to generate a submatrix A as follows. First, the decoding unit 39 generates a submatrix A whose row number and column number are equal to the identifier id i among the components of the encoding matrix A0 . For example, if the identifier id i is 1, 3, 5 as above, the 3 × 3 matrix created by α ij (i = 1, 3, 5, j = 1, 3, 5) is the minor matrix A becomes.

なお、その小行列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 decoding unit 39 generates the submatrix A using the encoded vector components corresponding to the identifiers id i of 1, 3, and 5, respectively.

そして、復号部39は、次の式(9)で表される連立一次方程式を解くことにより送信データDiを復号する。 Then, the decoding unit 39 decodes the transmission data D i by solving the simultaneous linear equations represented by the following equation (9).

Figure 0007277756000009
Figure 0007277756000009

なお、式(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.

Figure 0007277756000010
これと式(9)を合わせると次の式(11)が得られる。
Figure 0007277756000010
Combining this with equation (9), the following equation (11) is obtained.

Figure 0007277756000011
Figure 0007277756000011

前述のように小行列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 decoding unit 39 may solve equation (9) by, for example, Gaussian elimination.

以上説明した情報処理装置10によれば、受信ノード22の復号部39が式(9)の連立一次方程式を解くことにより送信データDiを復号する。連立一次方程式を解くのに要する計算量は、式(2)の代数方程式を解くのに要する計算量と比較して少ないため、受信ノード22が高速に送信データDiを復号することができる。 According to the information processing apparatus 10 described above, the decoding unit 39 of the receiving node 22 decodes the transmission data D i by solving the simultaneous linear equations of Equation (9). Since the amount of calculation required to solve the simultaneous linear equations is smaller than the amount of calculation required to solve the algebraic equation of Equation (2), the receiving node 22 can decode the transmission data D i at high speed.

また、送信データ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 transmission node 21 with the transmission data D i being non-zero. be done. Solving the simultaneous linear equations (9) with the submatrix A as the coefficient matrix decodes only the non-zero transmission data. Therefore, it is not necessary to unnecessarily decode transmission data D i having a value of zero, and the amount of calculation can be further reduced.

更に、このように計算量が低減すると、送信データDiとしてエラーコードを採用した場合に、異常のある送信ノード21でどのようなエラーが発生したのかを受信ノード22が速やかに特定することができる。 Furthermore, when the amount of calculation is reduced in this way, the receiving node 22 can quickly identify what kind of error has occurred in the abnormal transmitting node 21 when an error code is adopted as the transmission data D i . can.

しかも、識別符号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 transmission node 21 transmits zero instead of the power of 2 “2 r ”. Identifier id i can be decrypted.

[具体例]
次に、本実施形態の具体例について説明する。
この例では各パラメータを以下の値とする。
・送信ノード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 transmission nodes 21 that transmit non-zero error codes: 3 - Identifiers id of transmission nodes 21 that transmit non-zero error codes: 0, 1, 127

また、符号化ベクトル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 node 21 is as follows.

・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 transmission node 21 transmits to the arithmetic device 13. As shown in FIG.

図4に示すように、各送信ノード21が送信するデータは、識別符号部51と符号化ペイロード52とを有する。 As shown in FIG. 4, data transmitted by each transmission node 21 has an identification code portion 51 and an encoded payload 52 .

このうち、識別符号部51は、各送信ノード21の識別符号idcodeiを格納する領域である。なお、送信データDiの値がゼロの送信ノード21においては、識別符号idcodeiに代えてゼロが識別符号部51に格納される。例えば、計算が正常に終了してエラーコードEiがゼロとなった送信ノード21においてはゼロが識別符号部51に格納される。 Among them, the identification code part 51 is an area for storing the identification code idcode i of each transmission node 21 . Incidentally, in the transmission node 21 where the value of the transmission data D i is zero, zero is stored in the identification code section 51 instead of the identification code idcode i . For example, zero is stored in the identification code section 51 in the transmitting node 21 where the calculation has been completed normally and the error code Ei has become zero.

また、この例では、識別符号部51をword1とword2に分ける。なおword1とword2の長さはいずれも64bitである。そして、識別子idiが0~63の識別符号idcodeiをword1に格納する。 Also, in this example, the identification code portion 51 is divided into word1 and word2. The lengths of word1 and word2 are both 64 bits. Then, an identification code idcode i whose identifier id i is 0 to 63 is stored in word1.

一方、識別子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 nodes 21 with identifiers id i of 64 to 127, the value obtained by subtracting 64 from the identifier id i is used as an identification code idcode i that is a power of 2, and this idcode i is stored in word2. For example, for the transmitting node 21 whose identifier id is 127, "2 63 (=2 127-64 )" is stored in word2 as the node's identification code idcode 127 .

そして、符号化ペイロード52は、各送信ノード21の第1のベクトルViを格納する領域である。ここでは、符号化ペイロード52をword1~word3に分け、これらの各々に第1のベクトルViの第1成分、第2成分、及び第3成分を格納する。なお、word1~word3の長さはいずれも64bitである。 The encoded payload 52 is an area for storing the first vector V i of each transmitting node 21 . Here, the encoded payload 52 is divided into word1 to word3, each of which stores the first, second and third components of the first vector V i . The length of word1 to word3 is all 64 bits.

また、送信データDiの値がゼロの送信ノード21においては第1のベクトルViはゼロベクトルとなるため、word1~word3の各々には「0」が格納される。 Also, since the first vector V i is a zero vector at the transmission node 21 where the value of the transmission data D i is zero, "0" is stored in each of word1 to word3.

演算装置13は、このようなデータを全ての送信ノード21から受信し、前述のような加法によるリダクション操作を行う。そのリダクション操作により、第2のベクトルWと総和Sとが算出されることになる。 Arithmetic unit 13 receives such data from all transmission nodes 21 and performs a reduction operation by addition as described above. A second vector W and a sum S are calculated by the reduction operation.

図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 arithmetic unit 13 after the reduction operation, and has an identification code portion 53 and an encoded payload 54 .

このうち、識別符号部53はword1とword2に分けられる。そして、word1に、識別子idiが0~63の送信ノード21の識別符号idcodeiの総和が格納される。また、word2には、識別子idiが64~127の送信ノード21の識別符号idcodeiの総和が格納される。 Among them, the identification code part 53 is divided into word1 and word2. Then, word1 stores the sum of the identification codes idcode i of the transmission nodes 21 whose identifiers id i are 0 to 63. Word2 stores the sum of the identification codes idcodei of the transmission nodes 21 whose identifiers idi are 64 to 127.

一方、符号化ペイロード54はword1~word3に分けられる。word1は、第2のベクトルWの第1成分を格納する領域である。同様に、word2とword3は、それぞれ第2のベクトルWの第2成分と第3成分を格納する領域である。 On the other hand, the encoded payload 54 is divided into word1 to word3. word1 is an area for storing the first component of the second vector W; Similarly, word2 and word3 are areas for storing the second and third components of the second vector W, respectively.

受信ノード22は、これらのデータを受信して、式(9)と同様に以下の式(12)の連立一次方程式を解く。 Receiving node 22 receives these data and solves the simultaneous linear equations of Equation (12) below in the same manner as Equation (9).

Figure 0007277756000012
Figure 0007277756000012

なお、式(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 node 22 by arranging the encoded vectors.

式(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 transmission node 21. As shown in FIG.

まず、ステップS1において、各送信ノード21の第1の算出部32が、送信すべき送信データDiがあるかどうかを判断する。例えば、識別子idiを有する送信ノード21においては、エラーコードEiがゼロのときに送信すべきデータはない(NO)と判断される。一方、エラーコードEiが非ゼロのときには、送信すべきデータはある(YES)と判断される。
ここでYESと判断された場合にはステップS2に移る。
First, in step S1, the first calculator 32 of each transmission node 21 determines whether or not there is transmission data D i to be transmitted. For example, in the transmitting node 21 having the identifier id i , it is determined that there is no data to be transmitted (NO) when the error code E i is zero. On the other hand, when the error code E i is non-zero, it is determined that there is data to be transmitted (YES).
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 transmission node 21 having the identifier id i , the first calculator 32 calculates the first vector V i by scalar-multiplying the encoded vector encdvec(node i ) by the transmission data D i .

次に、ステップS3に移り、第1の送信部33が、識別符号部51(図4参照)に識別符号idcodeiを格納する。例えば、識別子idiを有する送信ノード21においては、第1の送信部33が「2i」を識別符号部51に格納する。 Next, in step S3, the first transmission section 33 stores the identification code idcode i in the identification code section 51 (see FIG. 4). For example, in the transmitting node 21 having the identifier id i , the first transmitting section 33 stores “2 i ” in the identification code section 51 .

次いで、ステップS4に移り、識別子idiを有する送信ノード21の第1の送信部33が第1のベクトルViの各要素を符号化ペイロード52(図4参照)に格納する。 Next, moving to step S4, the first transmitting unit 33 of the transmitting node 21 having the identifier id i stores each element of the first vector V i in the encoded payload 52 (see FIG. 4).

一方、ステップ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 first transmitting section 33 of the transmitting node 21 having the identifier id i stores "0" in the identification code section 51 (see FIG. 4).

次に、ステップS6に移り、識別子idiを有する送信ノード21の第1の送信部33が符号化ペイロード52(図4参照)に「0」を格納する。 Next, moving to step S6, the first transmitting unit 33 of the transmitting node 21 having the identifier id i stores "0" in the encoded payload 52 (see FIG. 4).

上記のようにしてステップ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 transmission nodes 21 transmits each data of the identification code part 51 and the encoded payload 52 to the arithmetic device 13. FIG.
With the above, the processing of the transmission node 21 is completed.

次に、これらのデータを受信した受信ノード22の処理について説明する。前述のように、受信ノード22が行う処理としては、識別符号idcodeiの総和Sに基づいて各送信ノード21の識別子idiを復号する処理と、第2のベクトルWに基づいて各送信データDiを復号する処理とがある。
まず、前者の処理について説明する。
Next, the processing of the receiving node 22 that receives these data will be described. As described above, the processing performed by the receiving node 22 includes the processing of decoding the identifier id i of each transmitting node 21 based on the sum S of the identification codes idcode i , and the processing of decoding each transmission data D and a process of decoding i .
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 transmission node 21 based on the sum S.

まず、ステップS11において、復号部39が、識別符号部53(図5参照)のword1を変数idc_wordに代入する。変数idc_wordは、識別符号部53のword1とword2の各々において1が立っているビットを特定するための作業用の変数である。 First, in step S11, the decoding unit 39 substitutes word1 of the identification code unit 53 (see FIG. 5) for the variable idc_word. The variable idc_word is a working variable for identifying the bit set to 1 in each of word1 and word2 of the identification code portion 53 .

次に、ステップS12に移り、復号部39が、読み込んだword数を格納するための変数idc_word_countに1を代入する。 Next, moving to step S12, the decoding unit 39 substitutes 1 for the variable idc_word_count for storing the number of read words.

続いて、ステップS13に移り、復号部39がidc_listに空リストを代入する。idc_listは、復号した識別子idiを格納するためのリストである。 Subsequently, the process moves to step S13, and the decoding unit 39 substitutes an empty list for idc_list. idc_list is a list for storing decrypted identifiers id i .

次いで、ステップS14に移り、復号部39が、変数idc_word内に1が立っているビットが存在するかどうかを判断する。
ここでYESと判断された場合にはステップS15に移る。
Next, moving to step S14, the decoding unit 39 determines whether or not there is a bit set to 1 in the variable idc_word.
If YES is determined here, the process moves to step S15.

ステップS15では、復号部39が、変数idc_word内において1が立っているビットを特定し、そのビットに対応する冪指数を識別子idiとしてidc_listに追加する。 In step S15, the decoding unit 39 identifies bits set to 1 in the variable idc_word, and adds exponents corresponding to the bits to the idc_list as identifiers id i .

図5の例では、識別符号部53のword1が「3」であり、これを二進表記すると11となる。よって、0と1が識別子idiであると特定されることになる。 In the example of FIG. 5, the word1 of the identification code portion 53 is "3", which is 11 in binary notation. Thus, 0 and 1 are identified as identifier id i .

次に、ステップS16に移り、復号部39が、識別符号部53のword2を変数idc_wordに代入する。なお、ステップS14においてNOと判断された場合にはステップS15をスキップしてステップS16を行う。 Next, moving to step S16, the decoding unit 39 substitutes word2 of the identification code unit 53 for the variable idc_word. It should be noted that if the determination in step S14 is NO, step S15 is skipped and step S16 is performed.

次いで、ステップS17に移り、復号部39が、変数idc_word_countを1だけインクリメントする。 Next, moving to step S17, the decoding unit 39 increments the variable idc_word_count by one.

続いて、ステップ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 decoding unit 39 determines whether the variable idc_word is the last word of the identification code unit 53 or not. For example, when the value of the variable idc_word_count is 2, the decoding unit 39 determines that the variable idc_word is the last word of the identification code unit 53 (YES). Then, when the value of the variable idc_word_count is smaller than 2, the decoding section 39 determines that the variable idc_word is not the last word of the identification code section 53 (NO).

ここで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 transmission node 21 is stored is completed.

図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 node 22 based on the second vector W will be described.

図9は、受信ノード22が各送信データDiを復号する処理について説明するためのフローチャートである。 FIG. 9 is a flowchart for explaining the process of decoding each transmission data D i by the receiving node 22 .

まず、ステップS21において、受信ノード22の復号部39が、idc_listに格納されている各識別子idiを昇順に整列する。なお、昇順に代えて降順に各識別子idiを整列してもよい。 First, in step S21, the decoding unit 39 of the receiving node 22 sorts the identifiers id i stored in the idc_list in ascending order. The identifiers id i may be arranged in descending order instead of ascending order.

次に、ステップ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 decoding unit 39 generates an encoded vector corresponding to each identifier id i . An encoding vector can be generated from the encoding matrix A 0 in equation (7). For example, let the identifiers id stored in the idc_list be i 1 , i 2 , . . . ij . Let α ij be the element of the encoding matrix A 0 . At this time, each column of the j×j submatrix A created by α st (s= i 1 , i 2 , … i j , j= i 1 , i 2 , … i j ) is encoded vector encdvec( node i1 ), encdvec(node i2 ), … encdvec(node ij ).

次いで、ステップS23に移り、復号部39が、符号化ベクトルencdvec(nodei1)、encdvec(nodei2)、…encdvec(nodeij)を並べることにより小行列Aを生成する。 Next, moving to step S23, the decoding unit 39 generates a submatrix A by arranging the encoded vectors encdvec(node i1 ), encdvec(node i2 ), . . . encdvec(node ij ).

次に、ステップS24に移り、復号部39が、連立一次方程式ソルバの係数行列に小行列Aを代入する。連立一次方程式ソルバは、受信ノード22のプロセッサ14とメモリ15が協働して実行するプログラムであり、例えばガウスの消去法により連立一次方程式を解くプログラムである。 Next, moving to step S24, the decoding unit 39 substitutes the submatrix A into the coefficient matrix of the simultaneous linear equation solver. The simultaneous linear equation solver is a program executed by the processor 14 and the memory 15 of the receiving node 22 in cooperation, and is a program that solves the simultaneous linear equations by Gaussian elimination, for example.

その連立一次方程式は、式(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 decoding unit 39 substitutes the components w 1 , w 2 , . . . w k of the second vector W into constant terms of the simultaneous linear equation solver. For example, the decoding unit 39 substitutes each component of the second vector W stored in each of word1, word2, and word3 of the encoded payload 54 (see FIG. 5) into the constant term of the simultaneous linear equation solver.

そして、ステップS26に移り、復号部39が連立一次方程式ソルバを実行する。 Then, the process moves to step S26, and the decoding unit 39 executes a simultaneous linear equation solver.

次いで、ステップS27に移り、復号部39が連立一次方程式を解いて得られた解を昇順に並べ、それらを送信データDiであると特定する。
以上により、送信データDiを復号する処理を終了する。
Next, in step S27, the decoding unit 39 arranges the solutions obtained by solving the simultaneous linear equations in ascending order and identifies them as the transmission data D i .
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 transmission nodes 21 that can decode the transmission data D i . For example, if the number of transmission nodes 21 exceeding the resolution k has transmitted the transmission data D i , the transmission data D i cannot be decoded.
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 1, wherein the transmission data is data indicating either zero or non-zero.
(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 4, wherein when the transmission data is data indicating zero, the first transmission unit transmits zero instead of the power of 2. Device.
(Supplementary note 6) Supplementary note 4, wherein the decoding unit generates the coefficients of the simultaneous linear equations using the components of the encoded vector corresponding to the transmission node to which the identified integer value is assigned. The information processing device according to .
(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 1, wherein the square matrix is regular.
(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 Supplementary Note 1, characterized by:

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…符号化ペイロード。 Reference Signs List 1 Parallel computer 2 Transmission node 3 Reduction device 4 Reception node 10 Information processing device 11 Node 12 Relay device 13 Arithmetic device 14 Processor 15 Memory 16 Network interface 17 processor 18 memory 21 transmission node 22 reception node 31 execution unit 32 first calculation unit 33 first transmission unit 35 first reception unit 36... Second calculator 37... Second transmitter 38... Second receiver 39... Decoder 51... Identification code part 52... Encoded payload 53... Identification code part 54... Code payload.

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:
前記送信データは、ゼロと非ゼロのいずれかを示すデータであることを特徴とする請求項1に記載の情報処理装置。 2. The information processing apparatus according to claim 1, wherein said transmission data is data indicating either zero or non-zero. 前記第1の送信部は、自身を識別する整数値を冪指数とする2の冪乗を前記演算装置に送信し、
前記第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.
前記第1の送信部は、前記送信データがゼロを示すデータである場合には、前記2の冪乗に代えてゼロを送信することを特徴とする請求項3に記載の情報処理装置。 4. The information processing apparatus according to claim 3, wherein when the transmission data is data indicating zero, the first transmission unit transmits zero instead of the power of two. 複数の前記符号化ベクトルの成分を並べた行列の要素のうち、任意の複数の列番号と、複数の前記列番号に等しい複数の行番号とで特定される複数の要素を備えた正方行列は正則であることを特徴とする請求項1に記載の情報処理装置。 A square matrix having 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 is 2. The information processing apparatus according to claim 1, wherein the information is regular.
JP2019142773A 2019-08-02 2019-08-02 Information processing equipment Active JP7277756B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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