JP2000029864A - ベクトル・コンピュ―タにおける演算方法、及び記録媒体 - Google Patents

ベクトル・コンピュ―タにおける演算方法、及び記録媒体

Info

Publication number
JP2000029864A
JP2000029864A JP11171315A JP17131599A JP2000029864A JP 2000029864 A JP2000029864 A JP 2000029864A JP 11171315 A JP11171315 A JP 11171315A JP 17131599 A JP17131599 A JP 17131599A JP 2000029864 A JP2000029864 A JP 2000029864A
Authority
JP
Japan
Prior art keywords
istr
vector
computer
triangular matrix
substitution
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.)
Granted
Application number
JP11171315A
Other languages
English (en)
Other versions
JP3659307B2 (ja
Inventor
Takumi Washio
巧 鷲尾
Katsutsuna Kubo
克維 久保
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JP2000029864A publication Critical patent/JP2000029864A/ja
Application granted granted Critical
Publication of JP3659307B2 publication Critical patent/JP3659307B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 ベクトル・コンピュータにおいて行列計算を
行うための高速な演算方法を提供する。 【解決手段】 本発明の方法は、ベクトル・コンピュー
タにおける効率的な動作のために、既知で一定の間隔に
よってメモリがアクセスされるよう制御する。これによ
って、本発明による方法を、様々なキューの長さ、及び
メモリ・バンクの数を有するようなベクトル・コンピュ
ータに適用させることができ、結果的に、既存の方法に
較べて高速な動作を実現できる。また、いかなる追加コ
ストも必要とせずに、5点ステンシルや7点ステンシル
における依存度以外の依存度を更に考慮することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトル・コンピ
ュータにおいて行列計算を行うための演算方法に関す
る。
【0002】
【従来の技術】楕円型偏微分方程式を差分法により、以
下に示す方程式(1)のように離散化し、前処理付反復
法で解く場合、前処理演算として、方程式(1)の近似
方程式である、以下に示す方程式(2)、(3)が解か
れる場合が多い。
【0003】Aq=r ...(1) (△−L)p=r ...(2)及び、 △−1(△−U)q=p ...(3) ここで、Aは、m×m行列、Lはm×mの下三角行列、
Uはm×mの上三角行列、△はm×mの対角行列であ
り、q、r、及びpはm次元のベクトルである。
【0004】上記境界値問題は、技術計算において多く
の数値を計算する際に生じる問題であり、例えば立体的
な物の温度分布を計算する場合や、所定の幾何学形状に
おける流体の流れを計算する場合に生じる。更に簡単な
例としては、Dirichlet境界条件でPoisson方程式を解く
場合が挙げられる。
【0005】通常、この問題についての数値解法とし
て、差分近似法が用いられる。解が計算される空間は、
格子点に含まれ、そこで各格子点に対する解の数値計算
が行われる。
【0006】各格子点に関する解を与える方程式は、例
えばテーラー級数に展開され、そこで微分商が差分係数
に置き換えられる。格子点における近似解を求めるため
には、その級数展開の剰余項が無視して良い程度のもの
であれば、隣接する格子点の近似解が分かれば充分であ
る。このような方法は、W.Tbrnigによる「NumerischeMa
thematik fUr Ingenieure und Physiker」、Volime 2,S
pringer-Verlag, Berlinに開示されている。
【0007】例えば、正方格子を有する2次元空間で
は、4つの格子点に取り囲まれた1つの格子点について
近似解を求めるには、隣接するその4つの格子点の解を
知るだけで充分である。
【0008】図1は、こうしたケースを表しており、い
わゆる5点ステンシル(5-point stencil)である。一
方、図2は、3次元空間に関して図1に対応するケース
を示した、7点ステンシルである。
【0009】図2の7点ステンシルに対して、各格子点
に適当な数字を付け、上述したアプローチを適用する
と、前記問題は、以下の式(4)のように表される。
【0010】 aijk,1 qijk-1 + aijk,2 qij-1k + aijk,3 qi-1jk + aijk,4 qijk + aijk,5 q i+1jk + aijk,6 qij+1k + aijk,7 qi1jk+1 = rijk ...(4) 各格子点(ijk)は、集合Gの中から設定される。Gは、
以下の式(5)で表される。
【0011】 G = {(ijk) 1 <= i <= nx, 1 <= j <= ny, 1 <= k <= nz} ...(5) ここで、nx,ny,nzは、それぞれx軸、y軸、z軸方向に
おける格子点の数を表す。
【0012】格子点の符号を適当に選択すると、行列A
は、その対角成分以外の要素にゼロでない要素を、常に
少しだけ含む。
【0013】そのため、上述した式(1)を直接解くこ
とはできず、最初に式(6)に表す関係、及び(7)に
示す前処理を使って、式(8)に表す式に変換する。
【0014】 A=D−L−U ...(6) M=P1×P2 ...(7) (P1 -1AP2 -1)(P2q)=P1 -1r ...
(8)。
【0015】このとき、Dは、元の行列Aの対角成分の
みからなる対角行列である。
【0016】よく使用され、好ましい結果をもたらす前
処理は、一般に「incomplete lowerupper precondition
er」(ILU前処理)と呼ばれる。また、以下の式(9)
が成り立つ。
【0017】 M=(△−L’)△-1(△−U’) ...(9) 従って、△=D−対角要素(L△-1U)−α行の合計
(対角成分でない要素(L△-1U))であり、ここでα
は、0 =< α =< 1 である。また、対角成分でない要素
(F)=F−対角成分の要素(F)である。行の合計と
は、対角要素のそれぞれが、同じ行の要素の合計に対応
することを意味している。
【0018】これはよく知られたGustavson(I. Gustafs
on)の変形であり、「A Class of First Order Fracturi
zation Methods」,BIT 18(1978), pages 142-156を参照
のこと。式(9)の行列U’とL’はILUアプローチ
において記述される文字であるが、式(6)に示した行
列U、Lと同一である必要はないことを示すために、ア
ポストロフィを付けて区別した。これらの行列U’と
L’に、適当な変更を加えることによって、収束性の改
善が可能となる。
【0019】近似的な、SSORというアプローチによ
れば、式(9)中の△はDと等しいとすることができ
る。また、前処理は、以下の1次方程式(10)の解に
対応する。
【0020】Mq=r ...(10) ここで、rは既知のベクトルである。一般に、MがAに
近いほど、反復法の反復回数が少なくなることが知られ
ている。この式に関する概略図が図3に示されている。
解は、以下の式(11)及び(12)を解くことにより
得られる。
【0021】(△−L)p=r ...(11) △-1(△−U)q=p ...(12) 最初の問題が、格子に沿ったものである場合、行列U及
びLのゼロ以外の要素は、規則的に配置されうる。例え
ば、各軸方向に、nx, ny,及びnz個の格子点を有し、そ
のそれぞれの格子点を表すよう符号が付けられている、
通常の3次元格子上に表された7点ステンシルの場合、
ゼロ以外の要素は、行列Lにおいて、対角要素に隣接し
て配置されている第1の非対角要素(第1の非対角要素
は、対角要素の集合に沿って隣接し、かつ対角要素と並
行に配置される要素の集合)、nx番目の非対角要素、及
び(nxny)番目の非対角要素の位置に配置される。言い
換えると、Li,i-1,Li,i-nx,及びLi,i-nx nyの要素の
みが、ゼロ以外の要素である。
【0022】上記式(11)及び(12)は、対応する
前進代入(forward substitution)又は後退代入(reverse
substitution)によって解を求めることができる。
【0023】 p=△-1(r−LP) ...(13) q=p−△-1Uq ...(14)。
【0024】これらの代入アルゴリズム(1)を実行す
るための疑似コードの例を図4に示す。
【0025】この方法は、超平面(hyperplane)法として
知られる方法である。超平面は、互いに独立して計算可
能である格子点から構成される。超平面は、その超平面
のどのような格子点における解も、同じ平面の他の格子
点における解に依存しないという特性を有する。3次元
空間に関して、対応する超平面が図5に示されている。
以下の式(15)は、7点ステンシルに関して適用され
る。
【0026】 H(l)={i = ix + (iy - 1)nx + (iz - 1)nx ny | ix + iy + iz = l + 2} ..(15) この方法の欠点は、特に、ベクトル・プロセッサにおけ
るキュー処理やベクトル処理の効果が、図4のアルゴリ
ズム(1)の間接的なアドレッシングによって大幅に低
減されてしまうということにある。この方法が、常に一
定の間隔でメモリをアクセスすることができれば、より
好ましいものとなる。これに関しては、「Computer Arc
hitecture」、Computational Science Education Proje
ct, Section 3.3.1 の、「Interleaved Memory」を参照
されたい。
【0027】更に、前記方法の処理は、超平面の大きさ
に応じて並列処理が行われず、多くの超平面H(1)
が、それだけでは複数のプロセッサに論理的に分散させ
るには小さすぎるために、分割された複数の並列メモリ
ブロックと、複数のベクトル・プロセッサを有するコン
ピュータには向いていない。また更に、超平面を扱う既
知の方法では、高次元空間又は前述した5点ステンシル
や7点ステンシル以外のステンシルへの一般化は知られ
ていない。これらの問題を解決するためのアプローチ
は、前述の式(11)及び(12)を正しく解くもので
はないが、その近似解を計算するものであり、前処理と
して同様の収束性向上をもたらす。通常、これにはvon-
Neumann級数展開が使用される。
【0028】 p =(△−L)-1r = △-1(I−L△-1-1r = △-1r + △-1 L△-1r +(△-1L)2-1r +(△-1L)3-1r + ...+ (△-1 L)ntr-1r ...(16)。
【0029】この方法は、近似解を得るには、常に行列
とベクトルの積が計算されるだけであるため、実際には
十分にベクトル処理可能なものであり、並列に処理する
ことができる。しかし、超平面法と同様の収束性を実現
するためには、von-Neumann級数において、通常3桁又
は4桁のオーダーのメンバまで計算しなければならず、
計算コストは、3倍から4倍にまで膨らみ、ベクトル化
及び並列処理化の利点が相殺されてしまう。
【0030】超平面を扱う方法を、ベクトル・コンピュ
ータに適するように変換する他のアプローチは、1995年
5月の、Takumi Washio、とKen Hayamiによる「Overlap
pedMulticolor MILU Preconditioning」、J. SCHI Comp
uter, Volume 16, No. 5,ページ636-651に開示されてい
る。
【0031】このアプローチでは、3次元空間及び7点
ステンシルについて、最初に超平面の分割が行われ、i
str個の部分集合が形成される。このことは、以下の
式(17)によって表される。
【0032】 C(l)={(i, j, r) ∈ G | mod(i + j + k - 3, istr) + 1 = l} . ..(17)。
【0033】言い換えれば、部分集合C(l)は、超平
面H(l)、H(l+istr)、H(l+2ist
r).....の結合である。
【0034】カラー(colors)とも呼ばれる、この部分集
合のそれぞれは、前進代入においては、C(1)、C
(2)、...C(istr)、C(1)、C
(2)、...C(istr)の順で計算され、後退代
入においては、C(istr)、C(istr−
1)、...C(1)、C(istr)、C(istr
−1)、...C(1)の順で計算される。この処理順
序の例が、図6に示されている。未知の開始値は、それ
ぞれゼロにセットされる。この方法では、各カラーは、
少なくとも2回計算され、H(l)に対するH(max(l
-istr,1))の依存度が考慮される。
【0035】図7には、この方法のアルゴリズム(2)
を実現する疑似コードの例が示されており、図8には、
対応するフローチャートが示されている。
【0036】istrの選択を適切に行うことによっ
て、各カラーが、ベクトル処理に充分な大きさの数の格
子点を有するようにすることができる。前述の7点ステ
ンシルにおいて、例えば、nx=nyでかつ、nzが任意であ
る場合、istr=nx - 1 とすれば、C(l)内の格
子点を計算するための全てのメモリ・アクセスが、一定
の間隔istrで行われ、間接アドレッシングが回避さ
れる。一方、(nxnynz)/istrは、ベクトル長として十分
な大きさである。
【0037】例えば、x軸方向がnx = 10で、y軸方向
がny = 11で、z軸方向がnz = 10で、istrが前述の
とおり9と求められた、格子を有する7点ステンシルの
場合、カラーへの分割が行われた後、図6に示すような
計算が行われる。この図から、格子点iを計算するには
更に6つの格子点、i+1、i+10、i+110、i-1、i-10、i-1
10が必要とされ、これらは同じカラーに属さないことが
明らかである。従って、あるカラーの、ある格子点の計
算は、同じカラーの他の格子点の計算には依存しないこ
とが分かる。更に、間接アドレッシングは、iを知るこ
とによって直接把握できるので必要がない。そして、参
照すべき格子点、i+1、i+10、i+110、i-1、i-10、i-110
のデータが格納されているメモリ領域を事前にロードし
ておくことができるので、ベクトル・プロセッサの高速
処理が可能である。
【0038】この複数のカラーに対する処理技法を更に
改良したものが、前述の文献に記載されており、それは
「Overlapping Multicolor」技法と呼ばれている。ここ
では、前進代入に関して、カラーがC(istr−
w)、C(istr−w−1)、...C(ist
r)、C(1)、C(2)、...C(istr)の順
で行われるという点で、複数のカラーを近似する技法の
改良が行われている。オーバーラッピング、即ち、追加
的に計算されるカラーの数はwになる。対応するシステ
ムが後退代入に適用される。この、オーバーラッピング
多重カラー技法は、単一の多重カラー技法に較べて、優
れた収束性を示し、一方で、ベクトル長とメモリ・アク
セスに関しては同様の利点を有する。
【0039】
【発明が解決しようとする課題】しかし、多重カラー技
法、及びオーバーラッピングを備えた多重カラー技法に
おいては、カラーの数を求めることと、前述の7点又は
5点ステンシル以外のケースに当該技法を適用すること
が困難である。最初の近似に関する開始値が、解から離
れすぎていると、カラーの数が小さくなりすぎ、結果的
に計算コストを増大させてしまう。ベクトル・コンピュ
ータのキューのベクトル長が短くなりすぎると、カラー
の数が大きくなりすぎ、結果的に計算スピードが低下し
てしまう。
【0040】前述の7点又は5点ステンシル以外のステ
ンシルについてistrを求めることは、カラーの個々
の格子点が他の格子点に依存しないという条件を維持し
なければならないため、単純には実現できない。
【0041】
【課題を解決するための手段】本発明による方法は、特
に、規則的な正方格子に関する楕円型偏微分方程式を解
くのに適している。
【0042】本発明の目的は、所与の長さのキューを備
えたベクトル・コンピュータにおいて、前述の式(1)
の解を求める方法を提供することにある。
【0043】本発明の更なる目的は、特に、キューの長
さやメモリ・バンクの数といった、ベクトル・コンピュ
ータの実際の構成に適応して、他の方法より高速に演算
を行う方法を提供することにある。
【0044】本発明の更なる目的は、計算コストを追加
せずに、5点ステンシル又は7点ステンシル以外のステ
ンシルにおける依存度を考慮する方法を提供することに
ある。
【0045】本発明の更なる目的は、好適に並列処理さ
れ、即ち、複数のプロセッサ上で並列に処理が行われ、
特に、分散メモリを有するコンピュータにおいても好適
に処理される方法を提供することにある。
【0046】
【発明の実施の形態】本発明を簡単に理解するため、ま
ず、ベクトル・コンピュータの原理をいくつか説明す
る。
【0047】既存のコンピュータは、1つ、又はそれ以
上のプロセッサ、1つ、又はそれ以上のメモリ、入/出
力デバイス、及びこれらの間の通信チャネルを有してい
る。
【0048】プロセッサは、コマンドを実行するため
に、そのコマンドをメモリにロードし、デコードし、実
行する。このような処理サイクルにかかる時間は、その
コマンドの複雑性及びプロセッサの内部構造に依存する
が、メモリ及び通信チャネルの構成にも依存する。
【0049】コンピュータ・プログラムは、1つ若しく
は2,3の単純なコマンドの繰り返しであるループ処理
を実行することが多い。そのようなループ処理の良い例
はベクトルの和の計算及び/又はベクトルのクロス積の
計算である。
【0050】ここでは、2進演算プロセッサにおいて2
つの数の積を単純に計算する場合であっても、その処理
には通常、一連の個別ステップが含まれることに注意す
べきである。このことは、例えば、ビットの列をそれぞ
れ左に1ビット移動させる(即ち2倍する)場合や、2
進数の足し算を行うような単純な場合のような、最も単
純な場合にも当てはまる。
【0051】このような処理を行うアルゴリズムが、単
純な既知のスカラ・コンピュータによって処理される場
合、処理時間のほとんどは、同じコマンドのロードとデ
コード、及び中間の処理結果の記憶を繰り返すことに費
やされる。
【0052】この問題を解決するために、ベクトル・コ
ンピュータが使用される。
【0053】ベクトル・コンピュータの処理サイクルの
タイミングが、図9に概略的に示されている。
【0054】図9に示す例の、最初のサイクルでは、第
1のコマンドがコマンド・メモリから取り出される。第
2のサイクルでは、このコマンドがプロセッサに渡さ
れ、オペランドの準備がされる。このサイクルにおいて
更に、第2のコマンドがコマンド・メモリから取り出さ
れる。第3のサイクルからm番目のサイクルまで、第1
のコマンドが実行される。また、第4のサイクルから、
(m+1)番目のサイクルまで、第2のコマンド他が実
行される。m番目のサイクルが終了すると、プロセッサ
は、各サイクルの結果を出力する。この処理では、n個
のコマンドの処理に全部でm+n−1回のサイクルを必
要とする。一方、この処理をスカラ・コンピュータで行
うと、(nm)サイクルを要することになる。
【0055】言い換えれば、ベクトル・コンピュータは
複数のキューを使用し、データやコマンドを、ローディ
ング・キューを介してベクトル・レジスタに転送する。
その後、算術演算キューにおいて計算が行われ、演算結
果はメモリ・キューを介してメモリに記憶される。算術
演算キューは、多機能キューであり、浮動小数点演算と
いった個別の複数ステップを並列で実行することができ
る。
【0056】1秒あたりの浮動小数点演算回数(FLOPS)
で表される、このベクトル・コンピュータの性能、即ち
計算能力は、いわゆるベクトル長に密接に依存してい
る。図9から分かるように、コマンド・スタックがベク
トル処理される場合、第1のコマンドの処理はmサイク
ル必要であり、それ以降の各コマンドは、1サイクルだ
けの追加で処理される。この処理方法は、n番目のコマ
ンドが、先行するm−1個のコマンドのうちの1つの処
理結果を知ることなく実行できることを前提としてい
る。これは、上述のベクトルの組み合わせにおいては典
型的なケースだからである。
【0057】従って、ベクトル長は、ベクトル化して実
行可能なコマンドの数を表す数字として認識される。従
来より、ベクトル・コンピュータに適したベクトル長
は、単純ループによって決定されうる。アルゴリズム
(3)は、そのループを実行するためのものであり、対
応する疑似コードが、図10に示されている。
【0058】図11は、ベクトル長がコンピュータの性
能に与える影響について、例えばNECのSX4のよう
なコンピュータを例にして示した図である。最初は、ベ
クトル長の増加に伴って明らかにコンピュータの性能が
向上しているが、ベクトル長nが400を越えると、コ
ンピュータの性能にほとんど変化がない。
【0059】この説明において、最小ベクトル長は、コ
ンピュータの性能にほとんど影響を及ぼさないようにな
るベクトル長を表し、この例では約400である。
【0060】最小ベクトル長は、ベクトル・プロセッサ
の使用の形態に関わらず、そのベクトル・プロセッサに
依存する。従って、例えばFujitsu-VPXは、ベクトル処
理を効果的に実現するために、1000のベクトル長を
要求する。一方、Cray EL98は、かなり短いベクトル長
でも効果的に機能する。
【0061】それぞれの最小ベクトル長より大きなベク
トル長が、コンピュータの性能にほとんど影響を与えな
いという事実は、ある理由によるものである。実際に、
図9に示すような、充分なオーバーラッピングが行われ
る状況では、例えば、キュー内のステップ数が、スタッ
ク内のコマンド数と等しくなる場合には、それ以上ベク
トル長を大きくしても僅かな効果しか得られない。
【0062】コンピュータの性能を更に劣化させる要因
は、メモリの数、構成、及び構造である。ある記憶位置
にアクセスするため、それに関連付けられたメモリ・バ
ンクが常に事前ロードされ、アクセスが生じた場合だけ
参照される。次にメモリ・バンクは、再び戻される(ダ
ウンシフト)。こうした事前ロードとダウンシフトの時
間は、実際のアクセス時間の何倍にもなることがある。
従って、従来では、連続してアクセスされるビットが、
いくつかのメモリ・バンクに記憶されており、次のメモ
リ・バンクは常に事前ロードされていた。こうして、メ
モリ・アクセスに必要な時間がかなり短縮された。
【0063】しかし、これは、どのメモリ・バンクが連
続してアクセスされるかが常に分かっている場合を想定
している。間接的なアドレッシングを用いる、前述した
超平面を扱う方法においては、次にアクセスされるアド
レスを常に最初に計算しなければならないので、これを
想定することは不可能である。従って、間接的なアドレ
ッシングへの適用は避けなければならない。
【0064】一方、既知で一定の間隔によりメモリがア
クセスされる方法は、ベクトル・コンピュータへの適用
に適している。既知で一定の前記間隔は、例えば、連続
してアクセスされる記憶位置の間隔が、常に既知で一定
であるような場合である。
【0065】直接的アドレッシングでないアクセスが同
じメモリ・バンクに対して短時間で連続して行われる場
合にも、同様のメモリ・アクセスの問題が生じる。これ
は、メモリ・バンクが常にダウンシフトされ、その後、
再開されたアクセスの前に再び事前ロードされるので、
コンピュータの性能をも低下させる。
【0066】従って、ベクトル化処理されるループは、
同一メモリ・バンクへのアクセスの間隔が十分長いもの
であるよう設計されることが好ましい。
【0067】コマンドの処理が複数の独立した並列処理
ベクトル・プロセッサに亘って分散されると、コンピュ
ータの性能は一層向上する。このための条件は、複数の
独立した部分タスクを形成できることである。
【0068】前述したように、本発明は、ベクトル・コ
ンピュータ上で多重カラーを扱う方法を実行し、式
(1)の解を求める方法に関するものである。
【0069】コンピュータの性能に悪影響を及ぼす、前
述した要因を回避するために、本発明は、一定のメモリ
・アクセス間隔istrを以下の規則に従って決定す
る。
【0070】a)すべてのk(k = 1 ...nzr)に対して、
mod(izrk, istr) ≠ 0であること。ここで、izrk = {j:
Li, i-j ≠ 0 又は Ui, i+j ≠ 0}、nzrは、Li, i-j
0 又は Ui, i+j ≠ 0である全てのjの数である。
【0071】b)istrとnbの最大公約数(gcd)が1であ
ること。ここで、nbはメモリ・バンクの数である。
【0072】c)istrはできるだけ小さな数であるこ
と。その結果、実際のベクトル長が、そのベクトル・プ
ロセッサに要求される最小ベクトル長より大きいものと
なる。
【0073】また、istrの実際の値によって、以下のよ
うな値xを求め、その値がなるべく大きくなるようにす
る。
【0074】 x = min{int(istr/mod (izrk, istr)) k = 1,...nzr} ...(18)。
【0075】規則a)は、全ての計算処理が、あるカラ
ーの中では独立して実行されることを保証している。こ
のことによって、ベクトル処理が、1つのカラーにおい
て可能になる。
【0076】これは、istrによって割り切れるizrk
がないことを仮定している。この規則を用いることによ
って、5点ステンシルや7点ステンシルを扱うことがで
きるだけでなく、あらゆる依存度を考慮に入れることが
できる。
【0077】規則b)は、メモリの競合が無いことを保
証する。即ち、同じメモリ・バンクに対するアクセスを
連続してすることができず、かつ、全てのメモリ・バン
クが使用されている。
【0078】規則c)は、ベクトル長が、ベクトル・コ
ンピュータを最適動作させるために必要な程度に大きい
ことを保証する。これに関しては、ベクトル長を大きく
する程、この方法による収束性が低下することに注意す
べきである。これは、前進代入及び後退代入の開始時点
で、すべてのiに対して要素pi又はqiの値がそれぞれ
ゼロにセットされる(又は別の適切な開始値がセットさ
れる)ことによるものである。ループの最初の1回が終
了すると、要素pi+istr, pi+2istr, ...qmは、それ
ぞれ第1の近似値に対応した新しい値がセットされる。
次に、他の要素pi又はqiの全てについて計算を更に行
っていく。更なる計算に利用できる第1の近似値が迅速
に求められるほど、収束性がより効果的なものになる。
【0079】そこで、良好な収束性を得るために、式
(18)が提供される。これは、前述のvon-Neumann級
数展開に関連するものであり、本発明による方法の収束
性が、式(16)において、ntr =(nd - 1)xである限
り、式(16)による級数展開と同程度であることを保
証する。
【0080】istrを計算するために好適なアルゴリ
ズム(4)を実現する疑似コードの例を、図12に示
す。
【0081】また、以下の説明に関連して、前記アルゴ
リズム(4)のフローチャートを図13に示す。
【0082】ここでは、lvcが最小ベクトル長、即ち、
ベクトル・プロセッサによって要求される最小のベクト
ル長であり、gcd(i, nb)が、iとnbの最大公約数であ
る。
【0083】また、最小ベクトル長は、厳密な境界を有
していないので、特に最後の規則c)と式(18)の適
用については、ファジー理論と関連付けて考えることが
できる。ファジー理論を取り入れると、前述のアルゴリ
ズム(4)では、例えば、iによってループするループ
は、iがistrmaxになるまでではなく、istrmaxの何倍か
になるまでループするようにでき、あるi(i > istrma
x)における解は、iがistrmaxより大きいという点で、
他の解より好ましくないものとすることができる。以下
では、前述した本発明の適用について、np=2のベクトル
・プロセッサを備えた並列ベクトル・コンピュータに関
連して説明する。当業者には、プロセッサが3つ以上の
ベクトル・コンピュータにも、本発明を同様に適用でき
ることは明らかである。
【0084】図14には、2つのプロセッサによって、
図2に示す7点ステンシルを処理する順序が示されてい
る。ここで、nx = 10, ny = 11, istr = 9, 及びnzは任
意である。
【0085】最初に、第2のプロセッサと独立して動作
する第1のプロセッサは、カラーC(1)及びC(2)
について第1の近似解を計算する。同時に、第2のプロ
セッサは、第1のプロセッサとは独立して、カラーC
(5)及びC(6)についての第1の近似解を計算す
る。このために、カラーC(8)、C(9)又はC
(3)、C(4)の格子点の第1の近似解の値は、それ
ぞれゼロにセットされる。
【0086】カラーC(2)又はC(6)の計算の後、
同期がとられる。即ち、次のカラーC(3)又はC
(7)の計算は、両方のプロセッサがそれぞれの先行す
るカラーの計算を終えた後でなければ、始めることがで
きない。カラーC(3)又はC(7)の値は、カラーC
(5)又はC(1)の値の計算に用いられるので、ここ
でも同期が必要である。カラーC(5)の計算がまだ終
了していない間に、カラーC(3)の値を変更すること
は、計算の不確実性を招く。それは、カラーC(3)の
値が、カラーC(5)の計算に必要だからである。結果
的に、カラーC(5)の結果は、それぞれのプロセッサ
のランダムな動作条件に、多かれ少なかれ依存すること
になる。
【0087】同期をとった後で、カラーC(3)及びC
(4)は、第1のプロセッサによって計算され、カラー
C(7)、C(8)、及びC(9)は他のプロセッサに
よって計算される。次に、これらのプロセッサは再び同
期をとり、処理は新たなパスに進み、カラーC(1)又
はC(5)の計算が開始される。また、カラーC
(8)、C(9)又はC(3)、C(4)の第1の近似
解は、以前のパスで計算されている。このループは、条
件id = ndになるまで、アルゴリズム(2)によって繰
り返される。即ち、近似解が十分良好なものになること
が保証されるまで繰り返される。通常、満足な近似解を
得るには、2つのパス(nd - 2)で充分である。
【0088】並列ベクトル・コンピュータで上記処理を
行うための好適アルゴリズム(5)を実行するための疑
似コードの例が図15、図16に示されている。図15
に示す疑似コードと図16に示す疑似コードとは連続し
ているものであり、これら2つで1つのアルゴリズム
(5)を示していることに注意すべきである。
【0089】また、以降の説明に関連して、このアルゴ
リズム(5)に対応するフローチャートが、図17に示
されている。
【0090】2つ以上のプロセッサがあれば、ループ処
理は、iaを使って、0からint(istr/np) - 1 まで実
行される。またここで、npはプロセッサの数を表してい
る。
【0091】
【発明の効果】以上に説明したように、本発明による方
法によって、様々なキューの長さ、及びメモリ・バンク
の数を有するようなベクトル・コンピュータに適用させ
ることができ、結果的に既存の方法より高速な動作を実
現できる。また、いかなる追加コストも必要とせずに、
5点ステンシルや7点ステンシルにおける依存度以外の
依存度を更に考慮することができる。
【0092】例えば、図18及び図19にそれぞれ示
す、19及び27点ステンシルについても計算が可能で
ある。
【0093】更に、本発明による方法は、複数の独立プ
ロセッサを用いた並列処理に非常に適している。特に、
分散メモリを備え、各プロセッサがそのメモリにアロケ
ートされているメモリ領域を有し、アクセスの競合が回
避されるようなコンピュータ・システムに適している。
【図面の簡単な説明】
【図1】5点ステンシルの2次元格子を示す図である。
【図2】7点ステンシルの3次元格子を示す図である。
【図3】7点ステンシルに関する行列Mの概略を示す図
である。
【図4】1次方程式の解を前進代入及び後退代入を用い
て解くためのアルゴリズム(1)を実現する疑似コード
の例を示す図である。
【図5】3次元空間における超平面の位置の概略を示す
図である。
【図6】nx = 10, ny = 11, istr = 9で、nzが任意であ
る場合の計算順序を概略示す図である。
【図7】アルゴリズム(2)を実現する疑似コードの例
を示す図である。
【図8】アルゴリズム(2)についてのフローチャート
である。
【図9】ベクトル・コンピュータの処理タイミングを示
す図である。
【図10】ベクトル長を決定するアルゴリズム(3)を
実現する疑似コードの例を示す図である。
【図11】既存のベクトル・コンピュータのベクトル長
と処理能力の関係を表すグラフである。
【図12】istrを計算するために好適なアルゴリズ
ム(4)を実現する疑似コードの例を示す図である。
【図13】図12のアルゴリズム(4)についてのフロ
ーチャートである。
【図14】nx = 10, ny = 11, istr = 9で、nzが任意で
あり、2つのプロセッサ上に分散された処理が並列に行
われる場合の計算順序を概略示す図である。
【図15】アルゴリズム(5)を実現するための疑似コ
ードの例の一部を示す図である。
【図16】アルゴリズム(5)を実現するための疑似コ
ードの例の一部を示す図である。
【図17】図15及び図16のアルゴリズム(5)につ
いてのフローチャートである。
【図18】3次元空間における、19点のステンシルの
配置を示す図である。
【図19】3次元空間における、27点のステンシルの
配置を示す図である。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのベクトル・プロセッサ
    とメモリ・バンクを有するベクトル・コンピュータで、
    下三角行列と上三角行列を含んだ行列式の近似解を求め
    るための、前進代入及び後退代入を行う多重カラー技法
    に基づく計算方法において、前記計算方法が、前記代入
    を行うために、メモリをアクセスする一定の間隔ist
    rを有し、 前記代入の前に、所定の基準により、前記istrを決
    定するステップを有し、前記istrが以下のステップ
    により求められることを特徴とする計算方法、 a)前記下三角行列及び上三角行列において対角成分の
    並びと平行な、非対角成分のそれぞれの並びの中で、少
    なくとも1つの成分がゼロでない各並びに対して、その
    対角成分の並びから見て、その非対角成分の並びがいく
    つ目の平行な要素かを表す数izrをistrで割った
    場合に、その剰余がゼロにならないistrを選択する
    ステップ、 b)istrとメモリ・バンクの数nbの最大公約数
    (GCD)を計算し、その結果が1となるistrを選
    択するステップ、及び c)可能な数の候補の中で最も小さいistrを求める
    ステップ。
  2. 【請求項2】 請求項1において、前記行列式が、 (△−L)△-1(△−U)q=r であり、ここで、△はm×mの対角行列、Lはm×mの
    下三角行列、Uはm×mの上三角行列、q及びrはm次
    元のベクトルであることを特徴とする計算方法。
  3. 【請求項3】 請求項1において、前記istrを求め
    るステップが更に、 d)各izrに関して、izrをistrで割った前記
    剰余で更にistrを割り、その整数部の値が最小であ
    るものをxとする場合、前記xの値が、前記ベクトル・
    コンピュータで並列に動作するベクトル・プロセッサの
    数の少なくとも2倍以上となるように、istrの値を
    決定するステップを有する計算方法。
  4. 【請求項4】 請求項1において、前記ステップc)
    が、ファジー理論によって判断されることを特徴とする
    計算方法。
  5. 【請求項5】 請求項3において、前記ステップd)
    が、ファジー理論によって判断されることを特徴とする
    計算方法。
  6. 【請求項6】 少なくとも1つのベクトル・プロセッサ
    とメモリ・バンクを有するベクトル・コンピュータで、
    下三角行列と上三角行列を含んだ行列式の近似解を求め
    るための、前進代入及び後退代入を行う多重カラー技法
    に基づく計算方法を実現させるプログラムを記録したコ
    ンピュータ読み取り可能な記録媒体であって、前記プロ
    グラムは、 前記代入の前に、所定の基準により、前記istrを決
    定するステップを有し、前記istrが以下のステップ
    により求められることを特徴とするプログラムを記録し
    たコンピュータ読み取り可能な記録媒体、 a)前記下三角行列及び上三角行列において対角成分の
    並びと平行な、非対角成分のそれぞれの並びの中で、少
    なくとも1つの成分がゼロでない各並びに対して、その
    対角成分の並びから見て、その非対角成分の並びがいく
    つ目の平行な要素かを表す数izrをistrで割った
    場合に、その剰余がゼロにならないistrを選択する
    ステップ、 b)istrとメモリ・バンクの数nbの最大公約数
    (GCD)を計算し、その結果が1となるistrを選
    択するステップ、及び c)可能な数の候補の中で最も小さいistrを求める
    ステップ。
JP17131599A 1998-06-18 1999-06-17 ベクトル・コンピュータにおける演算方法、及び記録媒体 Expired - Fee Related JP3659307B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19827238.3 1998-06-18
DE19827238A DE19827238B4 (de) 1998-06-18 1998-06-18 Verfahren zum Betrieb eines Vektorrechners

Publications (2)

Publication Number Publication Date
JP2000029864A true JP2000029864A (ja) 2000-01-28
JP3659307B2 JP3659307B2 (ja) 2005-06-15

Family

ID=7871327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17131599A Expired - Fee Related JP3659307B2 (ja) 1998-06-18 1999-06-17 ベクトル・コンピュータにおける演算方法、及び記録媒体

Country Status (3)

Country Link
US (1) US6446105B1 (ja)
JP (1) JP3659307B2 (ja)
DE (1) DE19827238B4 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694343B2 (en) * 2001-02-08 2004-02-17 International Business Machines Corporation Method for solving a large sparse triangular system of linear equations
US7313788B2 (en) * 2003-10-29 2007-12-25 International Business Machines Corporation Vectorization in a SIMdD DSP architecture
US8306798B2 (en) * 2008-12-24 2012-11-06 Intel Corporation Fluid dynamics simulator
US20100199067A1 (en) * 2009-02-02 2010-08-05 International Business Machines Corporation Split Vector Loads and Stores with Stride Separated Words
CN103514109B (zh) * 2013-09-24 2016-04-13 创新科存储技术有限公司 一种打开磁盘写缓存的方法和装置
US9632801B2 (en) * 2014-04-09 2017-04-25 Intel Corporation Banked memory access efficiency by a graphics processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5267185A (en) * 1989-04-14 1993-11-30 Sharp Kabushiki Kaisha Apparatus for calculating matrices
JPH0444165A (ja) * 1990-06-12 1992-02-13 Nec Corp 対称連立一次方程式の求解方式
JP2718254B2 (ja) * 1990-10-02 1998-02-25 日本電気株式会社 ベクトル処理装置
US5446908A (en) * 1992-10-21 1995-08-29 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for pre-processing inputs to parallel architecture computers
US5680338A (en) * 1995-01-04 1997-10-21 International Business Machines Corporation Method and system for vector processing utilizing selected vector elements

Also Published As

Publication number Publication date
DE19827238A1 (de) 1999-12-23
DE19827238B4 (de) 2004-09-30
US6446105B1 (en) 2002-09-03
JP3659307B2 (ja) 2005-06-15

Similar Documents

Publication Publication Date Title
US10410112B2 (en) Apparatus and method for performing a forward operation of artificil neural networks
US7337205B2 (en) Matrix multiplication in a vector processing system
KR101202445B1 (ko) 프로세서
US5600843A (en) Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays
US11983616B2 (en) Methods and apparatus for constructing digital circuits for performing matrix operations
US20190138922A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
Bikov et al. Parallel fast Walsh transform algorithm and its implementation with CUDA on GPUs
US10884736B1 (en) Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing
US20200226201A1 (en) Methods and Apparatus for Constructing Digital Circuits for Performing Matrix Operations
US7467053B2 (en) Three-dimensional fourier transform processing method for shared memory scalar parallel computer
JP2000029864A (ja) ベクトル・コンピュ―タにおける演算方法、及び記録媒体
JP2023070746A (ja) 情報処理プログラム、情報処理装置、及び情報処理方法
CN110399976B (zh) 计算装置和计算方法
US20190130274A1 (en) Apparatus and methods for backward propagation in neural networks supporting discrete data
JP2001067206A (ja) モジュラー乗算を実行するためのシステム並びに方法
CN110673824A (zh) 矩阵向量乘电路以及循环神经网络硬件加速器
Ichimura et al. Threaded accurate matrix-matrix multiplications with sparse matrix-vector multiplications
US9600446B2 (en) Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof
US20190073584A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
JP3808925B2 (ja) 多様な行列格納法を使用可能な連立方程式の並列処理装置および方法
Myllykoski et al. On solving separable block tridiagonal linear systems using a GPU implementation of radix-4 PSCR method
JP2806262B2 (ja) マルチプロセッサシステムのプロセス割当方法
GB2523805A (en) Data processing apparatus and method for performing vector scan operation
JP7506086B2 (ja) データ処理
JP2006164307A (ja) 多様な行列格納法を使用可能な連立方程式の並列処理装置および方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040526

TRDD Decision of grant or rejection written
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050308

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080325

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100325

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110325

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120325

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130325

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees