JPH0520348A - 並列演算装置 - Google Patents

並列演算装置

Info

Publication number
JPH0520348A
JPH0520348A JP17216891A JP17216891A JPH0520348A JP H0520348 A JPH0520348 A JP H0520348A JP 17216891 A JP17216891 A JP 17216891A JP 17216891 A JP17216891 A JP 17216891A JP H0520348 A JPH0520348 A JP H0520348A
Authority
JP
Japan
Prior art keywords
hxpc
charge
row
column number
cluster
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
Application number
JP17216891A
Other languages
English (en)
Inventor
Yoshiyuki Mochizuki
義幸 望月
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP17216891A priority Critical patent/JPH0520348A/ja
Priority to DE69232431T priority patent/DE69232431T2/de
Priority to EP92111660A priority patent/EP0523544B1/en
Priority to US07/912,180 priority patent/US5490278A/en
Publication of JPH0520348A publication Critical patent/JPH0520348A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 数値データ処理分野における連立1次方程式
の高速かつ並列処理に適した直接法による求解の演算手
段を提供する。 【構成】 ホストコンピュータの制御のもと、データ割
付手段1によって、連立1次方程式の係数行列と未知数
ベクトル、既知数ベクトルをメモリに割り付け、枢軸選
択手段2によって、ピボティング処理を並列に行い、基
本前消去手段3によって、多枢軸列同時消去の前処理を
行い、多枢軸消去手段4によって、多枢軸による多枢軸
列同時消去を並列に行うことを繰り返し、しかる後、残
余消去手段5によって、残った行の消去を行い、その上
で基本後退代入手段6によって、未知数ベクトル成分へ
の代入を行い、基本後退転送手段7によって、求まった
解をクラスタの共有メモリに転送し、基本後退演算手段
8によって求解演算を行う操作を繰り返す構成とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多数の情報処理装置で
構成される連立1次方程式の並列処理装置に関する。
【0002】
【従来の技術】数値データ処理の分野においては、以前
から数多くの連立1次方程式の直接法による解法アルゴ
リズムが提案されてきた。それらの中で特に、ガウス消
去法に基づく2枢軸による2列同時消去法のアルゴリズ
ムについては、村田健郎、小国力、唐木幸比古「スーパ
ーコンピュータ 科学技術への適用」,丸善,1985,pp
95-96に記載されている。また、LU分解に基づく多枢
軸による多数列同時消去法のアルゴリズムについては、
ジム・アームストロング, ”アルゴリズム アンド パ
フォーマンス ノーツフォー ブロック LU ファク
タリゼーション”,1988,インターナショナル コンフ
ェレンス オン パラレル プロセッシング,Vol.3 ,
pp161-164 (Jim Armstrong,"ALGORITHM AND PERFORMAN
CE NOTES FOR BLOCK LUFACTORIZATION",1988,Internati
onal Conference on Parallel Processing,Vol.3,pp161
-164)に記載されており、これらには逐次処理または少
数の複数プロセッサによる計算の多重化処理についての
み述べられている。しかし、これらの方法では、メモリ
アクセス回数が多いため高速計算が困難である。
【0003】
【発明が解決しようとする課題】本発明は上記困難を解
決するためなされたものであり、多枢軸による多枢軸列
同時消去法を採用することにより、1枢軸による1列消
去法と比べ計算量は変わらないが、メモリアクセス回数
が減ることと、ループ展開と同様の効果により高速計算
が可能となり、ひいては並列処理に適し、しかも高速な
連立1次方程式の直接法による求解のための並列演算装
置を提供することを目的とする。
【0004】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に係る発明においては、1番からPc 番ま
での要素プロセッサと共有メモリによって構成されるク
ラスタと、1番からC番までの前記クラスタをネットワ
ークで接続することで構成される並列計算機において、
係数行列A=(aij)(1≦i, j≦nの整数),既知
数ベクトルb=(b1,b2,...,bn T ,未知数ベクト
ルy=(y1,y2,...,yn T で表現される連立1次方
程式をAy=bするとき、前記クラスタの共有メモリへ
順に、係数行列はPc 行づつ、既知数ベクトルと未知数
ベクトルは係数行列を割り付けた行番号と対応する成分
番号の成分をPc 成分づつ割り付けていき、1巡目で割
り付けが終わらないときは、更に2巡目、3巡目と繰り
返すことにより、係数行列、既知数ベクトル、未知数ベ
クトルの要素全てを割り付け、前記クラスタ内のPc個
の要素プロセッサに対しては、係数行列は、前記クラス
タの共有メモリに割り付けたPc 行のうちの1行づつ
を、既知数ベクトルや未知数ベクトルは、係数行列を割
り付けた行番号と対応する成分番号の成分を前記要素プ
ロセッサに割り付けるデータ割り付け手段と、前記クラ
スタの1番目の要素プロセッサで、枢軸選択手段によっ
てahxPc+1 hxPc+1 の選択を行い、ahxPc+1 j:=a
hxPc+1 j/a hxPc+1 hxPc+1 (ここに,ahxPc+1jの後
の:は定義を意味する。即ち、ahxPc +1j /a
hxPc+1 hxPc+1 をahxPc+1 jと置く意味である。以下に
同じ。)bhxPc +1:=bhxPc+1/ahxPc+1 hxPc+1 の計
算を行い、計算結果を第h×Pc +2行から第n行を担
当する要素プロセッサが属し、かつ第(h×Pc +1)
行を担当する要素プロセッサの属するクラスタ以外のク
ラスタの共有メモリに転送し、係数行列の第(h×Pc
+2)行から第n行を担当するの前記要素プロセッサ
で、担当する行に対して、ti (1) :=a1 hxPc+2−a
i hxPc+1×ahxPc+1 hxPc+2 の計算を行い、特に、前記
クラスタの2番目の要素プロセッサでは、ahxPc+2 j
=ahxPc+2 j−ahxPc+2 hxPc+1 ×ahxPc+1 j,b
hxPc+2:=bhxPc+2−ahx Pc+2 hxPc+1 ×bhxPc+1の計
算と、前記枢軸選択手段によってahxPc+2 hxPC+2の選
択を行い、ahxPc+2 j:=ahxPc+2 j/a
hxPc+2 hxPc+2 ,bhxPc+2:=b hxPc+2/a
hxPc+2 hxPc+2 の計算も併せ行い、後者の計算結果を第
(h×Pc +3)行から第n行を担当する要素プロセッ
サが属し、かつ第(h×Pc +2)行を担当する要素プ
ロセッサの属するクラスタ以外のクラスタの共有メモリ
に転送し、その後、係数行列の第(h×Pc +k)行か
ら第n行を担当する前記要素プロセッサで、担当する行
に対して、
【0005】
【数11】
【0006】の計算を行い、特に、前記クラスタのk番
目の要素プロセッサでは、
【0007】
【数12】
【0008】
【数13】
【0009】の計算と、前記枢軸選択手段によってa
hxPc+k hxPc+k の選択を行い、ahxPc+k j:=a
hxPc+k j/ahxPc+k hxPc+k ,bhxPc+K:=bhxPc+k
hxPc+k hxPc+ k の計算も併せ行い、後者の計算結果を
第(h×Pc +k+1)行から第n行を担当する要素プ
ロセッサが属し、かつ第(h×Pc +k)行を担当する
要素プロセッサの属するクラスタ以外のクラスタの共有
メモリに転送するという一連の基本前消去の操作をk=
3からk=Pc まで繰り返す基本前消去手段と、係数行
列の第((h+1)×Pc +1)行から第n行を担当す
る各要素プロセッサで、自分の担当する行に対して、
【0010】
【数14】
【0011】
【数15】
【0012】という多枢軸列同時消去計算を行う多枢軸
消去処理手段と、クラスタ単位で順に前記基本前消去の
操作を行い、その後前記多枢軸消去処理手段の操作を行
うという一連の操作を[n/Pc ]回行う繰り返し消去
手段と、前記繰り返し消去手段の操作が終了したとき
に、n−[n/Pc ]×Pc>0ならば、更に係数行列
の第([n/Pc ]×Pc +1)行から第n行を担当す
る前記要素プロセッサで、第([n/Pc ]×Pc +
1)行から第n行に対して、前記基本前消去と同じ操作
で残りの行に対する消去を行う残余消去手段とを備えた
ことを特徴としている。
【0013】請求項2に係る発明においては、前記請求
項1の並列消去装置によって消去終了後、前記要素プロ
セッサで、y i :=bi とする基本後退代入手段と、第
1成分から第(i−1)成分を担当する前記要素プロセ
ッサの属するクラスタの共有メモリにyi を転送する基
本後退転送手段と、第1成分から第(i−1)成分を担
当する前記要素プロセッサで、担当する成分に対し、b
i :=bi −ai n-k ×yn-k の計算を行う基本後退演
算手段と、既知数ベクトル、未知数ベクトルの第(n−
k+1)成分を担当する前記要素プロセッサにおいて
は、前記基本後退代入手段によるyn-k+1 :=bn-k+1
を行い、前記基本後退転送手により既知数ベクトル、未
知数ベクトルの第1成分から第(n−k)成分を担当す
る前記要素プロセッサの属するクラスタの共有メモリに
n-k+1 を転送した後、第1成分から第(n−k)成分
を担当する各前記要素プロセッサで基本後退演算手段に
よる計算を行うという一連の操作をk=1からk=(n
−1)まで繰り返し、最後に、前記基本後退代入手段に
よるy1 :=b1 を行う繰り返し後退処理手段とを備え
たことを特徴とする並列演算装置としている。
【0014】請求項3に係る発明においては、1番から
Pc 番までの要素プロセッサと共有メモリによって構成
されるクラスタと、1番からC番(1≦Cの整数)まで
のC個の前記クラスタをネットワークで接続することで
構成される並列計算機において、係数行列A=
(aij),既知数ベクトルb=(b1,b2,...,bn )
T ,未知数ベクトルy=(y1,y2,...,yn T で表
現される連立1次方程式をAy=bするとき、前記クラ
スタの共有メモリへ順に、係数行列はPc 行づつ、既知
数ベクトルと未知数ベクトルは係数行列を割り付けた行
番号と対応する成分番号の成分をPc 成分づつ割り付け
ていき、1巡目で割り付けが終わらないときは、更に2
巡目、3巡目と繰り返し、係数行列、既知数ベクトル、
未知数ベクトルの要素全てを割り付け、前記クラスタ内
のPc 個の要素プロセッサに対しては、係数行列は、前
記クラスタの共有メモリに割り付けたPc 行のうちの1
行づつを、既知数ベクトルや未知数ベクトルは、係数行
列を割り付けた行番号と対応する成分番号の成分を前記
要素プロセッサに割り付けるデータ割り付け手段と、前
記クラスタの1番目の要素プロセッサで、枢軸選択手段
によってahxPc+1 hxPc+1 の選択を行い、ahxPc+1 j
=ahxPc+1 j/ahxPc+1 hxPc+1 ,bhxPc+1:=b
hxPc+1/ahxPc+1 hxPc+1 の計算を行い、計算結果を第
(h×Pc +1)行を担当する要素プロセッサの属する
クラスタ以外のクラスタの共有メモリに転送し、係数行
列の第(h×Pc +2)行から第n行を担当する前記要
素プロセッサで、担当する行に対して、ti (1) :=a
i hxPc+2−ai hxPc+1×ahxPc+1 hxPc+2 の計算を行
い、特に、前記クラスタの2番目の要素プロセッサで
は、前記ti (1) の他、ahxPc+2 j:=ahxPc+2 j−a
hxPc+2 hxPc+1 ×ahxPc+1 j,bhxPc+2:=b hxPc+2
hxPc+2 hxPc+1 ×bhxPc+1の計算と、前記枢軸選択手
段によってahx Pc+2 hxPc+2 の選択を行い、
hxPc+2 j:=ahxPc+2 j/ahxPc+2 hxPc+2 ,b
hxPc+2:=bhxPc+2/ahxPc+2 hxPc+2 の計算も併せ
行い、後者の計算結果を第(h×Pc +2)行を担当す
る要素プロセッサの属するクラスタ以外のクラスタの共
有メモリに転送し、その後、係数行列の第(h×Pc +
k)行から第n行を担当する前記要素プロセッサで、担
当する行に対して、
【0015】
【数16】
【0016】の計算を行い、特に、前記クラスタのk番
目の要素プロセッサでは、
【0017】
【数17】
【0018】
【数18】
【0019】の計算と、前記枢軸選択手段によってa
hxPc+k hxPc+k の選択を行い、ahxPc+k j :=a
hxPc+k j/ahxPc+k hxPc+k ,bhxPc+k:=bhxPc+k
hxPC+k hxPc+ k の計算も併せ行い、後者の計算結果を
第(h×Pc+k)行を担当する要素プロセッサの属す
るクラスタ以外のクラスタの共有メモリに転送するとい
う一連の操作をk=3からk=Pc まで繰り返す基本前
消去手段と、係数行列の第1行から第(h×Pc )行と
第((h+1)×Pc+1)行から第n行を担当する各
要素プロセッサで、自分の担当する行に対して、
【0020】
【数19】
【0021】
【数20】
【0022】という多枢軸列同時消去計算を行う多枢軸
消去処理手段と、前記要素プロセッサで、aij=aij
i i+k ・ai+k j ,bi :bi −ai i+k・bi+k
計算を行う基本後消去手段と、係数行列の第(h×Pc
+1)行から第(h×Pc+q)行を担当する各前記要
素プロセッサで、第(h×Pc+w)行には前記基本後
消去手段のk=−w+q+1の場合を適用するという操
作をw=1からw=qまで同時に各行に対して行い、そ
の処理を、q=1から(Pc −1)まで繰り返し行うと
いう後消去処理を行う後消去処理手段と、クラスタ単位
で、Pc 行毎に前記基本前消去を行い、その後前記多枢
軸列同時消去計算を行い、前記後消去処理を行うという
一連の操作を[n/Pc ]回行う繰り返し消去手段と、
前記繰り返し消去手段の操作が終了したときに、n−
[n/Pc ]×Pc >0ならば、残りの第([n/Pc
]×Pc +1)行から第n行を担当する前記要素プロ
セッサで、第([n/Pc ]×Pc+1)行から第n行
に対して、前記基本前消去を行い、その後前記多枢軸列
同時消去計算を行い、更に前記後消去処理を行う残余消
去手段とを備えたことを特徴とする並列演算装置として
いる。
【0023】請求項4に係る発明においては、係数行列
のある対角要素の属する行を担当する前記要素プロセッ
サで、前記対角要素が0のときに、前記対角要素から要
素の列番号の大きくなる方向に非ゼロ要素を検索する検
索手段と、前記検索手段によって見つかった要素の列番
号を他の前記要素プロセッサに知らせる列番号放送手段
と、前記各要素プロセッサが係数行列の自分の担当する
行に対して、前記列番号放送手段によって知らされた列
番号の要素と前記対角要素の列番号と等しい列番号の要
素を交換する要素交換手段と、前記列番号放送手段によ
って知らされた列番号と等しい番号の未知数ベクトルの
成分を担当する前記要素プロセッサと前記対角要素の列
番号と等しい番号の未知数ベクトルの成分を担当する前
記要素プロセッサにおいて、前記列番号放送手段によっ
て知らされた列番号と等しい番号の未知数ベクトルの成
分と元の対角成分の列番号と番号の等しい未知数ベクト
ルの成分の位置を交換する成分位置交換手段とを備えた
ことを特徴とする請求項1、3記載の枢軸選択手段とし
ている。
【0024】請求項5に係る発明においては、係数行列
のある対角要素の属する行を担当する前記要素プロセッ
サで、前記対角要素から要素の列番号の大きくなる方向
に絶対値の最大な要素を検索する検索手段と、前記検索
手段によって見つかった要素の列番号を他の前記要素プ
ロセッサに知らせる列番号放送手段と、前記各要素プロ
セッサが係数行列の自分の担当する行に対して、前記列
番号放送手段によって知らされた列番号の要素と前記対
角要素の列番号と等しい列番号の要素を交換する要素交
換手段と、前記列番号放送手段によって知らされた列番
号と等しい番号の未知数ベクトルの成分を担当する前記
要素プロセッサと前記対角要素の列番号と等しい番号の
未知数ベクトルの成分を担当する前記要素プロセッサに
おいて、前記列番号放送手段によって知らされた列番号
と等しい番号の未知数ベクトルの成分と元の対角成分の
列番号と番号の等しい未知数ベクトルの成分の位置を交
換する成分位置交換手段とを備えたことを特徴とする請
求項1、3記載の枢軸選択手段としている。
【0025】請求項6に係る発明においては、係数行列
のある対角要素の属する行を担当する前記要素プロセッ
サで、前記対角要素が0のときに、前記対角要素から要
素の列番号の大きくなる方向に非ゼロ要素を検索する検
索手段と、前記検索手段によって見つかった要素の列番
号を他の前記要素プロセッサに知らせる列番号放送手段
と、前記列番号放送手段によって知らされた列番号と等
しい番号の未知数ベクトルの成分を担当する前記要素プ
ロセッサと前記対角要素の列番号と等しい番号の未知数
ベクトルの成分を担当する前記要素プロセッサにおい
て、前記列番号放送手段によって知らされた列番号と等
しい番号の未知数ベクトルの成分と元の対角成分の列番
号と番号の等しい未知数ベクトルの成分の位置を交換す
る成分位置交換手段と、前記各要素プロセッサが係数行
列の自分の担当する行に対して、前記列番号放送手段に
よって知らされた列番号の要素と前記対角要素の列番号
と等しい列番号の要素を交換する要素交換手段とを備え
たことを特徴とする請求項1、3記載の枢軸選択手段と
している。
【0026】請求項7に係る発明においては、係数行列
のある対角要素の属する行を担当する前記要素プロセッ
サで、前記対角要素から要素の列番号の大きくなる方向
に絶対値の最大な要素を検索する検索手段と、前記検索
手段によって見つかった要素の列番号を他の前記要素プ
ロセッサに知らせる列番号放送手段と、前記列番号放送
手段によって知らされた列番号と等しい番号の未知数ベ
クトルの成分を担当する前記要素プロセッサと前記対角
要素の列番号と等しい番号の未知数ベクトルの成分を担
当する前記要素プロセッサにおいて、前記列番号放送手
段によって知らされた列番号と等しい番号の未知数ベク
トルの成分と元の対角成分の列番号と番号の等しい未知
数ベクトルの成分の位置を交換する成分位置交換手段
と、前記各要素プロセッサが係数行列の自分の担当する
行に対して、前記列番号放送手段によって知らされた列
番号の要素と前記対角要素の列番号と等しい列番号の要
素を交換する要素交換手段とを備えたことを特徴とする
請求項1、3記載の枢軸選択手段としている。
【0027】
【作用】上記の構成により、ガウス消去法及びガウス・
ヨルダン法に基づく少ないメモリアクセス回数でのPc
枢軸によるPc 列同時消去法を用いた、高速の連立1次
方程式の直接法による求解がなされる。
【0028】
【実施例】
(第1実施例)以下、本発明に係る並列演算装置の第1
の実施例について、図1に基づき説明する。同図は、そ
の構成図であり、1は連立1次方程式の係数行列と未知
数ベクトル、既知数ベクトルをメモリに割り付けるデー
タ割付手段であり、本実施例においてはホストコンピュ
ータがこの役を果たす。2はピボティング処理を並列に
行う枢軸選択手段、3は多枢軸列同時消去を行うための
前処理を行う基本前消去手段、4は多枢軸による多枢軸
列同時消去を並列に行う多枢軸消去手段、100は基本
前消去手段3と多枢軸消去手段4とを繰り返し作動させ
ることで消去を行う枢軸選択手段2と基本前消去手段3
と多枢軸消去手段4とを構成要素とする繰り返し消去手
段、5は残った行の消去を行う残余消去手段、6は未知
数ベクトル成分への代入を行う基本後退代入手段、7は
求まった解をクラスタの共有メモリに転送する基本後退
転送手段、8は求解演算を行う基本後退演算手段、10
1は基本後退代入手段6、基本後退転送手段7、基本後
退演算手段8の操作を繰り返す基本後退代入手段6と基
本後退転送手段7と基本後退演算手段8とを構成要素と
する繰り返し後退処理手段であり、これらはホストコン
ピュータ(図示せず)の制御のもとで作動するよう構成
されている。
【0029】次に、図4に本実施例をイプリメントする
並列計算機の要素プロセッサ(プロセッサ・モジュー
ル)の構成図を示す。同図のローカルメモリ及びキャッ
シュメモリは半導体メモリよりなり、プロセッサは情報
処理装置又はMPUよりなり、これらと外部のデータ入
出力等はゲート・ウェイにより制御、判定される。図5
にこの要素プロセッサで構成されるクラスタ内の構成を
示す。なお、本図の共有メモリは半導体メモリより構成
される。ここに、1クラスタ中の要素プロセッサ数はP
cであり、クラスタ数はCであり、全要素プロセッサ数
はPである(従ってP=C×Pc )。なお、以下の説明
の都合もあり、各クラスタと要素プロセッサには便宜的
に番号付けをなし、クラスタは、CL1,CL2,・・・ , C
Lc とし、要素プロセッサについては、CLk 内の要素
プロセッサをPRk1, PRk2, ・・・, PRkPc とする。
【0030】以上のように構成された第1の実施例の演
算装置について、以下その動作を説明する。ここに、連
立一次方程式の係数行列をA=(aij)(i,jは1≦
i,j≦nの整数),既知数ベクトルb=(b1 、b
2 ....n T ,未知数ベクトルy=(y1 ,y2
....n T とする。
【0031】まず、データ割付手段1が、クラスタCL
k (1≦k≦C)に対して、(aij),yi ,bi を割
り付ける。jの条件は、1≦j≦nであり、iの条件
は、(m×C+k−1)×Pc +1≦i≦(m×C+
k)×Pc であり、更に、nによって、次のように分類
される。n−[n/P]×P>Pc のときは、k≦[n
/Pc −[n/P]×C]ならば0≦m≦[n/P]+
1であり、k>[n/Pc−[n/P]×C]ならば0
≦m≦[n/P]である。更に、n −〔n/P 〕×P−〔n
/Pc−〔n/P 〕× C〕Pc > 0 ならばクラスタ番号〔n/P
c−〔n/P 〕×C 〕+1 に残りの〔n/P 〕×P+〔n/Pc
−〔n/P 〕×C 〕×Pc+1 ≦i≦nのデータが割り付け
られる。0<n−[n/P]×P<Pc のときは、0≦
m≦[n/P]であり、CL1 に残りの[n/P]×P
+1≦i≦nのデータが割り付けられる。n−[n/
P]×P=0のときは、0≦m≦[n/P]である。
【0032】クラスタ内の各要素プロセッサは、共有メ
モリに割り付けられたデータのうち、例えばCLk 内の
プロセッサPRkh(1≦h≦Pc)は、1≦j≦n,i
=(m×C+k−1)×Pc+hのデータを担当する。
次に、基本前消去手段3の動作を説明する。図1からも
解るように、この動作は枢軸選択手段2の動作を含み、
この基本前消去手段3の動作は、枢軸選択手段2によっ
て、第1行目の枢軸選びを行うことから始まる。そこ
で、最初に枢軸選択手段2の説明を行う。
【0033】一般に、枢軸の選び方には、係数行列全要
素の中で絶対値が最大のものを選ぶ完全枢軸選択と各行
(列)中で絶対値が最大のものを選ぶ部分枢軸選択があ
るが、本方法は、後者に属する。なお、解の精度がそれ
ほど問題にならない場合には、枢軸の選択が必要となる
のはa11=0のときだけであり、この場合の選択は非ゼ
ロの要素を探すことである。ここでは、非ゼロ要素を選
ぶ場合と絶対値が最大のものを選ぶ場合の枢軸選択手段
2の動作について、図3を用いて詳細に説明する。
【0034】図3において、21は共有メモリ内の枢軸
の検索を行方向に行うクラスター内の要素プロセッサよ
りなる検索手段、22は見つけた要素の列番号を各要素
プロセッサに放送する要素プロセッサよりなる列番号放
送手段、23は列番号放送手段22によって知らされた
列番号の要素と検索を開始した要素の列番号の要素を交
換する要素プロセッサよりなる要素交換手段、24は列
番号放送手段22によって知らされた列番号と等しい成
分番号の成分と検索を開始した要素の列番号と等しい成
分番号の成分の位置を交換する同じく要素プロセッサよ
りなる成分位置交換手段である。以上のように構成され
た枢軸選択手段の動作について第1行目の枢軸選びを例
にとって具体的に説明する。
【0035】まず、非ゼロ要素を選ぶ場合の動作につい
て説明する。PR11において、検索手段21によって、
11=0かどうかの判定を行い、もし、a11=0でなけ
れば枢軸の選択は行う必要がない。a11=0の場合は、
12から始めて、列番号の増える方向、つまりaijでj
の増える方向に非ゼロ要素を検索する。なお、第i行で
の枢軸選択の場合には、もしaii=0なら、aii+1から
検索を始めることとなる。次に、例えばj=kで非ゼロ
要素が見つかったとすると、列番号放送手段22は、そ
の番号kを各要素プロセッサに放送して知らせる。知ら
せ方は、本実施例では各クラスタ(CL1,・・・ , CLc
)の共有メモリの特定領域へ番号kを転送して転送
後、各要素プロセッサはそれを見に行く方法を採用して
いるが、他にブロードキャスト用の専用線を設けて、P
R11が番号kをブロードキャスト用の専用線に放送して
いる間に他の要素プロセッサは、その専用線からそのデ
ータを自分のローカルメモリ等に取り込む等がある。次
に、各要素プロセッサは一斉に、要素交換手段23によ
って、係数行列の自分の担当する各行の列番号が1の要
素と列番号がkの要素の交換を行う。具体的には、例え
ばi行を担当する要素プロセッサは、ai1とaikに対し
て、temp:=ai1,ai1:=aik,aik:=tempの操作
を行う。この操作が終了後、成分位置交換手段24は、
係数行列の1行目とk行目を担当する要素プロセッサの
未知数ベクトルの第1成分と第k成分の位置を交換す
る。即ち、元の未知数ベクトルy=(y1 ,..,yk ,..,
n T だったものをy=(yK ,..,y1,...,yn T
に変える。以上により枢軸の選択終了する。
【0036】次に、絶対値が最大のものを選ぶ場合の手
順を説明する。PR11において、検索手段21が最初
に、a11の絶対値を最大絶対値とする。次に、a12から
始めて、列番号の増える方向、つまりa1jでjの増える
方向に、最大絶対値と絶対値|aij|を比較していき|
ij|の方が大きいなら、これを新たに最大絶対値とす
る。そして、この検索、交換をj=nまで行う。従っ
て、第i行の枢軸選択は、aii+1からなされることにな
る。なお、この際、最大絶対値の交換が起こったなら
ば、交換と同時に絶対値の要素の列番号も記憶される。
この後、検索手段21によって見つけられ保持されてい
る最大絶対値の要素の列番号が列番号放送手段22によ
って各要素プロセッサに放送により知らせられる。以
下、要素交換手段23、成分位置交換手段24による動
作は上述のものと同様である。以上により枢軸の選択は
終わる。
【0037】枢軸選択手段2によってa11の選択が終了
後、PR11で、a1j:=a1j/a11,b1 :=b1 /a
11の計算を行い、計算結果のa1jとb1 をCL2,・・・ ,
CLc の共有メモリにする。係数行列の第2行から第n
行を担当する各要素プロセッサでは、自分の担当するの
行に対して(ここでは第i行とするが)、ti (1):=
i2−ai1×a12の計算を行う。特に、PR12では、第
2行目に対しては、a 2j:=a2j−a21×a1j,b2
=b2 −a21×b1 の計算を行い、枢軸選択手段2によ
ってa22の選択が行われた後、a2j:=a2j/a22
b:=b2 /a22の計算が行われる。この計算結果のa
2jとb2 とを第3行から第n行を担当する要素プロセッ
サが属する、かつCL1 以外のクラスタの共有メモリに
転送する。以降、以下に記述する一連の操作をk=3か
らk=Pc まで繰り返すことにより、第1行目から第P
c 行目に対る基本前消去手段3の動作は終了する。係数
行列の第k行から第n行を担当する各要素プロセッサで
は、自分の担当する行に対して
【0038】
【数21】
【0039】の計算を行う。特に、PR1kでは、第k行
目に対しては、
【0040】
【数22】
【0041】
【数23】
【0042】の計算を行い、枢軸選択手段2によってa
kkの選択がなされた後、akj:=akj/akk,bk :=
k /akkの計算も併せ行い、計算結果のakjとbk
を第k+1行から第n行を担当る要素プロセッサが属
し、CL1 以外のクラスタの共有メモリに転送する。次
に、多枢軸消去手段4によって、係数行列の第(Pc +
1)行から第n行を担当する各要素プロセッサが、自分
の担当する行、仮にiとする、に対して、
【0043】
【数24】
【0044】
【数25】
【0045】の計算を行う。この計算により、Pc 枢軸
によるPc 列同時消去が行われる。以上の動作(基本前
消去処理、多枢軸消去処理)を一般的に書くと、次のよ
うになる。ここにhは、0≦h≦[n/Pc ]−1の整
数とし、またr=h−[h/C]×Cとする。クラスタ
CLr の1番目の要素プロセッサPRr1で、枢軸選択手
段2によってahxPc+1 hxPc+1 の選択を行う。次に、a
hxPc+1 j:=ahxPc +1 j/ahxPc+1 hxPc+1
hxPc+1:=bhxPc+1/ahxPc+1 hPc+1の計算を行い、
計算結果のahxPc+1 jとbhxPc+1を第(h×Pc +2)
行から第n行を担当す要素プロセッサが属し、CLr 以
外のクラスタの共有メモリに転送する。係数行列の第
(h×Pc +2)行から第n行を担当する各要素プロセ
ッサで、自分の担当する行に対して、ti (1) :=a
i hxPc+2−ai hxPc+1× ahxPc+1 hxPc+2 の計算を行
う。特に、PRr2では、ahxPc+2 j:=ahxPc+2 j−a
hxPc+2 hxPc+ 1 ×ahxPc+i j,bhxPc+2:=bhxPc+2
hxPc+2 hxPc+1 ×bhxPc+1の計算を行う。更に、枢軸
選択手段2によってahxPc+2 hxPc+2 の選択を行い、a
hxPc+2 j:=ahxPc+2 j/ahxPc+2 hxPc+2
hxPc+2:=bhxPc+2/ahxPc+2 hxPc+ 2 の計算も併せ
行い、後者の計算結果のahxPc+2 jとbhxPc+2を第(h
×Pc +3)行から第n行を担当する要素プロセッサが
属し、CLr 以外のクラスタの共有メモリに転送する。
その後、係数行列の第(h×Pc +k)行から第n行を
担当する各要素プロセッサで、自分の担当する行に対し
て、
【0046】
【数26】
【0047】の計算を行う。特に、PRrkでは、
【0048】
【数27】
【0049】
【数28】
【0050】の計算を行い、更に、枢軸選択手段2によ
ってahxPc+khPc+kの選択を行い、a hxPc+k j:=a
hxPc+k j/ahxPc+k hxPc+k ,bhxPc+k:=bhPc+k
hxPc+k hxPc+k の計算を行う。そして、この計算結果
のahxPc+k jとbhxPc+kを第(h×Pc +k+1)行か
ら第n行を担当する要素プロセッが属し、かつCLr 以
外のクラスタの共有メモリに転送する。この一連の操作
をk=3からk=Pc まで繰り返す。その後、多枢軸消
去手段4によって、係数行列の第((h+1)×Pc +
1)行から第n行を担当する各要素プロセッサが、自分
の担当する行に対して、
【0051】
【数29】
【0052】
【数30】
【0053】を計算することにより、Pc 枢軸によるP
c 列同時消去が実行される。繰り返し消去手段100
は、上述の基本前消去手段3、多枢軸消去手段4という
一連の動作をCL1から始めて、次にCL2 という具合
に繰り返し、[n/Pc]回行う。繰り返し消去手段1
00の操作が終了した後、n−[n/Pc ]×Pc >0
ならば、残余消去手段5によって、更に、係数行列の第
([n/Pc ]×Pc +1)行から第n行を担当する前
要素プロセッサで、第([n/Pc ]×Pc +1)行か
ら第n行に対して、基本前消去手段2と様の操作を適用
することにより、残りの要素の消去を行う。
【0054】以上までの操作で、一般に前進消去と呼ば
れる消去操作が終了する。次に、後退代入と呼ばれる求
解操作の説明にはいる。まず、前述の消去が終了時点
で、yn については、解がbn として求まっているの
で、基本後退代入手段6によってyn :=bn とする。
次に、基本後退転送手段7によって、第1成分から第
(n−1)成分を担当する要素プロセッサの属するクラ
スタの共有メモリにyn を転送する。転送方法は、前述
の枢軸選択手段2で述べたような方法が考えられる。転
送後、第1成分から第(n−1)成分を担当する各要素
プロセッサでは、基本後退演算手段8によって、自分の
担当する成分に対し、bi :=bi −ai n ×yn の計
算を行う。yn-1 についてこの基本後退演算手段8によ
る操作が終了した時点で、解はbn-1 として求まってい
るので、先ほどの操作と同様に、基本後退代入手段6に
よって、yn-1 :=bn-1 とし、基本後退転送手段7に
より、第1成分から第(n−2)成分を担当する要素プ
ロセッサの属するクラスタの共有メモリにyn-1 を転送
し、基本後退演算手段8により、第1成分から第(n−
2)成分を担当する各要素プロセッサでは、自分の担当
する成分に対し、bi :=bi −ai n-1 ×yn-1 の計
算をする。以上の一連の操作が繰り返し後退処理手段1
01によって、繰り返されるが、それを一般的に表現す
ると次のようになる。既知数ベクトル、未知数ベクトル
の第(n−k+1)成分を担当する要素プロセッサにお
いて、基本後退代入手段6によって、yn-k+1 :=b
n-k+1 を行い、次に、基本後退転送手段7により、既知
数ベクトル、未知数ベクトルの第1成分から第(n−
k)成分を担当する要素プロセッサの属するクラスタの
共有メモリにyn-k+1 を転送した後、基本後退演算手段
8により、第1成分から第(n−k)成分を担当する各
要素プロセッサで、担当する成分に対し、bi :=bi
−ai n-k ×yn-k の計算を行うという一連の操作をk
=1からk=(n−1)まで繰り返し、最後に、前記基
本後退代入手段6によるy1 :=b1 を行う。以上によ
り、解yが全て求まる。 (第2実施例)本発明に係る並列演算装置の第2の実施
例を、図2に基づき説明する。本図はその構成図であ
り、1は、連立1次方程式の係数行列と未知数ベクト
ル、既知数ベクトルをメモリに割り付けるデータ割付手
段、2はピボティング処理を並列に行う枢軸選択手段で
あり、両者は第1実施例と同じである。11は多枢軸列
同時消去を行うための前処理を行う基本前消去手段、1
2は多枢軸による多枢軸列同時消去を並列に行う多枢軸
消去手段、13は枢軸列の余分な要素を消去する基本後
消去手段、14は基本後消去手段13による操作を繰り
返すことで、1回の多枢軸列同時消去で生じる余分な要
素を全て消去する後消去処理手段、200は基本前消去
手段11、多枢軸消去手段12、後消去処理手段13の
一連の操作を繰り返す繰り返し消去手段、15は繰り返
し消去手段200の操作後に残った部分の消去を行う残
余消去手段である。
【0055】以上のように構成された第2の実施例の並
列演算方法について、以下その動作を説明する。第1の
実施例と同じく、連立1次方程式の係数行列をA=(a
ij)(i,jは1≦i, j≦nの整数),既知数ベクト
ルb=(b1,b2,...,bn T,未知数ベクトルy=
(y1,2,...,yn T とする。また、本実施例をイプ
リメントする並列計算機の要素プロセッサ(プロセッサ
・モジュール)の構成図とこの要素プロセッサで構成さ
れるクラスタ内の構成図を図4、図5に示す。更に、1
クラスタ中の要素プロセッサ数はPc とし、クラスタ数
はCとし、全要素プロセッサ数はPとする(従ってP=
C×Pc )。更に、クラスタと要素プロセッサには便宜
的に番号付け、クラスタは、CL1,CL2 ,・・・ , CL
c とし、要素プロセッサについては、CLk 内の要素プ
ロセッサをPRk1, PRk2, ・・・ , PRkPc とする。
【0056】まず、データ割付手段1によって、第1実
施例と同様に、データの割付を行う。クラスタ内の各要
素プロセッサの担当についても、第1の実施例と同様で
ある。次に、基本前消去手段11の動作であるが、図2
からも解るように、この動作は枢軸選択手段2の動作を
含む。そして、これは第1実施例と同様なのでその説明
は省略し、以下に枢軸選択後の動作のみを説明する。
【0057】まず、枢軸選択手段2によってa11の選択
が終了後、PR11で、a1j:=a1j/a11,b1 :=b
1 /a11の計算を行い、計算結果のa1jとb1 をCL1
以外の全てのクラスタ共有メモリに転送する。係数行列
の第2行から第n行を担当する各要素プロセッサでは、
担当する行に対して(ここでは第i行とするが)、t i
(1) :=ai2−ai1×a12の計算を行う。特に、PR12
では、第2行目に対しては、a2j:=a2j−a21×
1j,b2 :=b2 −a21×b1 の計算を行い、枢軸選
択手段2によってa22の選択を行い、a2j:=a2j/a
22,b2 :=b2 /a22の計算を行う。この計算結果の
2jとb2 をCL1 以外の全てのスタの共有メモリに転
送する。以降、以下に記述する一連の操作をk=3から
k=Pcまで繰り返すことで、第1行目から第Pc行目
に対する基本前消去手段3の動作は終了する。係数行列
の第k行から第n行を担当する各要素プロセッサでは、
自分の担当する行に対して、
【0058】
【数31】
【0059】の計算を行う。特に、PR1kでは、第k行
目に対しては、
【0060】
【数32】
【0061】
【数33】
【0062】の計算を行い、枢軸選択手段2によってa
kkの選択を行った後、akj:=akj/akk,bk :=b
k /akkの計算も併せ行い、計算結果のakjとbk をC
L1 以外の全てのクラスタの共有メモリに転送する。次
に、多枢軸消去手段11によって、係数行列の第(Pc
+1)行から第n行を担当する各要素プロセッサで、自
分の担当する行に対して、ここでは仮に第i行とする
と、
【0063】
【数34】
【0064】
【数35】
【0065】の計算を行う。この計算によって、Pc 枢
軸によるPc 列同時消去が行われる。以上の動作(基本
前処理手段11、多枢軸消去手段12)を一般的に書く
と、次のようになる。なお、ここにhは、0≦h≦[n
/Pc ]−1の整数とし、rはr=h−[h/C]×C
+1とする。クラスタCLr の1番目の要素プロセッサ
PRr1で、枢軸選択手段2によってahxPc+1 hxPc+1
選択を行う。次に、a hxPc+1 j:=ahxPc+1 j/a
hxPc+1 hxPc+1 ,bhxPc+1:=bhxPc+1/ahxPc+1
hxPc+1 の計算を行い、計算結果のahxPc+1 jとb
hxPc+1をCLr 以外の全てのクラスタの共有メモリに転
送する。係数行列の第1行から第(h×Pc )行と第
(h×Pc +2)行から第n行を担当する各要素プロセ
ッサで、自分の担当する行に対して、ti (1) :=a
i hxPc+2−ai hxpc+1×ahxPc+1hxPc+2 の計算を行
う。特に、PRr2では、ahxPc+2 j:=ahxPc+2 j−a
hxPc+2 hxPc+1 ×ahx Pc+1 j,bhxPc+2:=bhxPc+2
hxPc+2 hxPc+1 ×bhxPc+1の計算を行う。更に、枢軸
選択手段2によってahxPc+2 hxPc+2 の選択を行い、a
hxPc+2 j:=a hxPc+2 j/ahxPc+2 hxpc+2
hxPc+2:=bhxPc+2/ahxPc+2 hxPc+2 の計算も併せ
行い、後者の計算結果のahxPc+2 jとbhxP2をCLr 以
外のクラスタの共有メモリに転送する。その後、係数行
列の第1行から第(h×Pc )行と第(h×Pc +k)
行から第n行を担当する各要素プロセッサで、自分の担
当する行に対して、
【0066】
【数36】
【0067】の計算を行う。特に、PRrkでは、
【0068】
【数37】
【0069】
【数38】
【0070】の計算を行い、更に、枢軸選択手段2によ
ってahPxc+khxPc+k の選択を行い、ahxPc+k j:=a
hxPc+k j/ahxpc+k hxPc+k ,bhxPc+k:=bhxPc+k
hxPc +k hxPc+k の計算を行う。そして、この計算結果
のahxPc+k jとbhxPc+kをCLr 以外のクラスタの共有
メリに転送する。この一連の操作をk=3からk=Pc
まで繰り返す。その後、多枢軸消去手段12によって、
係数行列の第1行から第(h×Pc )行と第((h+
1)×Pc +1)行から第nを担当する各要素プロセッ
サでは、自分の担当する行に対して、
【0071】
【数39】
【0072】
【数40】
【0073】を計算することにより、Pc 枢軸によるP
c 列同時消去が実行される。次に、後消去処理手段14
の動作であるが、図2からも判るように後消去処理手段
14は、基本後消去手段13を含むので、先に基本後消
去手段13の動作説明をする。基本後消去手段13は、
要素プロセッサで、自分の担当する行、仮にi行とす
る、に対して、aij:=aij−ai i+k ×ai+k j ,b
i :=bi−a i i+k ×bi+k の計算を行うものであ
る。
【0074】後消去処理手段14は、係数行列の第(h
×Pc +1)行から第(h×Pc +q)行を担当する各
前記要素プロセッサで、第(h×Pc+W)行には基本
後消去手段13のk=−w+q+1の場合を適用すると
いう操作をw=1からw=qまで同時に各行に対して行
う操作を、q=1からPc−1まで繰り返し行う。つま
り、パラメータqを1からPc −1まで1回固定する毎
に、係数行列の第( h×Pc +1)行から第h×Pc +
q行を担当する各前記要素プロセッサで、第(h×Pc
+1)行に対しては基本後消去手段13のk=qの場合
を適用し、第(h×Pc +2)行に対して基本後消去手
段13のk=q−1の場合を適用し、・・・ 、第(h×P
c +q)行に対してはk=1の場合を適用する操作を同
時に行う。
【0075】繰り返し消去手段200は、クラスタ単位
で、Pc 行毎に、基本前消去処理を行い、その後、多枢
軸消去処理を行い、後消去処理を行うという一連の操作
を[n/Pc ]回行う。上述の一般式による説明を用い
れば、h=1からh=[n/Pc ]−1まで、基本前消
去手段11、多枢軸消去処理手段12、後消去処理手段
14による処理という一連の操作を繰り返す。
【0076】残余消去手段15は、繰り返し消去手段2
00の操作が終了したときに、n−[n/Pc ]×Pc
>0ならば、残りの第([n/Pc ]×Pc +1)行か
ら第n行を担当する要素プロセッサで、第([n/Pc
]×Pc +1)行から第n行に対して、基本前消去処
理を行い、その後多枢軸列同時消去計算を行い、後消去
処理を行うという残余消去処理を行う。つまり、r=
[n/Pc ]−[[n/Pc ]/C]×C+1,h=
[n/Pc ]とすると、クラスタCLr の1番目の要素
プロセッサPRr1で、枢軸選択手段2によってa
hxPc+1 hxPc+1 の選択を行う。次に、ahxPc+1 j:=a
hxPc+1 j/ahxPc+1 hxPc+1 ,bhxPc+1:=bhxPc+1
hxPc+1 hxPc+1 の計算を行い、計算結果のahxPc+1 j
とbhxPc+1をCLr 以外の全てのクラスタの共有メモリ
に転送する。係数行列の第1行から第(h×Pc )行と
第(h×Pc)行から第n行を担当する各要素プロセッ
サで、自分の担当する行に対して、t i (1) :=a
i hxPc+2−ai hxPc+1×ahxPc+1 hxPc+2 の計算を行
う。特に、PRr2では、ahxPc+2 j:=ahxPc+2 j−a
hxPc+2 hxPc+1 ×ahxPc+1 j,bhxPc+2:=bhxPc+2
hxPc+2 hxPc+1 ×bhxPc+1の計算を行う。更に、枢軸
選択手段2によってahxPc+2 hxPc+2 の選択を行い、a
hxPc+2 j:=ahxPc+2 j/ahxPc+2 hxPc+2,hxPc+2
=bhxPc+2/ahxPc+2 hxPc+2 の計算も併せ行い、後者
の計算結果のahxPc+2 jとbhxPc+2をCLr以外のクラ
スタの共有メモリに転送する。その後、係数行列の第1
行から第(h×Pc)行と(h×Pc +k)行から第n
行を担当する各要素プロセッサで自分の担当する行に対
して、
【0077】
【数41】
【0078】の計算を行う特に、PRrkでは、
【0079】
【数42】
【0080】
【数43】
【0081】の計算の計算を行い、更に、枢軸選択手段
2によってahxPc+k hxPc+k の選択を行い、
hxPc+k j:=ahxPc+k j/ahxPc+k hxPc+k ,b
hxPc+k:=bhxPc+k/ahxPc+k hxPc+k の計算を行う。
そして、この計算果のahxPc+k jとbhxPc+kをCLr 以
外のクラスタの共有メモリに転送する。この一連の操を
k=3からk=n−[n/Pc ]×Pc まで繰り返す。
その後、多枢軸消去手段12によて、係数行列の第1行
から第(h×Pc )行を担当する各要素プロセッサで
は、自分の担当する行に対して、
【0082】
【数44】
【0083】
【数45】
【0084】を計算することにより、n−[Pc ]×P
c 枢軸による(n−[n/Pc ]×Pc )列同時消去が
実行される。それから、後消去手段14によって、係数
行列の第(h×Pc +1)行から第(h×Pc +q)行
を担当する各前記要素プロセッサで、第(h×Pc+
w)行には基本後消去手段13のk=−w+q+1の場
合を適用するという操作をw=1からw=qまで同時に
各行に対して行う操作を、q=1からn−[n/Pc ]
Pc まで繰り返し行う。
【0085】以上の操作の結果として、解がbとして求
まる。なお、第1実施例、第2実施例とも、未知数ベク
トルyは、枢軸選択が行われると、成分の位置の入れ替
えが起こるが、入れ替え後の位置さえ正しく記憶してお
けば、最後の未知数ベクトルへの代入のところで、それ
を考慮して代入すればよいだけであるため実施例におけ
る動作説明ではその入れ替えを考慮した説明はしていな
い。また、数式中に変数tを含むものは、その計算をす
る際に変数tの値をプロセッサのレジスタ上に保持した
状態で行うとロード回数が低減するが、このように構成
してもよいのは勿論である。
【0086】
【発明の効果】以上説明したように、本発明によれば、
多数の要素プロセッサを持つ並列コンピュータでの連立
1次方程式の直接法による求解のための高速な並列演算
処理が可能となる。
【図面の簡単な説明】
【図1】本発明に係る並列演算装置の第1実施例の構成
図である。
【図2】本発明に係る並列演算装置の第2実施例の構成
図である。
【図3】本発明の第1及び第2の実施例における枢軸選
択手段の構成図である。
【図4】本発明の第1及び第2実施例をイプリメントす
る並列計算機の要素プロセッサ(プロセッサ・モジュー
ル)の構成図である。
【図5】本発明の第1、第2の実施例をイプリメントす
る並列計算機の要素プロセッサで構成されるクラスタ内
の構成図を示す。
【符号の説明】
1 データ割付手段 2 枢軸選択手段 3 基本前消去手段 4 多枢軸消去手段 5 残余消去手段 6 基本後退代入手段 7 基本後退転送手段 8 基本後退演算手段 11 基本前消去手段 12 多枢軸消去手段 13 基本後消去手段 14 後消去処理手段 15 残余消去手段 21 検索手段 22 列番号放送手段 23 要素交換手段 24 成分位置交換手段 100 繰り返し消去手段 101 繰り返し後退処理手段 200 繰り返し消去手段

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 1番からPc 番までの要素プロセッサと
    共有メモリによって構成されるクラスタと、1番からC
    番までの前記クラスタをネットワークで接続することで
    構成される並列計算機において、 係数行列A=(aij)(1≦i, j≦nの整数),既知
    数ベクトルb=(b1,b 2,...,bn T (ここに、
    ( )T の上添字Tは縦ベクトルであることを示す。以
    下同じ。),未知数ベクトルy=(y1,y2,...,yn
    T で表現される連立1次方程式をAy=bするとき、 前記クラスタの共有メモリへ順に、係数行列はPc 行づ
    つ、既知数ベクトルと未知数ベクトルは係数行列を割り
    付けた行番号と対応する成分番号の成分をPc成分づつ
    割り付けていき、1巡目で割り付けが終わらないとき
    は、更に2巡目、3巡目と繰り返すことにより、係数行
    列、既知数ベクトル、未知数ベクトルの要素全てを割り
    付け、前記クラスタ内のPc 個の要素プロセッサに対し
    ては、係数行列は、前記クラスタの共有メモリに割り付
    けたPc 行のうちの1行づつを、既知数ベクトルや未知
    数ベクトルは、係数行列を割り付けた行番号と対応する
    成分番号の成分を前記要素プロセッサに割り付けるデー
    タ割り付け手段と、 前記クラスタの1番目の要素プロセッサで、枢軸選択手
    段によってahxPc+1 h xPc+1 の選択を行い、
    hxPc+1 j:=ahxPc+1 j/ahxPc+1 hxPc+1 (ここ
    に,ahxPc+1 jの後の:は定義を意味する。即ち、a
    hxPc+1 j/ahxPc+1 hxPc+1 をahxPc+1 jと置く意味で
    ある。以下に同じ。)bhxPc+1:=bhxPc+1/ahxPc+1
    hxPc+1 の計算を行い、計算結果を第h×Pc +2行か
    ら第n行を担当する要素プロセッサが属し、かつ第(h
    ×Pc +1)行を担当する要素プロセッサの属するクラ
    スタ以外のクラスタの共有メモリに転送し、係数行列の
    第(h×Pc +2)行から第n行を担当する前記要素プ
    ロセッサで、担当する行に対して、ti (1 ) :=a
    1 hxPc+2−ai hxPC+1・ahxPc+1 hxPc+2 の計算を行
    い、特に、前記クラスタの2番目の要素プロセッサで
    は、ahxPc+2 j:=ahxPc+2 j−ahxPc+2h xPc+1 ・a
    hxPc+1 j,bhxPc+2:=bhxPc+2−ahxPc+2 hxPc+1
    hxPc+1の計算と、前記枢軸選択手段によってa
    hxPc+2 hxPC+2 の選択を行い、ahxPc+2 j:=a
    hxPc+2 j/ahxPc+2 hxPc+2 ,bhxPc+2:=bhxPc+2
    hxPc+2 hxPc+2 の計算も併せ行い、後者の計算結果を
    第(h×Pc +3)行から第n行を担当する要素プロセ
    ッサが属し、かつ第(h×Pc +2)行を担当する要素
    プロセッサの属するクラスタ以外のクラスタの共有メモ
    リに転送し、その後、係数行列の第(h×Pc +k)行
    から第n行を担当する前記要素プロセッサで、担当する
    行に対して、 【数1】 の計算を行い、特に、前記クラスタのk番目の要素プロ
    セッサでは、 【数2】 【数3】 の計算と、前記枢軸選択手段によってahxPc+k hxPc+k
    の選択を行い、ahxPc+k j:=ahxPc+k j/a
    hxPc+k hxPc+k ,bhxPc+K:=bhxPc+k/a
    hxPc+k hxPc+ k の計算も併せ行い、後者の計算結果を第
    (h×Pc +k+1)行から第n行を担当する要素プロ
    セッサが属し、かつ第(h×Pc +k)行を担当する要
    素プロセッサの属するクラスタ以外のクラスタの共有メ
    モリに転送するという一連の基本前消去の操作をk=3
    からk=Pc まで繰り返す基本前消去手段と、 係数行列の第((h+1)×Pc +1)行から第n行を
    担当する各要素プロセッサで、自分の担当する行に対し
    て、 【数4】 【数5】 という多枢軸列同時消去計算を行う多枢軸消去処理手段
    と、 クラスタ単位で順に前記基本前消去の操作を行い、その
    後前記多枢軸列同時消去計算を行うという一連の操作を
    [n/Pc ](ここに〔 〕はガウスの記号であり、
    〔X〕はXを越えない最大の整数を表す。)回行う繰り
    返し消去手段と、 前記繰り返し消去手段の操作が終了したときに、n−
    [n/Pc ]×Pc >0ならば、更に係数行列の第
    ([n/Pc ]×Pc +1)行から第n行を担当する前
    記要素プロセッサで、第([n/Pc ]×Pc +1)行
    から第n行に対して、前記基本前消去と同じ操作で残り
    の行に対する消去を行う残余消去手段とを備たことを特
    徴とする並列消去装置。
  2. 【請求項2】 前記請求項1の並列消去装置によって消
    去終了後、 前記要素プロセッサで、y i :=bi とする基本後退代
    入手段と、 第1成分から第(i−1)成分を担当する前記要素プロ
    セッサの属するクラスタの共有メモリにyi を転送する
    基本後退転送手段と、 第1成分から第(i−1)成分を担当する前記要素プロ
    セッサで、担当する成分に対し、bi :=bi −a
    i n-k ×yn-k の計算を行う基本後退演算手段と、 既知数ベクトル、未知数ベクトルの第(n−k+1)成
    分を担当する前記要素プロセッサにおいては、前記基本
    後退代入手段によるyn-k+1 :=bn-k+1 を行い、前記
    基本後退転送手により既知数ベクトル、未知数ベクトル
    の第1成分から第(n−k)成分を担当する前記要素プ
    ロセッサの属するクラスタの共有メモリにyn-k+1 を転
    送した後、第1成分から第n−k成分を担当する各前記
    要素プロセッサで基本後退演算手段による計算を行うと
    いう一連の操作をk=1からk=(n−1)まで繰り返
    し、最後に、前記基本後退代入手段によるy1 :=b1
    を行う繰り返し後退処理手段とを備えたことを特徴とす
    る並列演算装置。
  3. 【請求項3】 1番からPc 番(Pc は整数)までの要
    素プロセッサと共有メモリによって構成されるクラスタ
    と、1番からC番(Cは整数)までのC個の前記クラス
    タをネットワークで接続することで構成される並列計算
    機において、 係数行列A=(aij)(i,jは1≦i, j≦nの整
    数),既知数ベクトルb=(b1,b2,...,bn ) T ,未
    知数ベクトルy=(y1,y2,...,yn T で表現される
    連立1次方程式をAy=bするとき、 前記クラスタの共有メモリへ順に、係数行列はPc 行づ
    つ、既知数ベクトルと未知数ベクトルは係数行列を割り
    付けた行番号と対応する成分番号の成分をPc 成分づつ
    割り付けていき、1巡目で割り付けが終わらないとき
    は、更に2巡目、3巡目と繰り返し、係数行列、既知数
    ベクトル、未知数ベクトルの要素全てを割り付け、前記
    クラスタ内のPc 個の要素プロセッサに対しては、係数
    行列は、前記クラスタの共有メモリに割り付けたPc 行
    のうちの1行づつを、既知数ベクトルや未知数ベクトル
    は、係数行列を割り付けた行番号と対応する成分番号の
    成分を前記要素プロセッサに割り付けるデータ割り付け
    手段と、 前記クラスタの1番目の要素プロセッサで、枢軸選択手
    段によってahxPc+1 h xPc+1 の選択を行い、
    hxPc+1 j:=ahxPc+1 j/ahxPc+1 hxPc+1 ,b
    hxPc+1:=bhxPc+1/ahxPc+1 hxPc+1 の計算を行い、
    計算結果を第(h×Pc +1)行を担当する要素プロセ
    ッサの属するクラスタ以外のクラスタの共有メモリに転
    送し、係数行列の第(h×Pc +2)行から第n行を担
    当する前記要素プロセッサで、担当する行に対して、t
    i (1) :=ai hxPc+2−ai hxPc+1×ahxPc+1 h xPc+2
    の計算を行い、特に、前記クラスタの2番目の要素プロ
    セッサでは、前記ti (1) の他、ahxPc+2 j:=a
    hxPc+2 j−ahxPc+2 hxPc+1 ×ahxPc+1 j,b hxPc+2
    =bhxPc+2−ahxPc+2 hxPc+1 ×bhxPc+1の計算と、前
    記枢軸選択手段によってahxPc+2 hxPc+2 の選択を行
    い、ahxPc+2 j:=ahxPc+2 j/ahxPc+2 hxPc+2 ,b
    hxPc+2:=bhxPc+2/ahxPc+2 hxPc+2 の計算も併せ
    行い、後者の計算結果を第(h×Pc +2)行を担当す
    る要素プロセッサの属するクラスタ以外のクラスタの共
    有メモリに転送し、その後、係数行列の第(h×Pc +
    k)行から第n行を担当する前記要素プロセッサで、担
    当する行に対して、 【数6】 の計算を行い、特に、前記クラスタのk番目の要素プロ
    セッサでは、 【数7】 【数8】 の計算と、前記枢軸選択手段によってahxPc+k hxPc+k
    の選択を行い、ahxPc+k j : =ahxPc+k j/a
    hxPc+k hxPc+k ,bhxPc+k:=bhxPc+k/a
    hxPc+k hxPc+ k の計算も併せ行い、後者の計算結果を第
    (h×Pc+k)行を担当する要素プロセッサの属する
    クラスタ以外のクラスタの共有メモリに転送するという
    一連の操作をk=3からk=Pc まで繰り返す基本前消
    去手段と、 係数行列の第1行から第(h×Pc )行と第((h+
    1)×Pc+1)行から第n行を担当する各要素プロセ
    ッサで、自分の担当する行に対して、 【数9】 【数10】 という多枢軸列同時消去計算を行う多枢軸消去処理手段
    と、 前記要素プロセッサで、aij=aij−ai i+k ×a
    i+k j ,bi :=bi −a i i+k×bi+k の計算を行う
    基本後消去手段と、 係数行列の第(h×Pc+1)行から第(h×Pc+
    q)行を担当する各前記要素プロセッサで、第(h×P
    c+w)行には前記基本後消去手段のk=−w+q+1
    の場合を適用するという操作をw=1からw=qまで同
    時に各行に対して行い、その処理を、q=1から(Pc
    −1)まで繰り返し行うという後消去処理を行う後消去
    処理手段と、 クラスタ単位で、Pc 行毎に前記基本前消去を行い、そ
    の後前記多枢軸列同時消去計算を行い、前記後消去処理
    を行うという一連の操作を[n/Pc ]回行う繰り返し
    消去手段と、 前記繰り返し消去手段の操作が終了したときに、n−
    [n/Pc ]×Pc >0ならば、残りの第([n/Pc
    ]×Pc +1)行から第n行を担当する前記要素プロ
    セッサで、第([n/Pc ]×Pc+1)行から第n行
    に対して、前記基本前消去を行い、その後前記多枢軸列
    同時消去計算を行い、更に前記後消去処理を行う残余消
    去手段とを備えたことを特徴とする並列演算装置。
  4. 【請求項4】 係数行列のある対角要素の属する行を担
    当する前記要素プロセッサで、前記対角要素が0のとき
    に、前記対角要素から要素の列番号の大きくなる方向に
    非ゼロ要素を検索する検索手段と、 前記検索手段によって見つかった要素の列番号を他の前
    記要素プロセッサに知らせる列番号放送手段と、 前記各要素プロセッサが係数行列の自分の担当する行に
    対して、前記列番号放送手段によって知らされた列番号
    の要素と前記対角要素の列番号と等しい列番号の要素を
    交換する要素交換手段と、 前記列番号放送手段によって知らされた列番号と等しい
    番号の未知数ベクトルの成分を担当する前記要素プロセ
    ッサと前記対角要素の列番号と等しい番号の未知数ベク
    トルの成分を担当する前記要素プロセッサにおいて、前
    記列番号放送手段によって知らされた列番号と等しい番
    号の未知数ベクトルの成分と元の対角成分の列番号と番
    号の等しい未知数ベクトルの成分の位置を交換する成分
    位置交換手段とを備えたことを特徴とする請求項1、3
    記載の枢軸選択手段。
  5. 【請求項5】 係数行列のある対角要素の属する行を担
    当する前記要素プロセッサで、前記対角要素から要素の
    列番号の大きくなる方向に絶対値の最大な要素を検索す
    る検索手段と、 前記検索手段によって見つかった要素の列番号を他の前
    記要素プロセッサに知らせる列番号放送手段と、 前記各要素プロセッサが係数行列の自分の担当する行に
    対して、前記列番号放送手段によって知らされた列番号
    の要素と前記対角要素の列番号と等しい列番号の要素を
    交換する要素交換手段と、 前記列番号放送手段によって知らされた列番号と等しい
    番号の未知数ベクトルの成分を担当する前記要素プロセ
    ッサと前記対角要素の列番号と等しい番号の未知数ベク
    トルの成分を担当する前記要素プロセッサにおいて、前
    記列番号放送手段によって知らされた列番号と等しい番
    号の未知数ベクトルの成分と元の対角成分の列番号と番
    号の等しい未知数ベクトルの成分の位置を交換する成分
    位置交換手段とを備えたことを特徴とする請求項1、3
    記載の枢軸選択手段。
  6. 【請求項6】 係数行列のある対角要素の属する行を担
    当する前記要素プロセッサで、前記対角要素が0のとき
    に、前記対角要素から要素の列番号の大きくなる方向に
    非ゼロ要素を検索する検索手段と、 前記検索手段によって見つかった要素の列番号を他の前
    記要素プロセッサに知らせる列番号放送手段と、 前記列番号放送手段によって知らされた列番号と等しい
    番号の未知数ベクトルの成分を担当する前記要素プロセ
    ッサと前記対角要素の列番号と等しい番号の未知数ベク
    トルの成分を担当する前記要素プロセッサにおいて、前
    記列番号放送手段によって知らされた列番号と等しい番
    号の未知数ベクトルの成分と元の対角成分の列番号と番
    号の等しい未知数ベクトルの成分の位置を交換する成分
    位置交換手段と、 前記各要素プロセッサが係数行列の自分の担当する行に
    対して、前記列番号放送手段によって知らされた列番号
    の要素と前記対角要素の列番号と等しい列番号の要素を
    交換する要素交換手段とを備えたことを特徴とする請求
    項1、3記載の枢軸選択手段。
  7. 【請求項7】 係数行列のある対角要素の属する行を担
    当する前記要素プロセッサで、前記対角要素から要素の
    列番号の大きくなる方向に絶対値の最大な要素を検索す
    る検索手段と、 前記検索手段によって見つかった要素の列番号を他の前
    記要素プロセッサに知らせる列番号放送手段と、 前記列番号放送手段によって知らされた列番号と等しい
    番号の未知数ベクトルの成分を担当する前記要素プロセ
    ッサと前記対角要素の列番号と等しい番号の未知数ベク
    トルの成分を担当する前記要素プロセッサにおいて、前
    記列番号放送手段によって知らされた列番号と等しい番
    号の未知数ベクトルの成分と元の対角成分の列番号と番
    号の等しい未知数ベクトルの成分の位置を交換する成分
    位置交換手段と、 前記各要素プロセッサが係数行列の自分の担当する行に
    対して、前記列番号放送手段によって知らされた列番号
    の要素と前記対角要素の列番号と等しい列番号の要素を
    交換する要素交換手段とを備えたことを特徴とする請求
    項1、3記載の枢軸選択手段。
JP17216891A 1991-07-12 1991-07-12 並列演算装置 Pending JPH0520348A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP17216891A JPH0520348A (ja) 1991-07-12 1991-07-12 並列演算装置
DE69232431T DE69232431T2 (de) 1991-07-12 1992-07-09 Vorrichtung zur Lösung von linearen Gleichungssystem
EP92111660A EP0523544B1 (en) 1991-07-12 1992-07-09 Apparatus to solve a system of linear equations
US07/912,180 US5490278A (en) 1991-07-12 1992-07-13 Data processing method and apparatus employing parallel processing for solving systems of linear equations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17216891A JPH0520348A (ja) 1991-07-12 1991-07-12 並列演算装置

Publications (1)

Publication Number Publication Date
JPH0520348A true JPH0520348A (ja) 1993-01-29

Family

ID=15936840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17216891A Pending JPH0520348A (ja) 1991-07-12 1991-07-12 並列演算装置

Country Status (1)

Country Link
JP (1) JPH0520348A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017029766A1 (ja) * 2015-08-20 2017-02-23 株式会社日立製作所 情報処理回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017029766A1 (ja) * 2015-08-20 2017-02-23 株式会社日立製作所 情報処理回路
JPWO2017029766A1 (ja) * 2015-08-20 2018-04-05 株式会社日立製作所 情報処理回路

Similar Documents

Publication Publication Date Title
JP7358382B2 (ja) 演算を加速するための加速器及びシステム
JP7329533B2 (ja) 演算を加速するための方法および加速器装置
US20220383068A1 (en) Systems and methods for improved neural network execution
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
US5832290A (en) Apparatus, systems and method for improving memory bandwidth utilization in vector processing systems
JP2019522850A (ja) ディープニューラルネットワーク用のアクセラレータ
CN114391135A (zh) 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统
US20180121388A1 (en) Symmetric block sparse matrix-vector multiplication
CN110738308B (zh) 一种神经网络加速器
US4841435A (en) Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus
JPS6252392B2 (ja)
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
TWI537980B (zh) 用於寫入經遮罩資料至緩衝器之裝置及方法
CN109902821B (zh) 一种数据处理方法、装置及相关组件
US6128639A (en) Array address and loop alignment calculations
Roska et al. A digital multiprocessor hardware accelerator board for cellular neural networks: CNN‐HAC
US5659714A (en) Data processor including memory for associating data elements of two-dimensional array which are numbered in spiral order with element numbers thereof
US11036827B1 (en) Software-defined buffer/transposer for general matrix multiplication in a programmable IC
US5900023A (en) Method and apparatus for removing power-of-two restrictions on distributed addressing
JPH0520348A (ja) 並列演算装置
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
JP2021012596A (ja) 演算処理装置及び演算処理方法
US20230244600A1 (en) Process for Generation of Addresses in Multi-Level Data Access
JP6666548B2 (ja) 並列計算機、fft演算プログラムおよびfft演算方法
JP7251354B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法