JPH0962656A - Parallel computers - Google Patents
Parallel computersInfo
- Publication number
- JPH0962656A JPH0962656A JP7216152A JP21615295A JPH0962656A JP H0962656 A JPH0962656 A JP H0962656A JP 7216152 A JP7216152 A JP 7216152A JP 21615295 A JP21615295 A JP 21615295A JP H0962656 A JPH0962656 A JP H0962656A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- register
- communication path
- matrix
- data
- 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.)
- Pending
Links
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、科学技術計算で頻
繁に現れる行列計算のうち、特に行列積を高速に処理す
る並列計算機に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel computer for processing matrix products at high speed among matrix calculations frequently appearing in scientific and technological calculations.
【0002】[0002]
【従来の技術】現在行われている科学技術計算の大半は
線形計算である。これには大規模連立一次方程式を解く
ことや行列の固有値、固有ベクトル問題などが含まれ、
これらの代表的な問題に関しては数値解析というソフト
的な検討は勿論のこと、ベクトル型計算機というハード
的な面からも非常に詳しい検討が積み重ねられている。2. Description of the Related Art Most of the scientific and technological calculations currently performed are linear calculations. This includes solving large-scale simultaneous linear equations, matrix eigenvalues, eigenvector problems, etc.
With regard to these typical problems, not only software studies such as numerical analysis, but also very detailed studies have been accumulated from the hardware aspect of vector computers.
【0003】線形計算の中で最も基本的な演算は行列演
算である。行列演算とは行列同士の四則演算を意味する
が、科学技術計算において特に重要なものは行列積であ
る。今、N×N次元行列として、A=(aij),B=
(bij),C=(cij)を例にして、行列積A=B・C
を計算することを考えてみる。ここで、行列積A=B・
Cは実際の計算では(1)式から求められる。The most basic operation in linear calculation is matrix operation. Matrix operations mean arithmetic operations between matrices, but the matrix multiplication is particularly important in scientific and technological calculations. Now, as an N × N dimensional matrix, A = (a ij ), B =
(B ij ), C = (c ij ) as an example, the matrix product A = B · C
Consider computing. Here, the matrix product A = B
In actual calculation, C is calculated from the equation (1).
【0004】[0004]
【数1】 [Equation 1]
【0005】上記(1)式で現される計算は、単純には
N3 回の積和演算が、正確にはN3回の乗算と(N−
1)N2 回の加算が必要である。すなわち線形計算につ
いて演算総量をO(Nm )とすると、行列積の計算にお
いてはm=3になる。しかし、行列積計算の非常に詳し
い解析によるとm<3とするスキームが存在することが
知られている(V.Strassen,Numer.M
ath.13 354−356(1969)参照)。こ
れはアルゴリズムの研究としては非常に興味深いもので
あるが、現実問題としてはこのアルゴリズムは複雑であ
り、また行列の大きさNへの依存性はO(Nm ):m<
3であったとしても、さらに行列の大きさに依存しない
比較的複雑な手順が必要とされるので、実用上は余りメ
リットがない。したがって一般に行列積は定義通りに計
算するほうが良いとされている。The calculation expressed by the above equation (1) is simply N 3 product-sum operations, more precisely N 3 multiplications and (N-
1) N 2 additions are required. That is, assuming that the total operation amount is O (N m ) for linear calculation, m = 3 in the calculation of the matrix product. However, it is known that there is a scheme for setting m <3 according to a very detailed analysis of matrix product calculation (V. Strassen, Numer. M).
ath. 13 354-356 (1969)). This is very interesting as a study of the algorithm, but in reality, the algorithm is complicated, and the dependence on the matrix size N is O (N m ): m <
Even if the number is 3, a relatively complicated procedure that does not depend on the size of the matrix is required, so that there is not much merit in practical use. Therefore, it is generally better to calculate the matrix product as defined.
【0006】ところで、通常のベクトル型計算機を使っ
て行列積の計算を行なうとすると、幾つかの点で考慮し
なければならないことがある。第一にベクトルレジスタ
をなるべく有効に使うためにベクトル長を長くする必要
があることであり、第二に通常は演算器の演算時間の方
がメモリのアクセス速度よりも圧倒的に速いので、同一
メモリを連続してアクセスしないようにすること、すな
わちバンクコンフリクトを避けることである。図4は、
この様な考慮の下に通常採用されているアルゴリズムの
例を、プログラム記述言語FORTRANを用いて記述
したものである。By the way, if the matrix product is calculated using an ordinary vector type computer, there are some points that must be taken into consideration. Firstly, it is necessary to lengthen the vector length in order to use the vector register as effectively as possible. Secondly, the computing time of the computing unit is usually much faster than the memory access speed. Preventing continuous access to memory, ie avoiding bank conflicts. FIG.
An example of an algorithm usually adopted under such consideration is described by using the program description language FORTRAN.
【0007】ここで、図4で示すような行列積の算法を
中間積型と呼ぶ(J.J.Dongarra et.a
l.,SIAM Rev.26(1)91−112(1
984)参照)。この中間積型演算は最もメモリアクセ
スが速い方法として知られている。しかし演算回数その
ものはN3 回なのでベクトルレジスタの数をMとすれば
一つの演算器はN3 /M回の計算をする必要がある。通
常、行列のサイズは数万から数百万になることがある
が、ベクトルレジスタの数は32個もしくは64個など
多くても数百のオーダーであるから、個々の演算器は膨
大な回数の計算を行わなくてはならない。さらに行列の
大きさによっては中間積型を使ってもバンクコンフリク
トが生じることがあり、これは避けられない問題となっ
ている。Here, the matrix product arithmetic method as shown in FIG. 4 is called an intermediate product type (JJ Dongarra et.a.
l. , SIAM Rev. 26 (1) 91-112 (1
984)). This intermediate product type operation is known as the method with the fastest memory access. However, since the number of operations itself is N 3 times, if the number of vector registers is M, one operator needs to perform N 3 / M times of calculations. Usually, the size of a matrix may be in the range of tens of thousands to millions, but the number of vector registers is on the order of hundreds at most, such as 32 or 64, so that each computing unit requires a huge number of times. You have to calculate. Furthermore, depending on the size of the matrix, bank conflict may occur even if the intermediate product type is used, which is an unavoidable problem.
【0008】そのため汎用のベクトル型計算機における
演算器は、この様な膨大な計算を非常に高速処理できる
ような工夫が施されており、最近では1ナノ秒のオーダ
ーで一回の演算を可能としているが、これを実現するた
めには非常に高価な半導体素子や極めて高度な実装技術
が必要とされる。Therefore, the arithmetic unit in a general-purpose vector type computer has been devised so that such a huge amount of calculation can be processed at extremely high speed, and recently, it is possible to perform one calculation in the order of 1 nanosecond. However, in order to realize this, extremely expensive semiconductor elements and extremely advanced packaging technology are required.
【0009】しかし、行列計算は線形計算の基本であ
り、科学技術計算において非常に多くの場面で現れる
が、そのために必要な計算は基本的には積和演算だけで
ある。従って、加算器と乗算器だけを装備しておけば計
算可能であり、複雑な演算機構を必要とはしないのであ
る。すなわち、ベクトル型計算機では、行列積のような
非常に頻繁に現れる計算を高速で処理するには、不必要
なくらい大掛かりな装備によって行列積を計算する。こ
れは汎用性を旨とするためには避けられない問題であっ
た。However, matrix calculation is the basis of linear calculation and appears in a great many situations in scientific and technological calculation, but the calculation required for that is basically only the product-sum operation. Therefore, if only the adder and the multiplier are installed, the calculation can be performed and a complicated operation mechanism is not required. That is, in a vector computer, a matrix product is calculated with an unnecessarily large-scale equipment in order to process a very frequent calculation such as a matrix product at high speed. This was an unavoidable problem for the purpose of versatility.
【0010】一方、行列積は単純な計算の繰り返しであ
るから、最近の超並列計算機で実行すれば高速に処理で
きるという期待が持たれている。例えば、分散メモリ方
式の超並列計算機では、通常、各PE(プロセッサエレ
メント)に数メガバイト程度のメモリが実装されてお
り、データはこの様な分散メモリ全体に亙って適当に配
分される。各PEは通信経路によって接続されており、
各PE間では必要に応じ該通信経路を介してデータの交
換が行なわれる。ここで各PE間の接続については、各
PE間のデータのやり取りをなるべく高速に行なうため
に、例えばオメガ網などの様々なネットワークが提案さ
れている。すなわち超並列計算機においてはネットワー
ク構成技術がそのパフォーマンスを決める重要な要素と
なっている。On the other hand, since the matrix multiplication is a repetition of simple calculation, it is expected that it can be processed at high speed if it is executed by a recent massively parallel computer. For example, in a distributed memory type massively parallel computer, each PE (processor element) is usually equipped with a memory of about several megabytes, and data is appropriately distributed over the entire distributed memory. Each PE is connected by a communication path,
Data is exchanged between the PEs via the communication path as needed. Regarding the connection between the PEs, various networks such as an omega network have been proposed in order to exchange data between the PEs as fast as possible. In other words, network configuration technology is an important factor in determining the performance of massively parallel computers.
【0011】また、超並列計算機においてはその特性上
データの局所性を高めることが高速演算の鍵になる。つ
まり、いかに優れたネットワークであっても、通信にか
かる時間は演算にかかる時間に比べて非常に遅い。すな
わち演算についてはマイクロプロセッサの内部で行われ
るために10ナノ秒のオーダーで計算できるが、PE間
のデータのやり取りを10ナノ秒のオーダーで行なうこ
とは困難であり、いかに通信処理を減らすかということ
が超並列計算機を効率良く使う上では重要になってくる
からである。In a massively parallel computer, the key to high speed operation is to improve the locality of data due to its characteristics. In other words, no matter how good the network is, the communication time is much slower than the calculation time. That is, since the calculation is performed inside the microprocessor, it can be calculated in the order of 10 nanoseconds, but it is difficult to exchange data between PEs in the order of 10 nanoseconds. This is because it becomes important for efficient use of massively parallel computers.
【0012】ここで、例えば係数行列が疎行列(スパー
ス行列)になる連立一次方程式を解く場合は、局所性を
保った形でデータを分散メモリに割り当てることが可能
である。しかし、行列積の演算においてはその定義から
完全な意味でデータの局所性は存在しない。そこでこの
様な超並列計算機を使って並列性を極限まで上げようと
すると、最も単純にはすべてのPEが行列B,Cのデー
タをすべて所持し、例えばPE(ij)が(2)式で示さ
れる計算をして、最後にすべての行列要素を掻き集めれ
ば、オーダーNの計算時間で処理することも原理的には
可能である。Here, for example, when solving a simultaneous linear equation in which the coefficient matrix is a sparse matrix (sparse matrix), it is possible to allocate the data to the distributed memory while maintaining the locality. However, in the matrix multiplication operation, there is no data locality from the definition. Therefore, when trying to raise the parallelism to the limit by using such a massively parallel computer, in the simplest case, all PEs have all the data of matrices B and C. For example, PE (ij) is the equation (2). In principle, it is possible to process the calculation time of order N by performing the calculation shown and collecting all the matrix elements at the end.
【0013】[0013]
【数2】 [Equation 2]
【0014】しかしNが数万から数百万のオーダーであ
ることを考えるとN2 個のPEを実装することは非常に
困難であるし、さらに任意のPEから高速でデータをア
クセスするために、電子回路的に複雑なネットワークが
必要になる。また各PEが持っているデータのうち一部
しか使用していないという無駄が生じている。However, considering that N is in the order of tens of thousands to millions, it is very difficult to implement N 2 PEs, and in order to access data from any PE at high speed. , A complex network is required in terms of electronic circuits. Moreover, there is a waste that only a part of the data held by each PE is used.
【0015】ところで、分散メモリ型超並列計算機が非
常に高度のネットワークを具備しなくてはならないの
は、計算機としての汎用性を確保するためである。ここ
で、計算機が解こうとする問題それ自体が並列度の低い
ものである場合は改善のしようがない。これに対し、計
算機が解こうとする問題の並列度は高いけれどもデータ
の局所性が悪い問題を、高速で処理するためには高度の
ネットワークが必要となってくる。ところが行列積の演
算は単純なものであり、これにオメガネットワークのよ
うな汎用ネットワークを具備しておくことは不必要であ
るといえる。By the way, the distributed memory type massively parallel computer must have a very sophisticated network in order to ensure versatility as a computer. Here, if the problem itself that the computer is trying to solve has a low degree of parallelism, it cannot be improved. On the other hand, a high-level network is required to process a problem to be solved by a computer, which has a high degree of parallelism but has poor locality of data, at high speed. However, the matrix multiplication operation is simple, and it can be said that it is unnecessary to provide a general-purpose network such as an Omega network.
【0016】[0016]
【発明が解決しようとする課題】上述したように、科学
技術計算において頻繁に現れる行列積の演算を高速に処
理するための計算機として、ベクトル型計算機もしくは
超並列計算機が考えられる。しかし、行列積のように非
常に頻繁に現れる演算を行なうための計算機としては、
ベクトル型計算機は高価な半導体素子等を必要とし、超
並列計算機は複雑なネットワークを必要とするという問
題があった。As described above, a vector type computer or a massively parallel computer can be considered as a computer for high-speed processing of matrix product operations that frequently appear in scientific and technological calculations. However, as a computer for performing operations that occur very frequently, such as matrix multiplication,
There is a problem that the vector computer requires expensive semiconductor elements and the like, and the massively parallel computer requires a complicated network.
【0017】本発明は、上記事情を考慮してなされたも
ので、高価な半導体素子を必要とせず、また複雑なネッ
トワークをも必要としないものでありながら、サイズの
大きい行列積の演算を従来に比べてはるかに高速に行な
う並列計算機を提供することを目的とする。The present invention has been made in consideration of the above circumstances, and does not require expensive semiconductor elements and does not require a complicated network. Its purpose is to provide a parallel computer that runs at a much higher speed than the.
【0018】[0018]
【課題を解決するための手段】本発明(請求項1)は、
複数のプロセッサエレメントと、各プロセッサエレメン
トにデータを分配し演算結果を収集する制御装置と、該
制御装置と各プロセッサエレメントを接続する第1の通
信経路と、論理的に隣接するプロセッサエレメントを接
続する該第1の通信経路とは別に設けられた第2の通信
経路とを備えた並列計算機であって、前記制御装置は、
前記第1の通信経路により、行列積演算の元となる第1
の行列の要素を縦方向および横方向の一方にグルーピン
グしてなる複数の第1のベクトルを前記プロセッサエレ
メントのそれぞれに排他的に分配するとともに、該行列
積演算の元となる第2の行列の要素を縦方向および横方
向のうち前記第1のベクトルとは異なる方向にグルーピ
ングしてなる複数の第2のベクトルを前記プロセッサエ
レメントのそれぞれに排他的に分配する手段を備え、前
記プロセッサエレメントのそれぞれは、前記第1のベク
トルを格納するための第1の記憶手段と、前記第2のベ
クトルを格納するための第2の記憶手段と、前記第1の
記憶手段に格納された前記第1のベクトルの各要素と前
記第2の記憶手段に格納された前記第2のベクトルの各
要素とを逐次乗算する乗算器と、前記乗算器による乗算
結果を累積加算する加算器と、転送された前記第1のベ
クトルを前記第1の記憶手段に格納し、転送された前記
第2のベクトルを前記第2の記憶手段に格納し、前記加
算器の累積加算結果を前記第1の行列と前記第2の行列
からなる行列積の一要素として前記第1の通信経路によ
り前記制御装置に転送するとともに、前記第2の通信経
路により前記第2のベクトルを論理的に隣接する片方の
前記プロセッサエレメントに転送する制御を行なう制御
手段とを備えたことを特徴とする。The present invention (Claim 1) includes:
A plurality of processor elements, a controller that distributes data to each processor element and collects a calculation result, a first communication path that connects the controller and each processor element, and a processor element that is logically adjacent A parallel computer comprising a second communication path provided separately from the first communication path, wherein the control device comprises:
The first communication path is the first source of matrix multiplication operation.
A plurality of first vectors formed by grouping the elements of the matrix in one of the vertical direction and the horizontal direction are exclusively distributed to each of the processor elements, and Each of the processor elements includes means for exclusively distributing a plurality of second vectors formed by grouping elements in a direction different from the first vector in the vertical direction and the horizontal direction, to each of the processor elements. Is a first storage means for storing the first vector, a second storage means for storing the second vector, and the first storage means stored in the first storage means. A multiplier that sequentially multiplies each element of the vector and each element of the second vector stored in the second storage unit, and cumulatively adds the multiplication results of the multiplier. An adder and the transferred first vector are stored in the first storage means, the transferred second vector are stored in the second storage means, and a cumulative addition result of the adder is stored. The element is transferred to the control device via the first communication path as an element of a matrix product of the first matrix and the second matrix, and the second vector is logically transferred via the second communication path. And a control means for controlling transfer to one of the adjacent processor elements.
【0019】本発明(請求項2)は、上記発明(請求項
1)において、前記第2の記憶手段は、第1のポートお
よび第2のポートを有するデュアルポートメモリを用い
て構成され、前記第2の通信経路は、各々の前記プロセ
ッサエレメントについて、1つのプロセッサエレメント
のデュアルポートメモリの第1のポートと、該1つのプ
ロセッサエレメントに論理的に隣接する片方の前記プロ
セッサエレメントのデュアルポートメモリの第2のポー
トとを接続するように設けられた複数の専用通信経路か
らなり、前記制御手段は、前記デュアルポートメモリの
前記第1のポートおよび前記第2のポートの一方から前
記第2のベクトルを読み出し、前記専用通信経路により
論理的に隣接する片方の前記プロセッサエレメントに転
送するとともに、他の前記専用通信経路により論理的に
隣接するもう片方の前記プロセッサエレメントから転送
された前記第2のベクトルを該デュアルポートメモリの
該第1のポートおよび該第2のポートの他方から書き込
む制御を行なうことを特徴とする。According to the present invention (claim 2), in the above invention (claim 1), the second storage means is configured by using a dual port memory having a first port and a second port. The second communication path includes, for each of the processor elements, a first port of a dual port memory of one processor element and a dual port memory of one of the processor elements logically adjacent to the one processor element. A plurality of dedicated communication paths provided so as to connect to a second port, wherein the control means includes one of the first port and the second port of the dual port memory and the second vector. Is read out and transferred to one of the processor elements that are logically adjacent by the dedicated communication path, Control of writing the second vector transferred from the other processor element logically adjacent to the dedicated communication path of the second port from the other of the first port and the second port of the dual port memory. It is characterized by
【0020】本発明(請求項3)は、上記発明(請求項
2)において、前記プロセッサエレメントそれぞれは、
前記加算器の累積加算結果を格納する第1のレジスタ
と、前記乗算器の一方の入力端と前記第1の記憶手段と
の間に設けられた第2のレジスタと、前記第2の記憶手
段を構成する前記デュアルポートメモリの一方のポート
に接続された第3のレジスタと、前記第2の記憶手段を
構成する前記デュアルポートメモリの他方のポートに接
続された第4のレジスタと、前記乗算器の他方の入力端
と前記第3のレジスタと前記第2の通信経路を介して隣
接する前記プロセッサエレメントの前記第4のレジスタ
とに接続され、該乗算器の他方の入力端と前記第3のレ
ジスタとの間および該第3のレジスタと隣接する該プロ
セッサエレメントの該第4のレジスタとの間のいずれか
を選択的に接続するセレクタとをさらに備え、前記制御
手段は、前記第1の記憶手段および前記第2の記憶手段
にそれぞれ格納された前記第1のベクトル・データおよ
び前記第2のベクトル・データを前記第2のレジスタな
らびに前記第3のレジスタおよび前記セレクタをそれぞ
れ介して前記乗算器に与え、前記加算器の累積加算結果
を前記第1のレジスタを介して前記第1の通信経路によ
り前記制御装置に転送し、該第2の記憶手段に格納され
た前記第2のベクトルを前記第4のレジスタ、ならびに
該第3のレジスタおよび該セレクタの一方を介して前記
専用通信経路により論理的に隣接する片方の前記プロセ
ッサエレメントに転送するとともに、他の前記専用通信
経路により論理的に隣接するもう片方の前記プロセッサ
エレメントから転送された前記第2のベクトルを該第4
のレジスタ、ならびに該第3のレジスタおよび該セレク
タの他方を介して該第2の記憶手段に格納する制御を行
なうことを特徴とする。According to the present invention (claim 3), in the above invention (claim 2), each of the processor elements is
A first register for storing the cumulative addition result of the adder, a second register provided between one input end of the multiplier and the first storage means, and the second storage means. And a third register connected to one port of the dual-port memory that constitutes the second storage means, a fourth register connected to the other port of the dual-port memory that constitutes the second storage means, and the multiplication. Connected to the other input end of the multiplier, the third register, and the fourth register of the adjacent processor element via the second communication path, and the other input end of the multiplier and the third register And a selector for selectively connecting the third register with the fourth register of the processor element adjacent to the third register. The multiplication of the first vector data and the second vector data stored in the storage means and the second storage means via the second register and the third register and the selector, respectively. To the controller, transfer the cumulative addition result of the adder to the controller via the first register via the first communication path, and store the second vector stored in the second storage means. Transfer to the one processor element logically adjacent to the dedicated communication path via the fourth register and one of the third register and the selector, and logically via the other dedicated communication path. The second vector transferred from the other adjacent processor element is converted into the fourth vector.
And the third register and the other of the selectors are used to control the storage in the second storage means.
【0021】本発明(請求項4)は、上記発明(請求項
1)において、前記第2の通信経路は、前記複数のプロ
セッサエレメントを少なくとも単方向に論理的に環状接
続するバスを用いて構成されたものであり、前記制御手
段は、前記第2の記憶手段から前記第2のベクトルを読
み出し、前記複数のプロセッサエレメントについての所
定の順序に従い前記第2の通信経路により論理的に隣接
する片方の前記プロセッサエレメントに転送し、該第2
の通信経路により論理的に隣接するもう片方の前記プロ
セッサエレメントから転送された前記第2のベクトルを
該第2の記憶手段に書き込む制御を行なうことを特徴と
する。According to the present invention (claim 4), in the above invention (claim 1), the second communication path is configured by using a bus which logically connects the plurality of processor elements in at least one direction. The control means reads out the second vector from the second storage means and logically adjoins the second communication path according to a predetermined order for the plurality of processor elements. To the processor element of the second
The second vector transferred from the other processor element logically adjacent to the second vector is controlled to be written in the second storage means.
【0022】本発明(請求項5)は、上記発明(請求項
4)において、前記プロセッサエレメントそれぞれは、
前記加算器の累積加算結果を格納するレジスタをさらに
備え、前記制御手段は、前記加算器の累積加算結果を前
記レジスタを介して前記第1の通信経路により前記制御
装置に転送する制御を行なうことを特徴とする。According to the present invention (Claim 5), in the above invention (Claim 4), each of the processor elements is
The control means further includes a register for storing the cumulative addition result of the adder, and the control means performs control of transferring the cumulative addition result of the adder to the control device via the register via the first communication path. Is characterized by.
【0023】(作用)本発明(請求項1)で、まず制御
装置は行列積計算のための第1の行列と第2の行列のデ
ータを互いに異なる2方向のベクトル・データ、つまり
縦ベクトルと横ベクトルのデータとして第1の通信経路
を介して各PE(プロセッサエレメント)に分配する。
第1の行列を乗算側にし第2の行列を被乗算側にする場
合、第1の行列を元にした第1のベクトルを横ベクトル
とし第2の行列を元にした第2のベクトルを縦ベクトル
とする。一方、第2の行列を乗算側にし第1の行列を被
乗算側にする場合、第2の行列を元にした第2のベクト
ルを横ベクトルとし第1の行列を元にした第1のベクト
ルを縦ベクトルとする。(Operation) In the present invention (Claim 1), first, the control device sets the data of the first matrix and the second matrix for calculating the matrix product as vector data in two directions different from each other, that is, a vertical vector. The data of the lateral vector is distributed to each PE (processor element) via the first communication path.
When the first matrix is on the multiplication side and the second matrix is on the multiplied side, the first vector based on the first matrix is the horizontal vector and the second vector based on the second matrix is the vertical vector. Vector. On the other hand, when the second matrix is on the multiplication side and the first matrix is on the multiplied side, the second vector based on the second matrix is the lateral vector and the first vector based on the first matrix. Is the vertical vector.
【0024】各PEはそれぞれ分配された二つのデータ
からベクトルの内積を計算し、該計算結果を上記の第1
の行列と第2の行列からなる行列積の一要素として第1
の通信経路を介して制御装置に返送する。Each PE calculates the inner product of the vector from the two distributed data, and the calculated result is used as the first
As an element of the matrix product of the matrix and the second matrix
It returns to the control device via the communication path of.
【0025】また、各PEは異なる第1と第2のベクト
ルの組による内積計算を行なうために(すなわち、行列
積の他の要素を求めるために)、各PE間において第2
のベクトルの入れ替えを行なう。すなわち、各PEは第
2の記憶手段に格納されている第2のベクトルを、第1
の通信経路とは別に設けた第2の通信経路によって接続
された論理的に隣接する片方のPEにデータ転送する。In addition, each PE uses a second vector between each PE in order to perform inner product calculation with different first and second vector sets (that is, in order to obtain other elements of the matrix product).
Swap the vector of. That is, each PE uses the first vector stored in the second storage means as the first vector.
Data is transferred to one of the logically adjacent PEs connected by a second communication path provided separately from the communication path.
【0026】しかして、各PEは、上記のような内積計
算および第2のベクトルの転送と、内積計算結果の返送
とを順次繰り返す。以上の動作により、すべての第1と
第2のベクトルの組による内積計算結果、すなわち求め
るべき行列積のすべての要素が制御装置に収集され、制
御装置は計算結果を適切に構成し行列積を求めることが
できる。Thus, each PE sequentially repeats the above inner product calculation and transfer of the second vector, and the return of the inner product calculation result. By the above operation, the inner product calculation result by all the pairs of the first and second vectors, that is, all the elements of the matrix product to be obtained are collected in the control device, and the control device appropriately configures the calculation result and calculates the matrix product. You can ask.
【0027】ここで、各PEで行われる内積計算におい
て、各PEに格納されているすべてのデータは独立であ
り、各PEにおいて乗算、加算に必要な時間は同じであ
る。すなわち、全てのPEにおいて乗算および加算を完
全に同時に行なうことができる。つまり、並列化度は1
00%である。In the inner product calculation performed by each PE, all the data stored in each PE are independent, and the time required for multiplication and addition is the same in each PE. That is, multiplication and addition can be performed at the same time in all PEs. In other words, the degree of parallelization is 1
It is 00%.
【0028】加えて、内積計算の終了を同期合わせする
必要もなくなるので、第1の通信経路の使用権に関する
調停手続きが不要になり、各PEは内積計算が終わった
時点ですぐにデータ転送を始めることができる。すなわ
ち、従来の超並列計算機とは異なりデータの局所性にお
いても完全に保たれている。In addition, since it is not necessary to synchronize the end of the inner product calculation, the arbitration procedure regarding the right of use of the first communication path becomes unnecessary, and each PE immediately transfers the data when the inner product calculation is completed. You can get started. That is, unlike the conventional massively parallel computers, the data locality is completely maintained.
【0029】また、あるPEがデータ転送を行っている
ときは全てのPEがデータ転送を行っており、データ転
送という観点からも並列化度は100%となる。以上に
より、本発明によれば、行列積計算における処理を従来
に比べて遥かに高速で行なうことができる。Further, when a certain PE is transferring data, all PEs are transferring data, and the parallelization degree is 100% from the viewpoint of data transfer. As described above, according to the present invention, the process in the matrix product calculation can be performed at a much higher speed than the conventional one.
【0030】また、各PEは加算器、乗算器およびメモ
リを具備していれば良く、特にメモリは行列計算におけ
る行列の桁数、例えばN×N行列の行列積計算において
は、長さがNのベクトルを二つ保持するだけのメモリが
あればよいので、従来のベクトル計算機のように非常に
高価な半導体素子や極めて高度な実装技術は必要ではな
い。Further, each PE may be provided with an adder, a multiplier and a memory, and in particular, the memory has the number of digits of the matrix in the matrix calculation, for example, in the matrix product calculation of N × N matrix, the length is N. Since it suffices to have a memory capable of holding two vectors of the above, very expensive semiconductor elements and extremely advanced mounting technology unlike the conventional vector computer are not required.
【0031】また、第2の通信経路はデータを論理的に
隣接するPEに送るための機能を有していれば良いの
で、従来の超並列計算機において用いられていたよう
な、任意のPEに対してデータを送るための複雑なネッ
トワークを用いる必要がない。The second communication path may have a function for sending data to PEs which are logically adjacent to each other, so that it can be used for any PEs used in a conventional massively parallel computer. There is no need to use complicated networks to send data to and from it.
【0032】さらに、演算手順が確定しているので、高
速記憶素子によるキャッシュを具備しなくても演算の高
速性を保つことができる。本発明(請求項2,3)で
は、各PEにおける第2の通信経路を介したデータ転送
について、データ転送が行われるメモリはデュアルポー
トメモリにより構成されている。そのため、各PEのデ
ータ転送において、シングルポートメモリを使用する際
に必要なハードウエア、例えばレジスタなどを省くこと
ができる。Further, since the calculation procedure is fixed, the high speed of calculation can be maintained without providing a cache with a high speed storage element. According to the present invention (Claims 2 and 3), regarding the data transfer via the second communication path in each PE, the memory in which the data transfer is performed is a dual port memory. Therefore, in the data transfer of each PE, it is possible to omit the hardware required for using the single port memory, such as a register.
【0033】また、デュアルポートメモリを使用するこ
とで、第2の通信経路は各PEに共通のものでなくても
良くなる。すなわち、論理的に隣接した各PEが鎖状に
直結されるように第2の通信経路を構成することができ
る。Further, by using the dual port memory, the second communication path does not have to be common to each PE. That is, the second communication path can be configured such that the logically adjacent PEs are directly connected in a chain.
【0034】この結果、各PEにおけるデータ転送につ
いて、デュアルポートメモリのデータを論理的に隣接す
る隣のPEのデュアルポートメモリに順次書き込むとほ
ぼ同時に、別の隣接するPEのデュアルポートメモリの
データを自分のデュアルポートメモリに読み込むことが
できる。ただし、この場合、同一メモリセルのアクセス
を防ぐために、データの読み出しをした直後にデータの
書き込みを行なうようにしなければならない。As a result, regarding the data transfer in each PE, when the data in the dual port memory is sequentially written into the dual port memory in the adjacent PE which is logically adjacent, the data in the dual port memory in another adjacent PE is almost simultaneously written. Can be loaded into your own dual-port memory. However, in this case, in order to prevent access to the same memory cell, it is necessary to write the data immediately after reading the data.
【0035】以上の結果、すべてのPEにおいてデータ
転送が同時に行われるので、処理速度の向上を図ること
ができる。本発明(請求項4)では、前記第2の通信経
路は、前記複数のPEを少なくとも単方向に論理的に環
状接続するバスを用いて構成されたものであるが、調停
手続きは不要であり、前記複数のPEについての所定の
順序に従い転送を行なうことができる。As a result of the above, since data transfer is simultaneously performed in all PEs, the processing speed can be improved. In the present invention (Claim 4), the second communication path is configured by using a bus that logically connects the plurality of PEs in at least one direction logically, but no arbitration procedure is required. , Transfer can be performed according to a predetermined order for the plurality of PEs.
【0036】また、本発明(請求項3、5)では、各P
Eにおいて行われるベクトルの内積計算の結果は、直接
制御装置に返送されるのではなく、一旦、レジスタに格
納され、制御装置は第1のレジスタに格納されている計
算結果を受け取るので、各PEおける内積計算およびデ
ータ転送と、計算結果の返送とを別個に独立して行なう
ことができる。In the present invention (claims 3 and 5), each P
The result of the inner product calculation of the vector performed at E is not stored directly in the control unit but is temporarily stored in a register, and the control unit receives the calculation result stored in the first register. The inner product calculation and data transfer in the above, and the calculation result return can be performed separately and independently.
【0037】このようにすると、計算結果の転送に必要
な時間は内積計算の処理の裏に隠れてしまい実際の処理
時間には影響がない。一般に通信に必要とされる時間は
演算に必要とされる時間に比べて非常に遅いことから、
本発明によれば計算結果の返送にかかる時間を無視でき
ることで、処理速度の向上を図ることができる。In this way, the time required to transfer the calculation result is hidden behind the inner product calculation processing and does not affect the actual processing time. Generally, the time required for communication is much slower than the time required for calculation,
According to the present invention, the processing time can be improved because the time required for returning the calculation result can be ignored.
【0038】[0038]
【発明の実施の形態】以下、図面を参照しながらこの発
明の実施の形態を説明する。 (第1の実施の形態)まず、本発明の第1の実施の形態
を説明をする。Embodiments of the present invention will be described below with reference to the drawings. (First Embodiment) First, a first embodiment of the present invention will be described.
【0039】図1に、この実施の形態に係る並列計算機
のシステム構成を示す。図1に示すように、この並列計
算機は、制御装置3、N(Nは2以上の整数)個のPE
1〜PEN、制御装置3とPE1〜PENを接続する第
1の通信経路21、各PEが論理的に隣接するPEへデ
ータを転送するために用いる第2の通信経路22を備え
ている。FIG. 1 shows the system configuration of a parallel computer according to this embodiment. As shown in FIG. 1, the parallel computer includes a controller 3, N (N is an integer of 2 or more) PEs.
1 to PEN, a first communication path 21 that connects the control device 3 and PEs 1 to PEN, and a second communication path 22 that is used for each PE to transfer data to a logically adjacent PE.
【0040】制御装置3は、PE1〜PENを制御する
制御部31と、行列積計算のための2つの行列のデータ
(乗算側のN×M行列Xと被乗算側のM×N行列Y)お
よびPE1〜PENから返送される内積の計算結果をス
トアするメモリ32を有している。制御部31は、メモ
リ32にストアされている行列X,Yのデータを元に要
素数Mのベクトル・データ(行列XのN個の横ベクトル
と行列YのN個の縦ベクトル)をPE1〜PENに排他
的に分配し、またPE1〜PENから返送される内積計
算の結果(N×N行列Z=X・Yの各要素)から行列積
を構成する。なお、制御部31からは、ベクトル・デー
タを分配するにあたって、各PEに明示的に演算命令を
与えるのが好ましい。The control unit 3 controls the PE1 to PEN and the data of two matrices for matrix product calculation (N × M matrix X on the multiplication side and M × N matrix Y on the multiplied side). And a memory 32 for storing the calculation result of the inner product returned from PE1 to PEN. Based on the data of the matrices X and Y stored in the memory 32, the control unit 31 sets the vector data of the number M of elements (N horizontal vectors of the matrix X and N vertical vectors of the matrix Y) PE1 to PE1. The matrix product is constructed from the results of the inner product calculation (N × N matrix Z = each element of XY) which is exclusively distributed to PEN and returned from PE1 to PEN. It is preferable that the control unit 31 explicitly gives an arithmetic command to each PE when distributing the vector data.
【0041】複数のPEの一つであるPE1は、第1の
分散メモリ1a、第2の分散メモリ1b、乗算器1c、
加算器1d、レジスタ1eを有する。分散メモリ1a,
1bは、内積計算のためのベクトル・データをストアす
るメモリであり、それぞれ乗算器1cの入力側に接続さ
れている。乗算器1cの出力は、加算器1dの一方の入
力に接続されている。また、加算器1dの他方の入力に
は、ループ回路1Lにより該加算器1d自身の出力が接
続されており、これによって加算器1dは乗算器1cの
出力データの総和を計算することになる。加算器1dの
出力は、レジスタ1eに接続されている。乗算器1cお
よび加算器1dは、用途に合わせて32ビットないし6
4ビット程度で構成される。PE1 which is one of the plurality of PEs includes a first distributed memory 1a, a second distributed memory 1b, a multiplier 1c,
It has an adder 1d and a register 1e. Distributed memory 1a,
Reference numeral 1b is a memory that stores vector data for inner product calculation, and is connected to the input side of the multiplier 1c. The output of the multiplier 1c is connected to one input of the adder 1d. Further, the output of the adder 1d itself is connected to the other input of the adder 1d by the loop circuit 1L, whereby the adder 1d calculates the total sum of the output data of the multiplier 1c. The output of the adder 1d is connected to the register 1e. The multiplier 1c and the adder 1d are 32 bits to 6 bits depending on the application.
It consists of about 4 bits.
【0042】この並列計算機に設けられた他のPE2〜
Nも上記のPE1と同様の構成であり、それぞれ、分散
メモリ2a〜Na,2b〜Nb、乗算器2c〜Nc、加
算器2d〜Nd、およびレジスタ2e〜Neを有してい
る。Other PE2 provided in this parallel computer
N has the same configuration as PE1 described above, and has distributed memories 2a to Na, 2b to Nb, multipliers 2c to Nc, adders 2d to Nd, and registers 2e to Ne, respectively.
【0043】第1の通信経路21は、PE1〜PENと
制御装置3を接続するためのものであり、制御装置3か
らPE1〜PENへの行列積計算のためのデータの転送
およびPE1〜PENから返送される内積の計算結果の
転送等に使用される。The first communication path 21 is for connecting the PE1 to PEN and the control device 3, and transfers data for calculating the matrix product from the control device 3 to PE1 to PEN and from PE1 to PEN. It is used for transferring the calculation result of the returned inner product.
【0044】第2の通信経路22は、各PEが論理的に
隣接するPEへデータを転送するために設けられたもの
である。図1では、例えば、第m番目のPEmが第m−
1番目のPEm−1および第m+1番目のPEm+1と
論理的に隣接するものとする。ただし、PE1はPE2
およびPENと論理的に隣接し、PENはPE1および
PEN−1と論理的に隣接するものとする。The second communication path 22 is provided for each PE to transfer data to a logically adjacent PE. In FIG. 1, for example, the m-th PEm is the m-th PE-.
It is assumed to be logically adjacent to the first PEm-1 and the m + 1th PEm + 1. However, PE1 is PE2
And PEN and PEN are logically adjacent to PE1 and PEN-1.
【0045】通信経路22は、各PEから論理的に隣接
するPEにデータを送る機能を有すれば良く、任意のP
Eにデータを転送できるネットワークである必要はな
い。また、通信経路22は、各PEから双方向的に論理
的に隣接するPEにデータを送る機能を有しても良い
が、各PEから論理的に隣接する片方のPEにデータを
送る機能だけを有しても良い。The communication path 22 only needs to have a function of sending data from each PE to a logically adjacent PE, and any P
It does not have to be a network capable of transferring data to E. Further, the communication path 22 may have a function of bidirectionally transmitting data from each PE to a logically adjacent PE, but only a function of transmitting data from each PE to one logically adjacent PE. May have.
【0046】なお、各PE内の動作は、各々のPE内部
に設けられたPE内制御部(図示せず)により制御され
る。PE内制御部は、制御装置3からの演算命令などに
応答する形で制御を始め、最後の(N個目の)演算結果
を制御装置3に渡すことで、制御を終了するものとす
る。The operation in each PE is controlled by an in-PE control unit (not shown) provided in each PE. The PE control unit starts the control in response to an arithmetic command from the control device 3 and passes the last (Nth) arithmetic result to the control device 3 to end the control.
【0047】ここで、PEm(m=1〜N)における基
本動作を概略的に説明すると、まず制御装置3から転送
され分散メモリma,mbにそれぞれストアされている
内積計算のための2つのベクトル・データの各要素を乗
算器mcによって逐次乗算していく。乗算の結果は次々
とループ回路mLが設けられた加算器mdに与えられ、
ここで累積加算が行なわれ上記2つのベクトル・データ
の内積が求められる。Here, the basic operation in PEm (m = 1 to N) will be briefly described. First, two vectors for inner product calculation transferred from the control device 3 and stored in the distributed memories ma and mb, respectively. -The respective elements of the data are sequentially multiplied by the multiplier mc. The result of the multiplication is successively given to the adder md provided with the loop circuit mL,
Here, cumulative addition is performed to obtain the inner product of the above two vector data.
【0048】内積計算の結果は、レジスタmeに一端ス
トアされた後、制御装置3に返送される。これととも
に、PEmは、2つのベクトル・データのうちの一方を
隣のPEm+1(またはPEm−1)に渡す。The result of the inner product calculation is temporarily stored in the register me and then returned to the control device 3. At the same time, the PEm passes one of the two vector data to the adjacent PEm + 1 (or PEm-1).
【0049】そして、各PEは、新たな2つのベクトル
・データについて、上記のように内積を計算し、その結
果を制御装置3に返送するとともに、一方のベクトル・
データを隣のPEに渡す。Then, each PE calculates the inner product with respect to the new two vector data as described above, and returns the result to the control device 3, and at the same time,
Pass the data to the adjacent PE.
【0050】以上のように、各PEにおいて、2つのベ
クトル・データの内積計算と、計算結果への制御装置3
への転送および隣のPEへの一方のベクトル・データの
転送とが(N回)繰り返され、最終的に、行列積の全要
素が制御装置3内に揃うことになる。As described above, in each PE, the inner product calculation of two vector data and the control device 3 for calculating the calculation result are performed.
To N and one vector data to the neighboring PE are repeated (N times), and finally all the elements of the matrix product are aligned in the controller 3.
【0051】次に、この実施の形態の並列計算機により
行列積を求める動作について、図2に示すフローチャー
トを参照しながら説明する。以下では、N×N次元の正
方行列A=(aij),B=(bij),C=(cij)につ
いて、行列積A=B・Cを求める場合を例にとって説明
する。Next, the operation of obtaining the matrix product by the parallel computer of this embodiment will be described with reference to the flow chart shown in FIG. In the following, a case where the matrix product A = B · C is obtained for an N × N dimensional square matrix A = (a ij ), B = (b ij ), C = (c ij ) will be described as an example.
【0052】まず、制御装置3のメモリ32に行列積計
算のための行列B,Cのそれぞれの要素がストアされる
(ステップS1)。次に、制御装置3によって、メモリ
32にストアされているデータが通信経路21を介して
例えば以下のようにPE1〜PENに分配される(ステ
ップS2)。First, the elements of the matrices B and C for matrix product calculation are stored in the memory 32 of the controller 3 (step S1). Next, the control device 3 distributes the data stored in the memory 32 to the PE1 to PEN, for example, as follows via the communication path 21 (step S2).
【0053】PE1の第1の分散メモリ1a、第2の分
散メモリ1bには、行列Bの横ベクトル{b1k}、行列
Cの縦ベクトル{ck1}がそれぞれストアされる。PE
2の第1の分散メモリ2a、第2の分散メモリ2bに
は、横ベクトル{b2k}、縦ベクトル{ck2}がそれぞ
れストアされる。PE3の第1の分散メモリ3a、第2
の分散メモリ3bには、横ベクトル{b3k}、縦ベクト
ル{ck3}がそれぞれストアされる。PENの第1の分
散メモリNa、第2の分散メモリNbには、横ベクトル
{bNk}、縦ベクトル{ckN}がそれぞれストアされ
る。つまり、PEm(mは1〜N)の第1の分散メモリ
ma、第2の分散メモリmbには、横ベクトル
{bmk}、縦ベクトル{ckm}がそれぞれストアされ
る。ここで、k=1,2,…,Nである。The horizontal vector {b 1k } of the matrix B and the vertical vector {c k1 } of the matrix C are stored in the first distributed memory 1a and the second distributed memory 1b of the PE1, respectively. PE
A horizontal vector {b 2k } and a vertical vector {c k2 } are stored in the first distributed memory 2a and the second distributed memory 2b, respectively. First distributed memory 3a of PE3, second
The horizontal vector {b 3k } and the vertical vector {c k3 } are stored in the distributed memory 3b of FIG. The horizontal vector {b Nk } and the vertical vector {c kN } are stored in the first distributed memory Na and the second distributed memory Nb of the PEN, respectively. That is, the horizontal vector {b mk } and the vertical vector {c km } are stored in the first distributed memory ma and the second distributed memory mb of PEm (m is 1 to N), respectively. Here, k = 1, 2, ..., N.
【0054】なお、上記とは逆に、PEm(mは1〜
N)の第1の分散メモリmaに行列Cの縦ベクトル{c
km}をストアし、第2の分散メモリmbに横ベクトル
{bmk}をストアするようにしても良い。Contrary to the above, PEm (m is 1 to
N) of the first distributed memory ma, the vertical vector of the matrix C {c
It is also possible to store km } and store the lateral vector {b mk } in the second distributed memory mb.
【0055】また、各PEへの横ベクトルと縦ベクトル
の分配は、それぞれ排他的であれば、上記のように規則
正しくなくても構わない。どのPEにどの横ベクトルや
縦ベクトルを分配しようとも、最終的には、行列積の全
要素を得ることができる。The distribution of the horizontal vector and the vertical vector to each PE need not be regular as described above as long as they are exclusive. No matter which horizontal vector or vertical vector is distributed to which PE, all elements of the matrix product can be finally obtained.
【0056】上記のようにしてストアが終了した後、各
PEのPE内制御部では、計算回数を記録するための変
数CNTを0にし初期化を行なう(ステップS3)。次
に、各PEのPE内制御部では、変数CNTとデータ数
Nを比較し(ステップS4)、CNT≧Nでないときは
以下のステップS5〜S9を実行する。上記比較を行
い、条件が満たされる間、以下の動作を行なうことで、
PE1〜PENにおいて行列積Aを構成する要素を順次
求めていくことができる。そして、ステップS4でCN
T≧Nが満たされたとき、制御装置3内に行列積Aの全
要素が揃うことになり、処理を終了する。なお、終了判
断に変数CNTを用いるのは一例であり、他の方法を用
いても構わない。After the storage is completed as described above, the PE control unit of each PE initializes the variable CNT for recording the number of calculations to 0 (step S3). Next, the in-PE control unit of each PE compares the variable CNT with the number of data N (step S4), and when CNT ≧ N is not satisfied, the following steps S5 to S9 are executed. By comparing the above and performing the following operations while the conditions are satisfied,
The elements forming the matrix product A can be sequentially obtained in PE1 to PEN. Then, in step S4, CN
When T ≧ N is satisfied, all the elements of the matrix product A are arranged in the control device 3, and the process ends. It should be noted that using the variable CNT for the end determination is an example, and other methods may be used.
【0057】さて、ステップS4においてCNT≧Nで
ない場合、PE1〜PENでは、それぞれ配分されたベ
クトルデータ{b1k}〜{bNk},{ck1}〜{ckN}
を元にベクトルの内積計算を行なう(ステップS5)。
つまり、PEm(m=1〜N)は、分散メモリma,m
bにストアされた二つのベクトル{bmk}と{ckm}か
ら(3)式で求められる内積を計算する。If CNT ≧ N is not satisfied in step S4, vector data {b 1k } to {b Nk }, {c k1 } to {c kN } distributed in PE1 to PEN, respectively.
The inner product of the vector is calculated on the basis of (step S5).
That is, PEm (m = 1 to N) is distributed memory ma, m
The inner product obtained by the equation (3) is calculated from the two vectors {b mk } and {c km } stored in b.
【0058】[0058]
【数3】 (Equation 3)
【0059】例えば、PE1に着目して動作を説明する
と、まず分散メモリ1a,1bにストアされているb11
とc11との積を乗算器1cを用いて乗算し加算器1dに
送る。次にb12とc21の積を同様に計算し加算器1dに
送る。加算器1dは先の結果に今回の結果を累積加算す
る。以下同様にb1NおよびcN1まで、分散メモリ1a,
1bにストアされている全てのベクトルについて乗算を
行い加算器1dに累積加算していく。分散メモリ1a,
1bにストアされている全てのデータについての計算が
終わると、加算器1dはレジスタ1eに計算結果をスト
アする。レジスタ1eにストアされた計算結果は行列積
Aにおける要素a11を表している。For example, the operation will be described focusing on PE1. First, b 11 stored in the distributed memories 1a and 1b.
And the product of c 11 are multiplied by the multiplier 1c and sent to the adder 1d. Next, the product of b 12 and c 21 is calculated in the same manner and sent to the adder 1d. The adder 1d cumulatively adds the present result to the previous result. Similarly, the distributed memories 1a, b1N and cN1
All vectors stored in 1b are multiplied and cumulatively added to the adder 1d. Distributed memory 1a,
When the calculation is completed for all the data stored in 1b, the adder 1d stores the calculation result in the register 1e. The calculation result stored in the register 1e represents the element a 11 in the matrix product A.
【0060】上記したPE1と同様にすべてのPEにお
いて内積計算が行われ。PE1〜PENにおけるレジス
タ1e〜Neには要素a11〜aNNがストアされる。これ
らの要素は行列積Aの対角要素を示している。The inner product calculation is performed in all PEs as in PE1 described above. The register 1e~Ne in PE1~PEN elements a 11 ~a NN is stored. These elements indicate the diagonal elements of the matrix product A.
【0061】全てのPEにおいて乗算および加算に要す
る時間は同一なので、全てのPEが同時に並列動作する
ことによって同時に行列積Aの対角要素が求まることに
なる。その場合、Nクロックで行列積Aの対角要素を求
めることができる。Since the time required for multiplication and addition is the same in all PEs, the diagonal elements of the matrix product A are obtained at the same time when all PEs operate in parallel at the same time. In that case, the diagonal elements of the matrix product A can be obtained in N clocks.
【0062】上記のようにしてレジスタ1e〜Neにス
トアされた要素a11〜aNNは、通信経路21を介して制
御装置3に返送される(ステップS6)。制御装置3
は、返送されてきた行列積Aの対角要素a11〜aNNを、
メモリ32における行列積Aの要素a11〜aNNを示す適
切なアドレスにストアする。(ステップS7)。The elements a 11 to a NN stored in the registers 1e to Ne as described above are returned to the control device 3 via the communication path 21 (step S6). Control device 3
Is the diagonal elements a 11 to a NN of the returned matrix product A,
The elements a 11 to a NN of the matrix product A in the memory 32 are stored at appropriate addresses. (Step S7).
【0063】ここで、この実施の形態では、上記のステ
ップS6とステップS7の実行は、ステップS4,S5
およびその後のラウンドにおけるステップS8,S9の
実行とは独立して行ない得るものである。Here, in this embodiment, the execution of the above steps S6 and S7 is performed by the steps S4 and S5.
And the steps S8 and S9 in the subsequent rounds can be performed independently.
【0064】さて、上記のようにしてある一組のベクト
ルの組み合わせについて内積計算が終わると、PE1〜
PENは、二つの分散メモリ1a〜Na,1b〜Nbに
記録されているデータのうちいずれか一方を通信経路2
2を介して、論理的に隣接したPEに対して転送するよ
うにしている。ここでは、分散メモリ1a〜Na,1b
〜Nbにストアされている二つのデータのうち分散メモ
リ1b〜Nbのデータについて転送を行なうとする。こ
の場合、例えば各PEは以下のように動作する(ステッ
プS8)。Now, when the inner product calculation is completed for one set of vector combinations as described above, PE1 to PE1
The PEN uses one of the data recorded in the two distributed memories 1a to Na and 1b to Nb for the communication path 2
The data is transferred to the PEs that are logically adjacent to each other via the P. Here, the distributed memories 1a to Na, 1b.
It is assumed that the data in the distributed memories 1b to Nb among the two data stored in .about.Nb are transferred. In this case, for example, each PE operates as follows (step S8).
【0065】PE1は、分散メモリ1aの横ベクトル
{b1k}をそのまま保持し、分散メモリ1bの縦ベクト
ル{ck1}をPENに転送する。PE2は、分散メモリ
2aの横ベクトル{b2k}をそのまま保持し、分散メモ
リ2bの縦ベクトル{ck2}をPE1に転送する。PE
mは、分散メモリmaの横ベクトル{bmk}をそのまま
保持し、分散メモリmbの縦ベクトル{ckm}をPEm
−1に転送する。PENは、分散メモリNaの横ベクト
ル{bNk}をそのまま保持し、分散メモリNbの縦ベク
トル{ckN}をPEN−1に転送する。The PE 1 holds the horizontal vector {b 1k } of the distributed memory 1a as it is and transfers the vertical vector {c k1 } of the distributed memory 1b to the PEN. The PE2 holds the horizontal vector {b 2k } of the distributed memory 2a as it is and transfers the vertical vector {c k2 } of the distributed memory 2b to the PE1. PE
m holds the horizontal vector {b mk } of the distributed memory ma as it is and the vertical vector {c km } of the distributed memory mb PEm.
Transfer to -1. The PEN holds the horizontal vector {b Nk } of the distributed memory Na as it is and transfers the vertical vector {c kN } of the distributed memory Nb to PEN-1.
【0066】つまり、PEm(mは1〜N)は、分散メ
モリmaの横ベクトル{bmk}をそのまま保持し、分散
メモリmbの縦ベクトル{ckm}をPEm−1に転送す
る。なお、通信経路22が順次データを転送するような
方式であれば、2クロックで転送を行なうことができ
る。That is, PEm (m is 1 to N) holds the horizontal vector {b mk } of the distributed memory ma as it is and transfers the vertical vector {c km } of the distributed memory mb to PEm-1. If the communication path 22 transfers data sequentially, the transfer can be performed in two clocks.
【0067】上記した例ではPEmのデータはPEm−
1に対して転送することとしたが、逆方向、すなわちP
Em+1のデータをPEmに転送するようにしても良
い。この場合、PENのデータはPE1に転送される。In the above example, the PEm data is PEm-
It was decided to transfer to 1, but the opposite direction, that is, P
The data of Em + 1 may be transferred to PEm. In this case, the PEN data is transferred to PE1.
【0068】次に、データ転送をした各PEのPE内制
御部は、制御装置3から転送されたデータについて、あ
る一組のベクトルの組み合わせについて内積計算が終わ
ったものとして、それぞれ変数CNTを1だけ増やす
(ステップS9)。Next, the in-PE control unit of each PE that has transferred the data assumes that the inner product calculation has been completed for a certain set of vector combinations for the data transferred from the control device 3, and sets the variable CNT to 1 respectively. Only (step S9).
【0069】さて、前述したように、各PEは上記ステ
ップS5〜S9の工程をステップS4でCNT≧Nが満
たされるまで順次繰り返す。これによって、制御装置3
から転送されたデータにおける全ての横ベクトルと縦ベ
クトルの組み合わせについての内積計算が実行される。As described above, each PE repeats the above steps S5 to S9 sequentially until CNT ≧ N is satisfied in step S4. As a result, the control device 3
The inner product calculation is executed for all the combinations of the horizontal vector and the vertical vector in the data transferred from.
【0070】すなわち、第1回目のラウンドでは、行列
積Aにおける要素amm(m=1〜N)が得られ、隣接P
Eへのデータ転送が行われた後、第2回目のラウンドで
は、PEm(m=1〜N)において、(4)式で表され
るような計算が行われる。ただし、m+1=(m+1)
mod Nとする。That is, in the first round, the element a mm (m = 1 to N) in the matrix product A is obtained, and the adjacent P
After the data transfer to E, in the second round PEm (m = 1 to N), the calculation represented by the equation (4) is performed. However, m + 1 = (m + 1)
mod N.
【0071】[0071]
【数4】 (Equation 4)
【0072】この計算結果は行列積Aにおける要素a
mm+1(つまり、a12,a23,…)となる。以下同様にし
て、各ラウンドにおいて、行列積Aにおける要素
amm+2,amm+3,…,amm+N-1がそれぞれ得られる。The result of this calculation is the element a in the matrix product A.
mm + 1 (that is, a 12 , a 23 , ...). Similarly, in each round, the elements a mm + 2 , a mm + 3 , ..., A mm + N-1 in the matrix product A are obtained.
【0073】計算結果は、順次、制御装置3に転送され
るので、ステップS4においてCNT≧Nが満たされる
場合は、制御装置3のメモリ32には行列Aにおける全
ての要素がストアされたことになる。Since the calculation results are sequentially transferred to the control device 3, if CNT ≧ N is satisfied in step S4, it means that all the elements in the matrix A have been stored in the memory 32 of the control device 3. Become.
【0074】以上が、この実施の形態の並列計算機によ
り行列積を求める動作の一例である。次に、この実施の
形態において、N×N行列の行列積計算に必要な時間を
考えてみる。The above is an example of the operation for obtaining the matrix product by the parallel computer of this embodiment. Next, consider the time required for the matrix product calculation of the N × N matrix in this embodiment.
【0075】一般にN×N行列の行列積計算において
は、積和計算そのものは全部でN3 回の乗算と(N−
1)N2 回の加算を必要とするが、この実施の形態によ
れば、N2 回の乗算と(N−1)N回の加算を同時に実
行することができる。すなわち、100%の並列化度を
得ることができる。また、データの局所性も完全に保っ
ており、データを最も近接したPEに転送するときはす
べてのPEがデータ転送を行っているので、データ転送
という観点でも並列化度は100%である。Generally, in the matrix product calculation of N × N matrix, the sum of products calculation itself is N 3 times of multiplication and (N−
1) N requires two additions but, according to this embodiment, it is possible to perform N 2 times and multiplying the (N-1) N additions simultaneously. That is, a parallelization degree of 100% can be obtained. Further, the locality of data is completely maintained, and all PEs are transferring data when transferring data to the closest PEs, so the parallelization degree is 100% from the viewpoint of data transfer.
【0076】行列積の基本演算である乗算と加算は必ず
一定のクロック数で計算が終了する。乗算と加算はそれ
ぞれ2クロックで処理できるものとする。加算そのもの
は1クロックで実行でき、並列計算機に乗算器を設けた
場合、乗算そのものも1クロックで実行できるが、デー
タフェッチを行なうために最低で2クロックを必要とす
るからである。上述したようにこの実施の形態では、N
2 回の乗算および(N−1)N回の加算を行なうので、
乗算および加算に必要なクロック数はN2 ×2+(N−
1)N×2クロックとなる。The multiplications and additions, which are the basic operations of the matrix product, are always completed with a fixed number of clocks. It is assumed that multiplication and addition can be processed in 2 clocks each. This is because the addition itself can be executed in one clock, and when the multiplier is provided in the parallel computer, the multiplication itself can be executed in one clock, but at least two clocks are required to perform the data fetch. As described above, in this embodiment, N
Since two multiplications and (N-1) N additions are performed,
The number of clocks required for multiplication and addition is N 2 × 2 + (N-
1) N × 2 clocks.
【0077】各PEにおけるデータ転送に必要な時間
は、各PEそれぞれが書き込みおよび読み込みを行なう
ことから、2クロックが必要であるとする。ここで、各
PEにおける乗算と加算に必要な時間は確定しているの
で、各PEでの内積計算の終了を同期合わせしなくて
も、制御装置3の制御部31から演算開始の命令が各P
Eに与えられ、ある時に各PEで一斉に内積演算が開始
しているのであれば、それぞれのPEは内積計算が終わ
った時点でデータの転送を始めて良い。It is assumed that the time required for data transfer in each PE is 2 clocks because each PE writes and reads. Here, since the time required for multiplication and addition in each PE is fixed, even if the end of the inner product calculation in each PE is not synchronized, the control unit 31 of the control device 3 issues an instruction to start the calculation. P
If the PEs are given to E at the same time and the inner product operations are started simultaneously at each PE, each PE may start data transfer at the time when the inner product calculation is completed.
【0078】ところで、各PEで計算された内積を制御
装置3に返すには、通信経路21を経由する。その際、
これらのデータはすべて独立であるので、同時にデータ
伝送することは原理的には可能であるが、仮にそれぞれ
のデータが32ビットやあるいは64ビットであり、P
E数が104 のオーダーであるとすれば、これを同時に
行ないうるようにインプリメントすることは実際には難
かしい。そこでこの実施の形態では通常のバスと同じ構
成を採用しているが、各PEにおいて処理すべきことは
一定であるので、通信経路21の使用権の調停手続きは
必要ない。すなわち、あるPEから順番に、例えばDM
A(Direct Memort Access)転送
と同じ様にデータ転送を行えば良い。この場合、1つの
PEから通信経路21を介して制御装置3にデータを取
り込むには、アドレスとデータとを合わせて2クロック
を要する。結局、データはN個あるので2Nクロックが
必要となる。しかし、このデータの転送は各PEの乗算
器や加算器の動作とは無関係であるので、各PEにレジ
スタ1e〜Neを設けることによって、各PEが内積を
処理している間にデータ転送することが可能である。従
って、この時間は実際には内積演算の処理の後ろに隠れ
てしまい、処理時間には影響を与えない。By the way, in order to return the inner product calculated by each PE to the control device 3, it goes through the communication path 21. that time,
Since all these data are independent, it is possible in principle to transmit data at the same time, but if each data is 32 bits or 64 bits, P
Given that the E-number is on the order of 10 4 , it is actually difficult to implement so that this can be done simultaneously. Therefore, in this embodiment, the same configuration as that of a normal bus is adopted, but since the processing to be performed by each PE is constant, the arbitration procedure for the right to use the communication path 21 is not necessary. That is, in order from a certain PE, for example, DM
Data transfer may be performed in the same way as A (Direct Memory Access) transfer. In this case, it takes two clocks in total for the address and the data to fetch the data from one PE into the control device 3 via the communication path 21. After all, since there are N pieces of data, 2N clocks are required. However, since this data transfer has nothing to do with the operation of the multiplier or adder of each PE, the registers 1e to Ne are provided in each PE to transfer the data while each PE processes the inner product. It is possible. Therefore, this time is actually hidden behind the processing of the inner product operation and does not affect the processing time.
【0079】一方、データを隣接するPEに送るには、
2クロックあれば可能である。隣接するPEへのデータ
転送は、N回行なわれるので、全部で2Nクロックが必
要となる。なお、この実施の形態では、通信経路22も
通常のバスと同じ構成を採用しているが、通信経路21
と同様、その使用権の調停手続きは必要ない。すなわ
ち、あるPEから順番にデータ転送を行えば良い。On the other hand, to send data to the adjacent PE,
It is possible with two clocks. Since data transfer to the adjacent PE is performed N times, 2N clocks are required in total. In this embodiment, the communication path 22 has the same configuration as that of a normal bus, but the communication path 21
As with, no arbitration procedure for the right of use is required. That is, data may be transferred sequentially from a certain PE.
【0080】以上の結果、この実施の形態においてN×
N行列の行列積に必要なクロック数は、(乗算および加
算)+(データ転送)=N2 ×2+(N−1)N×2+
2×N=4N2 クロックとなる。As a result of the above, N × in this embodiment.
The number of clocks required for the matrix multiplication of N matrices is (multiplication and addition) + (data transfer) = N 2 × 2 + (N−1) N × 2 +
2 × N = 4N 2 clocks.
【0081】最近の標準的なマイクロプロセッサのクロ
ック周波数は100MHz程度のものが多いので、この
実施の形態においてクロック周波数が100MHすなわ
ちクロック時間が10ナノ秒であるとすると、N=10
5 の行列積を求めるには400秒で計算できる。これを
単位時間当たりの浮動小数点演算の回数に焼き直すと5
TFLOPS(5×1012FLOPS)となる。すなわ
ち、この実施の形態によれば、現存する最速のスーパー
コンピュータが10GFLOPS程度の実行性能を示し
ているのに対して、その100倍以上の処理速度を実現
することができる。The clock frequency of recent standard microprocessors is often about 100 MHz. Therefore, assuming that the clock frequency is 100 MH, that is, the clock time is 10 nanoseconds in this embodiment, N = 10.
It takes 400 seconds to obtain the matrix product of 5 . If this is recalculated to the number of floating point operations per unit time, 5
It becomes TFLOPS (5 × 10 12 FLOPS). That is, according to this embodiment, while the fastest existing supercomputer exhibits an execution performance of about 10 GFLOPS, it is possible to realize a processing speed 100 times or more that higher.
【0082】また、この実施の形態によれば、各々のP
Eには、記憶素子、乗算器、加算器のように基本的な素
子だけを設ければ良いので、従来のベクトル計算機のよ
うに非常に高価な半導体素子や極めて高度な実装技術は
必要ではない。Further, according to this embodiment, each P
Since only basic elements such as a memory element, a multiplier, and an adder need to be provided in E, extremely expensive semiconductor elements and extremely high-level mounting technology unlike conventional vector computers are not required. .
【0083】ベクトル・データを格納する分散メモリ
は、行列計算における行列のサイズ、例えばN×N行列
の行列積計算においては、長さがNのベクトルを保持す
ればよいので、通常の超並列計算機のように大容量のも
のは必要ない。The distributed memory for storing the vector data has the size of the matrix in the matrix calculation, for example, in the matrix product calculation of the N × N matrix, it is sufficient to hold the vector of length N. There is no need for a large capacity device like.
【0084】ベクトル・データを転送するための通信経
路はデータを論理的に隣接するPEに送るための機能を
有すれば良いので、従来の超並列計算機において用いら
れていたような任意のPEに対してデータを送るための
複雑なネットワークを用いる必要がない。The communication path for transferring the vector data may have a function for sending the data to the logically adjacent PE, so that it can be connected to any PE as used in the conventional massively parallel computer. There is no need to use complicated networks to send data to and from it.
【0085】演算手順が確定しているので、高速記憶素
子によるキャッシュを具備しなくても演算の高速性を保
つことができる。 (第2の実施形態)次に、図3を参照して本発明の第2
の実施の形態を説明をする。なお、この実施の形態にお
いては、図1と相対応する部分に同一符号を付して、第
1の実施形態との相違点を中心に述べる。Since the operation procedure is fixed, the high speed operation can be maintained even if the cache of the high speed storage element is not provided. (Second Embodiment) Next, referring to FIG. 3, a second embodiment of the present invention will be described.
The embodiment will be described. In this embodiment, parts corresponding to those in FIG. 1 are designated by the same reference numerals, and differences from the first embodiment will be mainly described.
【0086】図3に、この実施の形態に係る並列計算機
のシステム構成を示す。図3に示すように、この並列計
算機は、第1の実施の形態の並列計算機における2つの
分散メモリのうち一方(隣接PEへのデータ転送に供す
るメモリ1b〜Nb)をデュアルポートメモリ(図3中
の1b2〜Nb2)で構成し、隣接PEを直結するよう
にしたものである。FIG. 3 shows the system configuration of the parallel computer according to this embodiment. As shown in FIG. 3, in this parallel computer, one of the two distributed memories in the parallel computer of the first embodiment (memory 1b to Nb used for data transfer to an adjacent PE) is a dual port memory (FIG. 3). 1b2 to Nb2), and the adjacent PEs are directly connected.
【0087】また、この実施の形態では、各PE1〜N
において、第1の分散メモリ1a〜Naと乗算器1c〜
Ncとの間には第2のレジスタ1f〜Nfを接続し、第
2の分散メモリ1b2〜Nb2の一方のポートと乗算器
1c〜Ncとの間には第3のレジスタ1g〜Ngおよび
セレクタ1h〜Nhを接続している。さらに、第2の分
散メモリ1b2〜Nb2の他方のポートには、第4のレ
ジスタ1i〜Niを接続している。Further, in this embodiment, each of PE1 to N is
, The first distributed memories 1a to Na and the multiplier 1c to
Second registers 1f to Nf are connected to Nc, and third registers 1g to Ng and a selector 1h are provided between one port of the second distributed memories 1b2 to Nb2 and the multipliers 1c to Nc. ~ Nh are connected. Further, the fourth registers 1i to Ni are connected to the other ports of the second distributed memories 1b2 to Nb2.
【0088】内積演算の際に、第2のレジスタ1f〜N
fおよび第3のレジスタ1g〜Ngは、第1の分散メモ
リ1a〜Naおよび第2の分散メモリ1b2〜Nb2の
データをそれぞれストアするもので、これらを介して乗
算器1c〜Ncにデータを転送している。また、第3の
レジスタ1g〜Ngおよび第4のレジスタ1i〜Ni
は、隣接PE間でのデータ転送の際に、第2の分散メモ
リ1b2〜Nb2から読み出したデータや第2の分散メ
モリ1b2〜Nb2へ書き込むデータを一旦ストアす
る。At the time of inner product calculation, the second registers 1f to N
f and the third registers 1g to Ng store the data of the first distributed memories 1a to Na and the second distributed memories 1b2 to Nb2, respectively, and transfer the data to the multipliers 1c to Nc via them. are doing. In addition, the third registers 1g to Ng and the fourth registers 1i to Ni
Temporarily stores the data read from the second distributed memories 1b2 to Nb2 and the data to be written to the second distributed memories 1b2 to Nb2 at the time of data transfer between the adjacent PEs.
【0089】セレクタ1h〜Nhは、各PE内でのデー
タの流れを制御するために、図示しないPE内制御部に
より切替え制御される。つまり、各PEmのセレクタm
hは、図2のステップS5の内積計算の際には、乗算器
mcとレジスタmgを接続し、図2のステップS8の隣
接PEへのデータ転送の際には、レジスタmgと、該P
Emに論理的に隣接するPEm−1のレジスタm−1i
とを接続するように切替えられる。The selectors 1h to Nh are switching-controlled by a PE control unit (not shown) in order to control the flow of data in each PE. That is, the selector m of each PEm
When the inner product is calculated in step S5 in FIG. 2, h connects the multiplier mc and the register mg, and in the data transfer to the adjacent PE in step S8 in FIG.
Register m-1i of PEm-1 logically adjacent to Em
Switch to connect and.
【0090】ここで、PE1について隣接PEへのデー
タ転送の一例を説明すると、まず、第2の分散メモリ1
b2からデータが読み出され、一旦、転送レジスタ1i
に格納される。そして、通信経路22によりPE2に転
送される。また、PENの転送レジスタNiに記録され
ていたデータが通信経路22によりPE1に転送されて
くる。このデータは、セレクタ1hから第2のレジスタ
1gに送られる。そして、第2の分散メモリ1b2に書
き込まれる。ここで、PE2へのデータの転送とPEN
からのデータの転送は同時に行われる。以上のようなデ
ータ転送が他の全てのPEにおいて同時に行われること
になる。Here, an example of the data transfer to PE1 to the adjacent PE will be described. First, the second distributed memory 1
Data is read from b2 and once transferred to transfer register 1i
Stored in. Then, it is transferred to the PE 2 via the communication path 22. Further, the data recorded in the transfer register Ni of PEN is transferred to PE1 via the communication path 22. This data is sent from the selector 1h to the second register 1g. Then, the data is written in the second distributed memory 1b2. Here, transfer of data to PE2 and PEN
The transfer of data from is done at the same time. The data transfer as described above is simultaneously performed in all other PEs.
【0091】なお、データ転送の方向は、上記と逆の方
向に行なっても良い。この場合、隣接PEへのデータ転
送におけるレジスタmgとレジスタmiの働きが逆にな
る。一方、ベクトル・データの内積計算の際には、第1
の分散メモリ1a〜Naおよび第2の分散メモリ1b2
〜Nb2から、それぞれ第1のレジスタ1f〜Nfなら
びに第2のレジスタ1g〜Ngおよびセレクタ1h〜N
hを介して、乗算器1c〜Ncにデータが送られる。The data transfer may be performed in the opposite direction. In this case, the functions of the register mg and the register mi in the data transfer to the adjacent PE are reversed. On the other hand, when calculating the inner product of vector data,
Distributed memories 1a to Na and second distributed memory 1b2
-Nb2 from first register 1f to Nf, second register 1g to Ng and selector 1h to N, respectively.
Data is sent to the multipliers 1c to Nc via h.
【0092】以上のような第2の実施の形態の並列計算
機により、図2と同様の処理が行なわれ、制御装置3の
メモリ32に行列積の演算結果が格納される。このよう
な構成にすることにより、各PEのデータ転送におい
て、第1の実施形態のようにシングルポートメモリを使
用する際のデータ入れ替えについて必要なハードウエ
ア、例えばレジスタなどを省くことができる。The parallel computer of the second embodiment as described above performs the same processing as in FIG. 2 and stores the calculation result of the matrix product in the memory 32 of the control device 3. With such a configuration, in the data transfer of each PE, it is possible to omit the hardware necessary for data exchange when using the single-port memory as in the first embodiment, such as a register.
【0093】また、第2の分散メモリ1b2〜Nb2と
してデュアルポートメモリを用いたことで、論理的に隣
接した各PEがそれぞれ鎖状に直結されるような構成に
することが可能となる。この結果、第2の分散メモリ1
b2〜Nb2のデータを読出し、これを論理的に隣接す
る隣のPEに転送するとともに、もう一方の隣接するP
Eから転送されたデータを自分の第2の分散メモリ1b
2〜Nb2に書き込む一連の動作を、全てのPEについ
て同時に行なうことができる。Further, by using the dual port memory as the second distributed memories 1b2 to Nb2, it becomes possible to directly connect the PEs logically adjacent to each other in a chain. As a result, the second distributed memory 1
The data of b2 to Nb2 is read and transferred to the adjacent PE that is logically adjacent to the other, and the other adjacent P
The data transferred from E is stored in its second distributed memory 1b.
A series of operations for writing 2 to Nb2 can be simultaneously performed for all PEs.
【0094】さらに、第2の分散メモリ1b2〜Nb2
のデータをあらかじめレジスタ1i〜Niに格納してお
いて、レジスタ1i〜Ni内に格納されているデータが
論理的に隣接したPEに対して転送され、一旦、レジス
タ1g〜Ngに格納される。そのため、各PEの第2の
分散メモリについて、データ読み出しとデータ書き込み
とをほぼ同時に行なうことができる。もちろん、第2の
分散メモリの同一メモリセルのアクセスを防ぐために、
データを読み出した直後に書込みを行なうようにするこ
とは言うまでもない。Furthermore, the second distributed memories 1b2 to Nb2
Data is stored in the registers 1i to Ni in advance, and the data stored in the registers 1i to Ni is transferred to the logically adjacent PEs and temporarily stored in the registers 1g to Ng. Therefore, the data reading and the data writing can be performed almost simultaneously in the second distributed memory of each PE. Of course, in order to prevent access to the same memory cell of the second distributed memory,
It goes without saying that writing is performed immediately after reading the data.
【0095】このようにこの実施の形態によれば、隣接
PE間でのデータ転送をより高速に行なうことができ、
行列積演算の処理速度のさらなる向上を図ることができ
る。ところで、上記した各々の実施の形態では、N×N
次元の正方行列同士の行列積を求める場合の例を説明し
たが、もちろん、本発明は、N×M行列とM×N行列の
行列積のように、掛ける行列の横ベクトル数と掛けられ
る行列の縦ベクトル数が等しく、さらに掛ける行列の縦
ベクトル数と掛けられる行列の横ベクトル数が等しくな
るという条件を満たせば、正方行列でない行列同士の行
列積計算を求める場合にも適用することができる。As described above, according to this embodiment, data transfer between adjacent PEs can be performed at a higher speed,
It is possible to further improve the processing speed of the matrix product calculation. By the way, in each of the above-described embodiments, N × N
An example of obtaining the matrix product of two-dimensional square matrices has been described, but of course, the present invention, like the matrix product of N × M matrix and M × N matrix, is a matrix that can be multiplied by the number of lateral vectors of the matrix to be multiplied. Can be applied to the matrix product calculation of non-square matrices as long as the condition that the number of vertical vectors of is equal and the number of vertical vectors of the matrix to be multiplied and the number of horizontal vectors of the matrix to be multiplied are equal .
【0096】また、上記した各々の実施の形態において
は、各PEにおけるデータ転送は各PEの乗算器や加算
器を含む演算部を経由せずに通信経路22を使って行わ
れているが、通信経路22を設けずに各PEの演算部を
経由して通常のバス21経由でデータ転送を行なうこと
も可能である。ただし、この場合、データを一回入れ替
えるのに2クロックが必要であり、このデータは内積を
求めるための元のデータであるので、この時間は演算の
裏に隠すことはできないので、行列積にかかる全計算時
間は6N2 −2Nクロックになる。つまり、通信に要す
る時間が全計算時間の1/3強を占めることになる。Further, in each of the above-mentioned embodiments, the data transfer in each PE is performed using the communication path 22 without passing through the arithmetic unit including the multiplier and the adder of each PE. It is also possible to perform data transfer via the ordinary bus 21 via the arithmetic unit of each PE without providing the communication path 22. However, in this case, two clocks are required to replace the data once, and since this data is the original data for obtaining the inner product, this time cannot be hidden behind the operation, so the matrix product is used. The total calculation time is 6N 2 -2N clocks. That is, the time required for communication occupies a little over 1/3 of the total calculation time.
【0097】また、上記した各々の実施の形態において
は、PEは専用のハードとして構成されている。しかし
PEは乗算と加算が実行でき二つのベクトルを保持する
ための論理的に独立なメモリを持っていればよい。した
がって例えば市販のパソコンやEWS(エンジニアリン
グ・ワークステーション)を個々のPEと見なして行列
積専用のハードウエアを構成することも可能である。本
発明は、上述した実施の形態に限定されるものではな
く、その技術的範囲において種々変形して実施すること
ができる。Further, in each of the above-mentioned embodiments, the PE is constructed as a dedicated hardware. However, it is sufficient for the PE to have a logically independent memory capable of performing multiplication and addition and holding two vectors. Therefore, for example, it is possible to regard a commercially available personal computer or EWS (engineering workstation) as each PE and configure hardware dedicated to matrix multiplication. The present invention is not limited to the above-described embodiment, and can be implemented with various modifications within the technical scope.
【0098】[0098]
【発明の効果】本発明によれば、科学技術計算において
頻繁に現れる行列積計算を行なうために、各プロセッサ
エレメントに比較的構成が単純な加算器と乗算器を設け
るとともに、各プロセッサエレメントでは行列積計算を
行なう元となる行列の縦ベクトルまたは横ベクトルのい
ずれかを隣接プロセッサエレメント間での転送により持
ち回りしながら、分散的、順次的に、行列積の要素を計
算していくようにしたので、ベクトル型計算機のように
高価な半導体素子を使わず、また超並列計算機のように
複雑で高度の実装技術を必要とするネットワークを使用
せずに、従来よりも遥かに高速に行列積計算を行なうこ
とができる。According to the present invention, in order to perform a matrix product calculation that frequently appears in scientific and technological calculations, each processor element is provided with an adder and a multiplier having a relatively simple structure, and each processor element has a matrix. Since either the vertical vector or the horizontal vector of the matrix that is the source of the product calculation is carried around by transferring between adjacent processor elements, the elements of the matrix product are calculated in a distributed and sequential manner. , Without using expensive semiconductor devices such as vector computers, and without using networks that require complicated and sophisticated mounting technology such as massively parallel computers, matrix product calculation is much faster than before. Can be done.
【図1】本発明の第1の実施の形態に係る並列計算機の
システム構成を示す図FIG. 1 is a diagram showing a system configuration of a parallel computer according to a first embodiment of the present invention.
【図2】本発明の第1の実施の形態に係る並列計算機の
動作フローチャートを示す図FIG. 2 is a diagram showing an operation flowchart of the parallel computer according to the first embodiment of the present invention.
【図3】本発明の第2の実施の形態に係る並列計算機の
システム構成を示す図FIG. 3 is a diagram showing a system configuration of a parallel computer according to a second embodiment of the present invention.
【図4】従来のベクトル計算機における行列積計算のア
ルゴリズムの一例を示す図FIG. 4 is a diagram showing an example of a matrix product calculation algorithm in a conventional vector computer.
1〜N…PE(プロセッサエレメント) 1a〜Na,1b〜Nb…分散メモリ 1b2〜Nb2…デュアルポートメモリ 1c〜Nc…乗算器 1d〜Nd…加算器 1L〜NL…ループ回路 1e〜Ne…レジスタ,1f〜Nf,1g〜Ng,1i
〜Ni…レジスタ 1h〜Nh…セレクタ 21,22,231〜23N…通信経路(バス) 3…制御装置 31…制御部 32…メモリ1-N ... PE (processor element) 1a-Na, 1b-Nb ... Distributed memory 1b2-Nb2 ... Dual port memory 1c-Nc ... Multiplier 1d-Nd ... Adder 1L-NL ... Loop circuit 1e-Ne ... Register, 1f to Nf, 1g to Ng, 1i
~Ni ... register 1H~Nh ... selector 21, 22, 23 1 ~ 23 N ... communication path (bus) 3 ... controller 31 ... controller 32 ... memory
Claims (5)
ッサエレメントにデータを分配し演算結果を収集する制
御装置と、該制御装置と各プロセッサエレメントを接続
する第1の通信経路と、論理的に隣接するプロセッサエ
レメントを接続する該第1の通信経路とは別に設けられ
た第2の通信経路とを備えた並列計算機であって、 前記制御装置は、前記第1の通信経路により、行列積演
算の元となる第1の行列の要素を縦方向および横方向の
一方にグルーピングしてなる複数の第1のベクトルを前
記プロセッサエレメントのそれぞれに排他的に分配する
とともに、該行列積演算の元となる第2の行列の要素を
縦方向および横方向のうち前記第1のベクトルとは異な
る方向にグルーピングしてなる複数の第2のベクトルを
前記プロセッサエレメントのそれぞれに排他的に分配す
る手段を備え、 前記プロセッサエレメントのそれぞれは、 前記第1のベクトルを格納するための第1の記憶手段
と、 前記第2のベクトルを格納するための第2の記憶手段
と、 前記第1の記憶手段に格納された前記第1のベクトルの
各要素と前記第2の記憶手段に格納された前記第2のベ
クトルの各要素とを逐次乗算する乗算器と、 前記乗算器による乗算結果を累積加算する加算器と、 転送された前記第1のベクトルを前記第1の記憶手段に
格納し、転送された前記第2のベクトルを前記第2の記
憶手段に格納し、前記加算器の累積加算結果を前記第1
の行列と前記第2の行列からなる行列積の一要素として
前記第1の通信経路により前記制御装置に転送するとと
もに、前記第2の通信経路により前記第2のベクトルを
論理的に隣接する片方の前記プロセッサエレメントに転
送する制御を行なう制御手段とを備えたことを特徴とす
る並列計算機。1. A processor is logically adjacent to a plurality of processor elements, a control device for distributing data to each processor element and collecting operation results, and a first communication path connecting the control device and each processor element. A parallel computer having a second communication path provided separately from the first communication path connecting a processor element, wherein the control device uses the first communication path to perform matrix product calculation A plurality of first vectors obtained by grouping the elements of the first matrix, which are arranged in one of the vertical direction and the horizontal direction, to each of the processor elements exclusively, A plurality of second vectors formed by grouping the elements of the two matrices in the vertical direction and the horizontal direction in a direction different from the first vector; Each of the processor elements has a first storage means for storing the first vector, and a second storage means for storing the second vector. Storage means, and a multiplier for sequentially multiplying each element of the first vector stored in the first storage means and each element of the second vector stored in the second storage means, An adder for accumulatively adding multiplication results by the multiplier, storing the transferred first vector in the first storage means, and storing the transferred second vector in the second storage means And the cumulative addition result of the adder is the first
Of the matrix and the second matrix are transferred to the control device through the first communication path as one element of the matrix product, and the second vector is logically adjacent to the other one side through the second communication path. And a control means for controlling the transfer to the processor element.
び第2のポートを有するデュアルポートメモリを用いて
構成され、 前記第2の通信経路は、各々の前記プロセッサエレメン
トについて、1つのプロセッサエレメントのデュアルポ
ートメモリの第1のポートと、該1つのプロセッサエレ
メントに論理的に隣接する片方の前記プロセッサエレメ
ントのデュアルポートメモリの第2のポートとを接続す
るように設けられた複数の専用通信経路からなり、 前記制御手段は、前記デュアルポートメモリの前記第1
のポートおよび前記第2のポートの一方から前記第2の
ベクトルを読み出し、前記専用通信経路により論理的に
隣接する片方の前記プロセッサエレメントに転送すると
ともに、他の前記専用通信経路により論理的に隣接する
もう片方の前記プロセッサエレメントから転送された前
記第2のベクトルを該デュアルポートメモリの該第1の
ポートおよび該第2のポートの他方から書き込む制御を
行なうことを特徴とする請求項1に記載の並列計算機。2. The second storage means is configured by using a dual port memory having a first port and a second port, and the second communication path is one for each processor element. A plurality of dedicated units provided to connect a first port of a dual port memory of a processor element and a second port of a dual port memory of one of the processor elements logically adjacent to the one processor element. A communication path, and the control means includes the first port of the dual port memory.
The second vector from one of the second port and the second port, transfers the second vector to one of the processor elements that is logically adjacent to the dedicated communication path, and logically adjacent to the other dedicated communication path. 2. The control for writing the second vector transferred from the other processor element of the dual port memory from the other one of the first port and the second port of the dual port memory. Parallel computer.
と、 前記乗算器の一方の入力端と前記第1の記憶手段との間
に設けられた第2のレジスタと、 前記第2の記憶手段を構成する前記デュアルポートメモ
リの一方のポートに接続された第3のレジスタと、 前記第2の記憶手段を構成する前記デュアルポートメモ
リの他方のポートに接続された第4のレジスタと、 前記乗算器の他方の入力端と前記第3のレジスタと前記
第2の通信経路を介して隣接する前記プロセッサエレメ
ントの前記第4のレジスタとに接続され、該乗算器の他
方の入力端と前記第3のレジスタとの間および該第3の
レジスタと隣接する該プロセッサエレメントの該第4の
レジスタとの間のいずれかを選択的に接続するセレクタ
とをさらに備え、 前記制御手段は、前記第1の記憶手段および前記第2の
記憶手段にそれぞれ格納された前記第1のベクトル・デ
ータおよび前記第2のベクトル・データを前記第2のレ
ジスタならびに前記第3のレジスタおよび前記セレクタ
をそれぞれ介して前記乗算器に与え、前記加算器の累積
加算結果を前記第1のレジスタを介して前記第1の通信
経路により前記制御装置に転送し、該第2の記憶手段に
格納された前記第2のベクトルを前記第4のレジスタ、
ならびに該第3のレジスタおよび該セレクタの一方を介
して前記専用通信経路により論理的に隣接する片方の前
記プロセッサエレメントに転送するとともに、他の前記
専用通信経路により論理的に隣接するもう片方の前記プ
ロセッサエレメントから転送された前記第2のベクトル
を該第4のレジスタ、ならびに該第3のレジスタおよび
該セレクタの他方を介して該第2の記憶手段に格納する
制御を行なうことを特徴とする請求項2に記載の並列計
算機。3. The processor elements each include a first register for storing a cumulative addition result of the adder, and a first register provided between one input end of the multiplier and the first storage means. A second register, a third register connected to one port of the dual port memory forming the second storage means, and a third port connected to the other port of the dual port memory forming the second storage means. Connected to a fourth register connected thereto, the other input end of the multiplier, the third register and the fourth register of the adjacent processor element via the second communication path, Selectively connecting between the other input terminal of the multiplier and the third register and between the third register and the fourth register of the adjacent processor element; A selector, and the control means stores the first vector data and the second vector data stored in the first storage means and the second storage means, respectively, in the second register. And the cumulative addition result of the adder is given to the multiplier via the third register and the selector, respectively, and transferred to the control device via the first communication path via the first register, The second vector stored in the second storage means is stored in the fourth register;
And via one of the third register and the selector to the one processor element that is logically adjacent to the dedicated communication path, and the other of the processor elements that is logically adjacent to the other dedicated communication path. A control for storing the second vector transferred from the processor element in the second storage means via the fourth register and the other of the third register and the selector is performed. The parallel computer according to Item 2.
ッサエレメントを少なくとも単方向に論理的に環状接続
するバスを用いて構成されたものであり、 前記制御手段は、前記第2の記憶手段から前記第2のベ
クトルを読み出し、前記複数のプロセッサエレメントに
ついての所定の順序に従い前記第2の通信経路により論
理的に隣接する片方の前記プロセッサエレメントに転送
し、該第2の通信経路により論理的に隣接するもう片方
の前記プロセッサエレメントから転送された前記第2の
ベクトルを該第2の記憶手段に書き込む制御を行なうこ
とを特徴とする請求項1に記載の並列計算機。4. The second communication path is configured by using a bus that logically annularly connects the plurality of processor elements in at least one direction, and the control means is the second storage. Means for reading the second vector, transferring the second vector to the one processor element logically adjacent to the second communication path according to a predetermined order for the plurality of processor elements, and logically transferring the second vector to the processor element. 2. The parallel computer according to claim 1, wherein control is performed to write the second vector transferred from the other processor element that is physically adjacent to the second storage means.
記加算器の累積加算結果を格納するレジスタをさらに備
え、 前記制御手段は、前記加算器の累積加算結果を前記レジ
スタを介して前記第1の通信経路により前記制御装置に
転送する制御を行なうことを特徴とする請求項4に記載
の並列計算機。5. Each of the processor elements further comprises a register for storing a cumulative addition result of the adder, and the control means controls the cumulative addition result of the adder via the register to the first communication path. 5. The parallel computer according to claim 4, wherein the control is performed to transfer to the control device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7216152A JPH0962656A (en) | 1995-08-24 | 1995-08-24 | Parallel computers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7216152A JPH0962656A (en) | 1995-08-24 | 1995-08-24 | Parallel computers |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0962656A true JPH0962656A (en) | 1997-03-07 |
Family
ID=16684105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7216152A Pending JPH0962656A (en) | 1995-08-24 | 1995-08-24 | Parallel computers |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0962656A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235004A (en) * | 2004-02-20 | 2005-09-02 | Altera Corp | Multiplier-accumulator block mode splitting |
JP6023852B1 (en) * | 2015-05-29 | 2016-11-09 | 日本電信電話株式会社 | Detection function addition device, detection device, and program |
-
1995
- 1995-08-24 JP JP7216152A patent/JPH0962656A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235004A (en) * | 2004-02-20 | 2005-09-02 | Altera Corp | Multiplier-accumulator block mode splitting |
JP6023852B1 (en) * | 2015-05-29 | 2016-11-09 | 日本電信電話株式会社 | Detection function addition device, detection device, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110892393B (en) | Homomorphic Processing Unit (HPU) for accelerating secure computation under homomorphic encryption | |
EP0085520B1 (en) | An array processor architecture utilizing modular elemental processors | |
US5625831A (en) | Extendible clock mechanism | |
JP3251421B2 (en) | Semiconductor integrated circuit | |
US4740894A (en) | Computing processor with memoryless function units each connected to different part of a multiported memory | |
KR20150016089A (en) | Neural network computing apparatus and system, and method thereof | |
US7673118B2 (en) | System and method for vector-parallel multiprocessor communication | |
US7409529B2 (en) | Method and apparatus for a shift register based interconnection for a massively parallel processor array | |
US4543642A (en) | Data Exchange Subsystem for use in a modular array processor | |
TWI815392B (en) | Compute-in-memory device and method for performing a mac operation | |
GB2286909A (en) | Pipelined SIMD-systolic array processor. | |
JPH0792790B2 (en) | Vector parallel computer | |
Hanawa et al. | Multistage interconnection networks with multiple outlets | |
JPH0962656A (en) | Parallel computers | |
JPH0675930A (en) | Parallel processor system | |
US5513364A (en) | Data transfer device and multiprocessor system | |
US20060034307A1 (en) | Method and apparatus for controlling storage of data | |
Bhuyan | On the performance of loosely coupled multiprocessors | |
Dickey et al. | Designing VLSI network nodes to reduce memory traffic in a shared memory parallel computer | |
US7337265B2 (en) | Organization of cache memory for hardware acceleration of the finite-difference time-domain method | |
CN106383791A (en) | Memory block combination method and apparatus based on non-uniform memory access architecture | |
Swarztrauber | The Communication Machine | |
TW202414239A (en) | Processing element array and operating method thereof | |
JPH03105584A (en) | Parallel data processing system | |
CN118152330A (en) | Reconfigurable computing device, convolution computing method and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041207 |