JP2956800B2 - 連立一次方程式に関する計算装置 - Google Patents

連立一次方程式に関する計算装置

Info

Publication number
JP2956800B2
JP2956800B2 JP3239260A JP23926091A JP2956800B2 JP 2956800 B2 JP2956800 B2 JP 2956800B2 JP 3239260 A JP3239260 A JP 3239260A JP 23926091 A JP23926091 A JP 23926091A JP 2956800 B2 JP2956800 B2 JP 2956800B2
Authority
JP
Japan
Prior art keywords
matrix
coefficient matrix
diagonal
preprocessing
elements
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.)
Expired - Fee Related
Application number
JP3239260A
Other languages
English (en)
Other versions
JPH0581310A (ja
Inventor
保範 後
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP3239260A priority Critical patent/JP2956800B2/ja
Priority to US07/947,801 priority patent/US5604911A/en
Publication of JPH0581310A publication Critical patent/JPH0581310A/ja
Application granted granted Critical
Publication of JP2956800B2 publication Critical patent/JP2956800B2/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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、連立一次方程式の数値
解を計算する装置に係わり、特に連立一次方程式の係数
行列に対する前処理行列を計算する装置であって、大規
模な数値シミュレーションを行うベクトル計算機、並列
処理方式の計算機、ワークステーションなどに関する。
【0002】
【従来の技術】従来の技術としては、村田健郎他著「ス
ーパーコンピュータ、科学技術計算への応用」(丸善)
に論じられている不完全三角分解を前処理に使用する連
立一次方程式の解析方式がある。この方法でもベクトル
計算機向き前処理方式の工夫が記述されているが、複数
のベクトル計算処理装置を持つコンピュータや超並列計
算機には適用が困難である。
【0003】行列Aの三角分解はAを下三角行列Lと上
三角行列Uの積LU(=A)に分解するものであり、有
限要素法で離散近似して得られる連立一次方程式では係
数行列は疎である(全行列要素に占める非ゼロ要素の割
合が低い)のに対し、LU分解された行列はそれよりも
非ゼロ要素が多くなる。通常この非ゼロ要素の発生をfi
ll−inと呼んでいるが、上記論文の不完全LU分解法で
は、このfill−in部分を無視して(ゼロに近似して)L
U分解を行う。従って、係数行列の全非ゼロ要素に対し
て不完全LU分解を行って得られるL,UはそれぞれA
の下三角部分、上三角部分と同じ構造を持つ。
【0004】さらに上記の方式を発展させて、複数のベ
クトル計算処理装置をもつコンピュータへ適用する方式
がVan der Vorst(1982)に発表されているが、不
完全三角分解部分は複数のベクトル計算処理装置への適
用が困難で、反復計算部分でもmx×myに分割した領域で
はベクトル長がmxに制限される。
【0005】また他の従来の技術としては、村田健郎他
著「大型数値シミュレーション」(岩波書店)に論じら
れている不完全三角分解を前処理に使用して共役勾配法
系の解法で連立一次方程式の解を反復計算する方法があ
る。この方法では不完全三角分解にGustafsson流の補
正を加えているが、補正係数αは、風上係数ωと移流拡
散問題におけるセル・ペクレ数Peを使用して、α=0.9
5max(0,1−Pe/(4+6ω))としている。一般に連立一
次方程式計算の汎用ライブラリでは、風上係数ωやセル
・ペクレ数をプログラムに渡すのが困難であり、またこ
の方法で補正係数αを計算しただけでは、セル・ペクレ
数が10を超える問題では共役勾配法系の収束が遅くな
り、多くの場合収束しなくなる。
【0006】
【発明が解決しようとする課題】上記、不完全三角分解
法では、どのように工夫しても並列化の程度は次元数n
より相当小さくなる。また、従来不完全三角分解を使用
しないで乗算行列を前処理行列とする方法も提案されて
いたが、いずれも不完全三角分解法に比較して連立一次
方程式の解の収束が遅く、係数行列の性質が悪くなる
(悪条件性を有する)と収束が不安定になるという欠点
を持っていた。
【0007】また共役勾配法系の計算手法を用いて連立
一次方程式の解を反復計算するとき、従来の不完全三角
分解法を前処理に使用したのでは、移流拡散方程式を差
分法で離散化した行列の性質が悪くなる(セル・ペクレ
数が大きい場合等)と収束が遅く、パラメータの設定方
法を少し誤ると収束しなくなるケースが多かった。
【0008】本発明の目的は、複数台のベクトル演算器
を有する計算機や並列処理計算機によく適用できるよう
な連立一次方程式の前処理行列を計算する方式を提供す
ることにある。
【0009】本発明の他の目的は、連立一次方程式の係
数行列の性質が悪条件であっても、その数値解の収束性
を向上させることにある。
【0010】
【課題を解決するための手段】
(1)有限要素で離散近似して得られる連立一次方程式
を共役勾配法系の計算手法で、高速でかつ安定的に、し
かも並列処理向き前処理を行うため下記のような技術的
手段を採用した。
【0011】まず、並列処理向きにするため、前処理は
行列Aの不完全三角分解を使用せず、行列Aの非対角非
ゼロ要素をm個の部分行列E1,E2,・・・,Emに分
け、前処理行列を(I−Ei),i=1,2,・・・,m
の乗算で構成する。これにより、連立一次方程式の解析
手法の全部分で行列の次元数nの並列度を有することを
可能にする。
【0012】次に、共役勾配法系の計算手法で収束性を
向上させ、計算を高速化させるために、非対角の非ゼロ
要素を行ごとに列番号インデックスを付けて記憶手段に
記憶させ、絶対値の大きい順にソートして、行列Aの部
分行列、E1,E2,E3,・・・,Emを作るとき、E1,
E2,E3,E4と最初の方は行列の一行当り一要素で分
割し、要素の絶対値の値が小さくなるに従って行列の一
行当りに複数個の要素を含めて分割する方式を用いる。
これにより(I−Ei),i=1,2,・・・,mと分割
した各行列のノルムσi=‖Ei‖を1より相当小さくす
ることができ、共役勾配法系の収束性を向上させ、連立
一次方程式の数値解を高速に求めることができる。
【0013】次に、離散近似した連立一次方程式の係数
行列が悪条件(この場合は係数行列Aの対角優位性が大
きくくずれた場合)にも、共役勾配法系の解法の収束を
安定化させるため、通常行列Aと右辺ベクトルを対角行
列でスケーリングするところを、対角要素と非対角要素
の絶対値の和とでスケーリングする方法を採用した。こ
れにより、行列Aが悪条件でも、分割した前処理行列
(I−Ei),i=1,2,・・・,mのいずれにおい
ても、各分割行列のノルムσi=‖Ei‖を1より小さく
することができ、連立一次方程式を安定に解析すること
を可能にする。
【0014】(2)差分法で離散近似して得られる連立
一次方程式を共役勾配法系の計算手法で、高速かつ安定
に、しかも並列処理向き前処理を行うため下記のような
技術的手段を採用した。
【0015】まず、並列処理向きにするために、前処理
は行列Aの不完全三角分解を使用せず、行列Aの非対角
非ゼロ帯行列を一本の帯ずつに分け、係数行列右下の帯
よりA1,A2,・・・,Amとするm個の部分行列を作
成し、前処理行列を、(I−Ai),i=1,2,・・
・,mの乗算で構成する。このときmの値は、2次元5
点差分法のとき4、3次元7点差分法のとき6となる。
さらに周期境界条件があるとさらに2又は4だけmの値
は大きくなる。これにより、連立一次方程式の解析手法
の全部分で行列の次元数nの並列度を有することが可能
である。また非対角行列をm個の部分行列に分けること
で、共役勾配法系の収束性を向上させる。
【0016】次に、離散近似した連立一次方程式の係数
行列が悪条件(この場合は係数行列Aの対角優位性が大
きく崩れた場合)でも、共役勾配法系の解法の収束を安
定化させるため、通常、行列Aと右辺ベクトルを対角行
列でスケーリングするところを、対角要素と非対角要素
の絶対値の和でスケーリングする方法を採用した。これ
により、行列Aが悪条件でも、分割した前処理行列(I
−Ai),i=1,2,・・・,mのいずれにおいても、
各分割行列のノルムσi=‖Ai‖を1より小さくするこ
とができ、連立一次方程式を安定に解析することを可能
にする。
【0017】(3)差分法で離散近似して得られる連立
一次方程式を、不完全三角分解付き共役勾配法系の計算
手法で、高速かつ安定に計算するため、不完全三角分解
に下記のような技術手段を採用した。
【0018】従来、不完全三角分解を行うとき、係数行
列Aに対してそのまま不完全三角分解していたのに対
し、本発明では、対角要素と非対角要素の絶対値の和と
を合わせて作成した値を対角要素と見なして不完全三角
分解を行う方式を採用した。これにより係数行列の性質
の悪さにあまり関係なく、Gustafsson流の補正におけ
る補正係数αを一定値に固定することができ、収束の安
定性を保つことができた。
【0019】また、上記不完全三角分解を前処理に使用
した場合、係数行列の性質が悪い(対角要素に対して非
対角要素の絶対値の和の値が大きい)場合でも収束の安
定性が非常に良いという利点と、複数台のベクトル演算
器での処理効率が悪いという欠点がある。一方、上記
(2)の(I−Ai),i=1,2,・・・,mの乗算
で構成する行列を前処理に使用すると、不完全三角分解
法と逆の利点と欠点がある。このためどのような条件で
も高速でかつ安定な収束をさせる技術的手段として、使
用可能なベクトル演算器の台数と対角要素と非対角要素
の絶対値の和との比の二つをパラメータとして、二つの
前処理方式を選定する方式を採用した。
【0020】
【作用】
(1)共役勾配法系の解法の前処理として、不完全三角
解法ではベクトル計算機向きにはできても、超並列処理
向きにするのは困難である。上記(1)の発明では、前
処理行列を(I−Ei),i=1,2,・・・,mの乗
算で構成することで、複数台のベクトル演算機を有する
コンピュータにも一部の超並列計算機にも向く計算方式
とすることができる。
【0021】共役勾配法系の解法で、収束性を向上させ
る手段として、非対角の非ゼロ要素を行ごとに列番号イ
ンデックスを付けて記憶させ、絶対値の大きい順にソー
トし、行列Aの部分行列、E1,E2,・・・,Emを作
るとき最初の方は一要素ずつで分割し、要素の絶対値が
小さくなるに従って複数個の要素を含めて分割する技術
的手段を用いることにより、分割した各行列のノルムσ
i=‖Ei‖,i=1,2,・・・,mをすべて1より相
当小さくし、共役勾配法系の収束性を向上させ、連立一
次方程式の解析を高速化することができる。
【0022】さらに、共役勾配法系の収束を安定化させ
る技術的手段として、対角要素と非対角要素の絶対値の
和とで行列Aと右辺ベクトルbをスケーリングする方式
を採用し、係数行列Aの対角優位性が大きく崩れた場合
も、連立一次方程式の数値解が収束するようにできる。
【0023】また非ゼロ要素を下三角と上三角に分けて
記憶する必要がないため、記憶容量は不完全三角分解法
より少なくて済む。
【0024】(2)共役勾配法系の解法の前処理とし
て、不完全三角解法ではベクトル計算機向きにはできて
も、超並列処理向きにするのは困難である。上記(2)
の発明では、前処理行列を(I−Ai),i=1,2,
・・・,mの乗算で構成することで、複数台のベクトル
演算器を有するコンピュータにも、超並列計算機にも向
く計算方式とすることができる。また前処理行列を(I
−Ai),i=1,2,・・・,mの乗算で構成するこ
とで、従来行われていたE=A1+A2+・・・+Amと
して、I−E+E2−E3+E4・・・とするより、共役
勾配法系の収束性を向上させることができる。
【0025】さらに共役勾配法系の収束を安定化させる
技術的手段として、対角要素と非対角要素の絶対値の和
とで行列Aと右辺ベクトルbをスケーリングする方式を
採用し、係数行列Aの対角優位性が大きく崩れた場合
も、連立一次方程式の数値解が安定に収束する。
【0026】(3)従来の係数行列Aに対してそのまま
不完全三角分解する方法では対角優位性が大きく崩れる
と、前処理付き共役勾配法系では収束しなくなるという
欠点があった。上記(3)の発明のように、対角要素と
非対角要素の和とを合わせて作成した値を対角要素と見
なして不完全三角分解を行うと、不完全三角分解の途中
で分解後の対角要素が極端に小さくなるという状態も回
避でき、係数行列の優位性が大きく崩れても収束は安定
するという効果がある。さらにGustafsson流の補正係
数αを0.95程度に固定しても収束の速さが大きく変化し
ないという利点を持つ。
【0027】また複数台のベクトル演算器を持つベクト
ル並列計算機において、共役勾配法系の解法で連立一次
方程式の解を反復計算するとき、上記不完全三角分解を
前処理にするのと上記(2)の発明により(I−A
i),i=1,2,・・・,mの乗算で構成される行列
を前処理にするのとでは、それぞれ利点と欠点があり、
それはベクトル演算器の台数と対角要素と非対角要素の
絶対値の和との比の二つのパラメータに大きく左右され
る。そのためこの二つのパラメータにより、二つの前処
理方法のうちより良い方式を自動選定し、より高速な計
算を可能にする。
【0028】
【実施例】
(1)実施例1 図1は本実施例における共役勾配法系の計算手法に用い
る前処理行列Mの作成手順を示す図である。図2は前処
理行列Mを構成する行列の具体的分割方法を示す図であ
る。図3は前処理付き共役勾配法系の計算手順を示す図
である。図4は有限要素法による数値シミュレーション
の手順を示す図である。図5は有限要素分割を示す図で
ある。図6は図5に示す分割の結果作成される連立一次
方程式の係数行列の記憶方法を示す図である。
【0029】図1は図3の前処理行列を作成するステッ
プ9の具体的な作成手順を示した図である。図2は図1
の行列分割を行うステップ5の具体的方法を示したもの
である。図3は図4の連立一次方程式の数値解を計算す
るステップ16の具体例を示したものである。
【0030】図1の1は有限要素法で作成される連立一
次方程式の係数行列と右辺ベクトルを記憶手段に記憶す
るステップである。係数行列Aは対角行列Dと非対角行
列、波つきのA、とは分けて記憶される。また非対角行
列、波つきのA、は非ゼロ要素だけ記憶させるために、
非ゼロ要素について行ごとに列番号インデックスを格納
した列番号テーブルLと対にして格納される。図1では
行列の次元数をNとし、対角要素を除いた一行当りの最
大非ゼロ要素数をNDで示している。2は係数行列と右
辺ベクトルをスケーリングするため値を計算するステッ
プである。いま対角要素D(i),i=1,・・・,Nは
すべて正としておく。いままではこのスケーリングに1
/D(i),i=1,・・・,Nが使用されていたが、対
角優位性が大きく崩れた場合は解が収束しなくなる。こ
のため、ここでは各行の非対角要素の絶対値の和Ui
(i=1,・・・,N)と対角要素D(i)(i=1,・
・・,N)より計算する方式を採用する。パラメータα
は一般に4.0程度に固定しておけばよい。但しそれでも
収束しない場合にαの値を変更できるようにしておく。
3は係数行列と右辺ベクトルのスケーリングを行うステ
ップである。ステップ2で計算したωi(i=1,・・
・,N)を乗算することでスケーリングを行う。4は係
数行列要素をソートするステップである。ここではその
絶対値が大きい順にソートしている。なおこのスケーリ
ングとソーティングの順序はこの逆でもよい。5はソー
トした行列要素を使用してm個の部分行列E1,・・
・,Emに分割するステップである。この部分について
は図2でさらに詳しく述べる。6は部分行列E1,・・
・,Emを使用して前処理行列Mを作成するステップで
ある。上記各ステップは、記憶手段に格納されたデータ
を参照しながら上記の計算及び処理を実行する手段によ
って実現される。
【0031】図2は非対角非ゼロ要素行列、波つきの
A、をm個の行列に分割する具体的な手法を示す図であ
る。7は一行当りの最大非ゼロ要素数NDが大きい場合
の分割方法である。|波つきのA(i,j)|≦|波つ
きのA(i,j+1)|(i=1,・・・,n,j=
1,・・・,ND−1)のようにjでソートされている
ため、jの値が小さいところは1行1要素で分割し、j
が大きくなると少しずつ多くの要素を集めて部分行列と
している。8は一行当りの最大非ゼロ要素数NDが小さ
い場合の分割方法を示したものである。
【0032】なお図2は分割方法の一例を示すものであ
るが、一般的には|波つきのA(i,j)|単独かある
いはいくつかの|波つきのA(i,j)|を加えたもの
がほぼ同じ程度の値になるように部分行列のグループ分
けをすればよく、これは計算機によって処理可能であ
る。
【0033】図3は前処理付きCGPM法(共役勾配最
小多項式法、Vander VorstのBi−CGSTAB法
(1990)と同様な計算手法)で連立一次方程式A・ベク
トルx=ベクトルbの解であるベクトルxを反復計算し
て求める計算手順である。9は入力された行列Aから前
処理行列Mを作成するステップである。この具体的手順
は図1で示した通りである。このとき、行列Aも右辺ベ
クトルbもスケーリング処理される。10は反復計算のた
めの前準備をするステップである。ここでベクトルxは
解の初期ベクトルで、分からない場合はオールゼロを入
れておけばよい。ベクトルrは残差ベクトルである。ま
た(ベクトルr,ベクトルr)は内積計算を示し、以下
も同じ意味で使用する。11は反復計算を制御するステッ
プである。12は前処理付きCGPM法の反復計算を実行
するステップである。計算解はベクトルxに求まる。A
とMは行列、ベクトルp,q,r,r0,eおよびvは
次元数Nのベクトルを示し、それ以外の記号はスカラを
示す。ステップ12は公知技術であり、詳細説明を省略す
る。上記各ステップは、記憶手段に格納されたデータを
参照しながら計算および処理を実行する手段によって実
現される。
【0034】図4は有限要素法による数値シミュレーシ
ョンの手順を示す図であり、単純化するため、線形定常
解析の場合の一例を示す。13は解析の前処理を行うステ
ップである。14は有限要素近似するための領域のメッシ
ュ分割を行うステップである。15は有限要素法によって
連立一次方程式を作成するステップを示す。16はその連
立一次方程式の数値解を計算するステップである。ステ
ップ16は図3に示す前処理付き共役勾配法系の解法で計
算される。
【0035】図5は有限要素分割の一例を示す。18は4
節点4辺形要素及び一部3節点3辺形要素での分割を示
す。19は分割した要素の節点番号を示す。
【0036】図6は、図5の有限要素分割で作成される
連立一次方程式の係数行列の非対角非ゼロ要素の記憶方
法の一例を示す。20は非ゼロ要素の列番号テーブルL
(N,ND)を示す。21は非ゼロ要素行列、波つきのA
(N,ND)、を示す。j=L(i,k)とするとき、
A(i,j)は密行列表示のai,jの要素を示す。22は
列番号インデックスで、この部分が空白の場合は対応す
る非ゼロ要素が存在しないことを示す。23は行列の非ゼ
ロ要素を示し、24は記憶領域は持つが値がゼロの要素を
示す。この形の非ゼロ要素行列、波つきのA(N,N
D)、を使用して図1に示す前処理行列Mを作成する。
【0037】本実施例において、前処理行列を不完全三
角分解でなく、(I−Ei),i=1,・・・,mの乗
算行列にしたのは、並列ベクトル計算機及び一部の超並
列計算機に良く適用できるようにするためである。不完
全三角分解を使用すると並列度は行列の次元数Nより大
幅に小さくなるが、本方式では常に次元数Nの並列度を
持つ。
【0038】非対角非ゼロ行列を絶対値の大きい順にソ
ートし、m個の部分行列E1,・・・,Emに分割し、前
処理行列を(I−Ei),i=1,2,・・・,mの乗
算で構成することにより、不完全三角分解の前処理と同
等か、それ以上の解の収束性を共役勾配法系の解法で得
ることができる。
【0039】また係数行列と右辺ベクトルのスケーリン
グに対角行列だけでなく非対角要素の行ごとの絶対値の
和を合わせて使用することにより、共役勾配法系の収束
を安定化させることができる。特に、対角優位性が大幅
に崩れた行列を係数とする場合に、従来収束しなかった
ものが収束するようになる。
【0040】また、前処理行列と係数行列がスケーリン
グした同じ値の要素を使用することで、主記憶容量を減
少させ、ワークステーションでも大次元行列が扱える。 (2)実施例2 図7は本実施例における共役勾配法系の計算に用いる前
処理行列Mの作成手順を示す図である。図8は差分法に
よる数値シミュレーションの手順を示す図である。図9
は3次元7点差分法における非ゼロ帯行列の構成を示す
図である。
【0041】図7は図3の前処理行列を作成するステッ
プ9の具体的な作成手順を示した図である。図3は図8
の連立一次方程式の数値解を計算するステップ43の具体
例を示した図となる。
【0042】図7の31は差分法で作成される連立一次方
程式の係数行列と右辺ベクトルを記憶手段に記憶するス
テップであり、係数行列Aは対角行列Dと非対角行列、
波つきのA、とに分けて記憶される。ここでは3次元7
点差分法で離散化した場合の例が示されている。2次元
5点差分法では、非対角非ゼロ要素帯行列は波つきのA
(N,4)となる。また周期境界条件がある場合は非対
角非ゼロ要素帯行列の本数が2又は4増加する。ここで
次元数はNとする。32は係数行列と右辺ベクトルをスケ
ーリングするための値を計算するステップである。いま
対角要素D(i),i=1,・・・,Nはすべて正とし
ておく。従来はこのスケーリングに1/D(i),i=
1,・・・,Nが使用されていたが、対角優位性が大き
く崩れた場合は解が収束しなくなる。このため、ここで
は各行の非対角要素の絶対値の和Ui,(i=1,・・
・,N)と対角要素D(i)(i=1,・・・,N)より計
算する方式を採用する。パラメータαは一般に4.0程度
に固定しておけばよい。但しそれでも収束しない場合に
αの値を変更できるようにしておく。33は係数行列と右
辺ベクトルのスケーリングを行うステップである。ステ
ップ32で計算したωiを乗算することでスケーリングを
行う。34は非対角行列要素をm個の部分行列A1,A2,
・・・,Amに分割するステップである。ここでは3次
元7点差分のため6個の部分行列A1,A2,・・・,A
6に分割している。35は部分行列A1,・・・,A6を使
用して前処理行列Mを作成するステップである。上記各
ステップは、記憶手段に格納されたデータを参照しなが
ら上記の計算及び処理を実行する手段によって実現され
る。
【0043】前処理付き共役勾配法の計算手順について
は、図3について上述した通りである。ステップ9は入
力された行列Aから前処理行列Mを作成するステップで
あり、この具体的手順が図7について上述したものであ
る。
【0044】図8は差分法における数値シミュレーショ
ンの手順を示す図であり、単純にするため線形定常解析
の場合の一例を示す。40は解析の前処理を行うステップ
である。41は差分近似するための領域の分割を行うステ
ップである。42は差分法によって連立一次方程式を作成
するステップを示す。43はその連立一次方程式の数値解
を計算するステップである。ステップ43は図3に示す前
処理付き共役勾配法系の解法で計算される。
【0045】図9は3次元7点差分法における非ゼロ帯
行列の構成を示す図である。45は非ゼロ帯行列の構成に
おける位置関係を示す。46は対角行列Dの位置を示す。
47は6本の非対角帯行列の位置を示す。48はこの行列が
次元数Nの行列であることを示す。
【0046】本実施例において、前処理行列を不完全三
角分解でなく(I−Ai),i=1,2,・・・,mの
乗算行列にしたのは、並列ベクトル計算機及び超並列計
算機に良く適用できるようにするためである。不完全三
角分解を使用すると、並列度は行列の次元数Nより大幅
に小さくなるが、本方式では常に次元数Nの並列度を有
す。また前処理行列を(I−Ai),i=1,2,・・
・,mの乗算で構成したことにより、従来、行われてい
たE=A1+A2+・・・+AmとしI−E+E2−E3
4・・・とするより共役勾配法系の収束性を向上さ
せ、不完全三角分解とほぼ同等の収束速度が得られる。
【0047】また係数行列と右辺ベクトルのスケーリン
グに対角行列だけでなく非対角要素の行ごとの絶対値の
和を合わせて使用することにより、共役勾配法系の収束
を安定化させることができる。特に、対角優位性が大幅
に崩れた行列を係数とする場合に、従来収束しなかった
ものが収束するようになる。
【0048】(3)実施例3 図10は本実施例における共役勾配法系の計算に用いる前
処理用不完全三角分解行列の作成手順を示す図である。
図11は3次元差分法における係数行列と不完全三角分解
行列の構成を示す図である。図12は前処理付き共役勾配
法系の計算手順を示す図である。図13は前処理方式の選
定処理の流れを示すフローチャートである。図14は別の
前処理付き共役勾配法系の計算手順を示す図である。
【0049】図10は図12の前処理行列を作成するステッ
プ57の具体的な作成手順の一例を示した図である。図13
は前処理方式の選定を行い結果をキーの値で示したもの
で、図14ではこのキーの値に従った前処理方式を利用し
た共役勾配法系の計算手順の一例を示したものである。
図8の43に示す連立一次方程式の数値解を計算するステ
ップはスカラ計算機のとき図12に示す計算方式で、並列
・ベクトル計算機のとき図14に示す計算方式を適用す
る。
【0050】図10の51は係数行列Aを不完全三角分解す
るための準備処理の一例を示すステップで、Uiで行列
各行の非対角要素の絶対値の和を計算し、ωiは不完全
三角分解するときに対角要素と見なす値を計算してい
る。ここでNは行列の次元数とし、Ui,ωiを除く記号
は図11で示した記号に対応する。diは対角要素を、
i,bi,ci,ei,fi,giは非対角要素を示す。ま
たdi>0としておく。52はGustafssonの提案した補正
方法に従って補正を行った不完全三角分解処理を行うス
テップである。従来は波つきのdi=1{di−・・・}
と計算していたものをここでは波つきのdi=1/{ωi
−・・・}と計算する方式を採用する。これにより係数
行列の性質が悪い(対角要素に対して非対角要素の絶対
値の和の値が大きい)場合でも収束が安定し、しかも、
補正係数αの値は行列の性質の悪さにかかわらず、α=
0.95程度に固定できる。さらに収束性を速めるには、次
元数に比例してαの値を大きくすればよい。但しαは1
より小さい値とする。またai,giは対角よりmだけ離
れ、bi,fiは対角よりlだけ離れ、ci,eiは対角よ
り1だけ離れた位置にあるものとする。ステップ52の計
算をベクトル計算機で行うときにはi=1,2,3,・
・・,Nの順序で計算せず、ハイパープレーン法と呼ば
れる方向に順序付けて計算すれば良く、その方式は概に
公知技術となっている。
【0051】図11の53は元の係数行列Aの非ゼロ要素位
置の構成を示したものであり、dは対角行列を、a,
b,c,e,f,gは非対角行列を示す。ai,bi,c
i,di,ei,fi,giは各行列のi行の要素を示すも
のである。54は不完全三角分解された下三角行列Lの非
ゼロ要素の位置構成を、55は対角行列Dを、56は上三角
行列Uの非ゼロ要素の位置構成を示す。ここで行列Aと
同じ記号a,b等は同じ値の行列であることを示し、波
つきのdだけが新たに計算される。
【0052】図12は前処理付きCGPM法(共役勾配最
小多項式法、Von der VorstのBi−CGSTAB法
(1990)と同様な計算手法)で連立一次方程式の解xを反
復計算して求める計算手順を示す図である。57は入力さ
れた行列Aから不完全三角分解行列LDUを作成するス
テップである。ステップ57の具体的手順は図10で示した
通りである。58は反復計算の前準備をするステップであ
る。ここでベクトルxは解の初期ベクトルで、分からな
い場合はオール・ゼロを入れておけばよい。ベクトルr
は残差ベクトルである。また(ベクトルr,ベクトル
r)はベクトルの内積計算を示し、結果はスカラ値とな
る。59は反復計算の制御を行うステップである。60は不
完全三角分解付きCGPM法の反復計算を実行するステ
ップであり、計算解はベクトルxに求まる。またq=
〔LDU〕~1・波つきのベクトルP、(波つきのベクト
ルP=A・波つきのベクトルP)は波つきのベクトルP
にLDU行列の逆行列を乗算するのではなく、一般に知
られている前進、後退代入計算を使用して波つきのベク
トルPからベクトルqを計算する。AとL,D,Uは次
元数Nの行列、ベクトルb,x,p,q,r,r0,e
およびvは次元数Nのベクトルを示し、それ以外の記号
はスカラを示す。
【0053】図13は前処理方式の選定処理の流れを示す
フローチャートで、KEY=0のとき前処理乗算行列M
の作成を示し、KEY=1のとき不完全三角分解LDU
を前処理として使用することを示す。61は対角要素di
と非対角要素の絶対値の和の比の最大値をSにセットす
るステップを示す。Sの値が小さいと行列の性質は良
く、大きいと悪いことを示す。62は非定常計算等で係数
行列Aが完全な対角優位行列となる場合、すなわちS≦
1−ε1のときKEY=0をセットするよう判定するス
テップである。一般にε1=0.1程度の値としておく。63
は係数行列Aの対角優位性が大きく崩れた場合、すなわ
ちS≧ε2のときKEY=1をセットするよう判定する
ステップである。一般にε2は2程度の値としておく。6
4は係数行列の性質が特別に良くも悪くもないとき、複
数のベクトル演算器が使用できるかどうかを判定するス
テップで、使用可能のときKEY=0を、一台しか使用
できない場合KEY=1をセットする。KEY=0をセ
ットした場合は複数のベクトル演算器を効率良く使用す
る前処理を選定する。
【0054】図14は二つの前処理手法のどちらかを選定
して、前処理付きCGPM法で連立一次方程式の解、ベ
クトルx、を反復計算して求める計算手順を示す図であ
る。67は図13に従ってKEYの値を設定するステップで
ある。68はKEY=0か1かにより異なった前処理を実
行するステップである。KEY=0のとき図7に示す手
順によって前処理行列Mを作成する。69は残差ベクトル
rを設定するステップで、ここでもKEY=0か1で処
理方式を変える。70は反復計算の前準備をするステップ
である。71は反復計算の制御を行うステップである。7
2,73,74及び75は前処理付きCGPM法の反復計算を
実行するステップであり、計算解はベクトルxに求ま
る。ステップ72と74はKEY=0か1により異なった計
算を行う。ステップ23と25は共通な計算を行う。AとM
及びL,D,Uは次元数Nの行列、ベクトルb,x,
p,q,r,r0,eおよびvは次元数Nのベクルを示
し、それ以外の記号はスカラとする。
【0055】図8は、すでに説明した通り、差分法にお
ける数値シミュレーションの計算手順を示す図である。
ステップ43はその連立一次方程式の数値解を計算するス
テップであり、この部分はスカラ計算機のとき図12に示
す計算手順で、並列ベクトル計算機のとき図14で示す計
算手順で計算する。
【0056】本実施例によれば、不完全三角分解付き共
役勾配法系の反復解法で、連立一次方程式の数値解を安
定に計算する効果を得る。特に対角優位性が大きく崩れ
た行列では従来の不完全三角分解では解が収束しないケ
ースが多発していたのをなくすことができる。またGus
tafsson流の補正における補正係数αを、行列の対角優
位性の良し悪しにかかわらずα=0.95程度に固定するこ
とで、100×100分割の2次元問題で3〜5倍の収束性の
向上ができる。さらにαを領域の分割数に比例して大き
くする(但しα<1.0)ことでさらに収束を速くするこ
とができる。
【0057】また複数台のベクトル演算器を持つスーパ
ーコンピュータにおいて、使用可能なベクトル演算器の
台数と係数行列の性質の良し悪しで二種類の前処理方式
を自動選定させ、連立一次方程式の数値解をより高速に
求めることができる。
【0058】
【発明の効果】本発明によれば、複数台のベクトル演算
器を有する計算機や並列処理計算機によく適用できるよ
うな連立一次方程式の前処理行列を作成できるため、こ
れらの計算機に関して連立一次方程式の数値解を高速に
求めることができる。
【0059】また、連立一次方程式の係数行列の性質が
悪条件であっても、その数値解の収束性を向上させるこ
とができる。
【図面の簡単な説明】
【図1】第1の実施例において共役勾配法系の計算手法
に用いる前処理行列Mの作成手順を示す図である。
【図2】前処理行列Mを構成する行列の具体的分割方法
を示す図である。
【図3】前処理付き共役勾配法系の計算手順を示す図で
ある。
【図4】有限要素法による数値シミュレーションの手順
を示す図である。
【図5】有限要素分割を示す図である。
【図6】図5に示す分割の結果作成される連立一次方程
式の係数行列の記憶方法を示す図である。
【図7】第2の実施例において共役勾配法系の計算手法
に用いる前処理行列Mの作成手順を示す図である。
【図8】差分法による数値シミュレーションの手順を示
す図である。
【図9】3次元7点差分法における非ゼロ帯行列の構成
を示す図である。
【図10】第3の実施例において共役勾配法系の計算手
法に用いる前処理行列Mの作成手順を示す図である。
【図11】3次元差分法における係数行列と不完全三角
分解行列の構成を示す図である。
【図12】前処理付き共役勾配法系の計算手順を示す図
である。
【図13】前処理方式の選定処理の流れを示すフローチ
ャートである。
【図14】別の前処理付き共役勾配法系の計算手順を示
す図である。
フロントページの続き (56)参考文献 特開 平3−28961(JP,A) 特開 平1−219951(JP,A) 特開 平1−125667(JP,A) 特開 昭63−127366(JP,A) 特開 昭63−95568(JP,A) 特開 昭62−172461(JP,A) 情報処理学会研究報告 Vol.93, No.89(1993−10−14)93−HPC− 49 pp.17−24 情報処理学会論文誌 Vol.27,N o.1(1986−1−10)pp.11−19 (58)調査した分野(Int.Cl.6,DB名) G06F 17/12 JICSTファイル(JOIS)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】疎行列を係数行列とする連立1次方程式の
    解を計算する装置であり、 前記係数行列のゼロでない要素を格納する記憶手段と、 前記記憶手段に格納された係数行列の各行について、非
    対角要素値の絶対値の和または対角要素の値のいづれか
    大きいほうの値と対角要素の値との平均で前記係数行列
    の各要素をスケーリングするスケーリング手段と、 前記スケーリング手段によりスケーリングされた前記係
    数行列の対角要素を除く要素に対して、各行ごとに要素
    の値の絶対値が降順に並ぶようにソートするソート手段
    と、前記ソート手段によりソートされた前記係数行列を
    任意の列で分割し、m個の部分行列E1、E2…Emに
    分割する分割手段と、 前記分割手段により分割された前記部分行列の各々を単
    位行列Iから減算した結果を(I‐E1)×(I‐E
    2)×……×(I‐Em)の形式で乗算する演算手段
    と、前記乗算する演算手段によって得られた行列Mを複
    数行単位で分割し並列計算機の各プロセッサに割り当て
    る割り当て手段とを備えることを特徴とする連立1次方
    程式の解を計算する装置。
  2. 【請求項2】疎行列を係数行列とする連立1次方程式の
    解を計算する装置であり、 前記係数行列のゼロでない要素を格納する記憶手段と、 前記記憶手段に格納された係数行列の各行について、非
    対角要素値の絶対値の和または対角要素の値のいづれか
    大きいほうの値と対角要素の値との平均で前記係数行列
    の各要素をスケーリングするスケーリング手段と、 前記スケーリング手段によりスケーリングされた前記係
    数行列を1列単位に分割し、m個の部分行列A1、A2
    …Amに分割する分割手段と、 前記分割手段により分割された前記部分行列の各々を単
    位行列Iから減算した結果を(I‐A1)×(I‐A
    2)×……×(I‐Am)の形式で乗算する演算手段
    と、前記乗算する演算手段によって得られた行列Mを複
    数行単位で分割し並列計算機の各プロセッサに割り当て
    る割り当て手段とを備えることを特徴とする連立1次方
    程式の解を計算する装置。
  3. 【請求項3】前記疎行列を係数行列とする連立1次方程
    式の解を計算する装置において、 対角要素の値及び非対角要素の絶対値の和から、係数行
    列の対角優位性を判定する判定手段と、 前記係数行列が対角優位であった場合に請求項1及び請
    求項2に示す連立1次方程式解法装置を選択し、前記係数
    行列が対角優位でなかった場合に不完全LU分解を前処理
    行列として使用する連立1次方程式解法装置とを選択す
    る選択手段を備えることを特徴とする連立1次方程式解
    法装置。
  4. 【請求項4】前記疎行列を係数行列とする連立1次方程
    式の解を計算する装置において、 複数個の演算器を利用できるか否かを判定する判定手段
    と、 前記複数個のベクトル計算機を使用できる場合に請求項
    1及び請求項2に示す連立1次方程式解法装置を使用し、
    単一のベクトル演算器しか使用できない場合に不完全LU
    分解を前処理行列として使用する連立1次方程式解法装
    置を選択する選択手段を備えることを特徴とする連立1
    次方程式解法装置。
JP3239260A 1991-09-19 1991-09-19 連立一次方程式に関する計算装置 Expired - Fee Related JP2956800B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3239260A JP2956800B2 (ja) 1991-09-19 1991-09-19 連立一次方程式に関する計算装置
US07/947,801 US5604911A (en) 1991-09-19 1992-09-21 Method of and apparatus for preconditioning of a coefficient matrix of simultaneous linear equations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3239260A JP2956800B2 (ja) 1991-09-19 1991-09-19 連立一次方程式に関する計算装置

Publications (2)

Publication Number Publication Date
JPH0581310A JPH0581310A (ja) 1993-04-02
JP2956800B2 true JP2956800B2 (ja) 1999-10-04

Family

ID=17042120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3239260A Expired - Fee Related JP2956800B2 (ja) 1991-09-19 1991-09-19 連立一次方程式に関する計算装置

Country Status (2)

Country Link
US (1) US5604911A (ja)
JP (1) JP2956800B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639323B2 (ja) * 1994-03-31 2005-04-20 富士通株式会社 メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機
US6078938A (en) * 1996-05-29 2000-06-20 Motorola, Inc. Method and system for solving linear systems
US6182270B1 (en) * 1996-12-04 2001-01-30 Lucent Technologies Inc. Low-displacement rank preconditioners for simplified non-linear analysis of circuits and other devices
US5844821A (en) * 1997-04-29 1998-12-01 Lucent Technologies Inc. Systems and methods for determining characteristics of a singular circuit
TW388921B (en) * 1997-11-28 2000-05-01 Nippon Electric Co Semiconductor process device simulation method and storage medium storing simulation program
US6154716A (en) * 1998-07-29 2000-11-28 Lucent Technologies - Inc. System and method for simulating electronic circuits
JP3154406B2 (ja) * 1998-11-02 2001-04-09 日本電気株式会社 シミュレーション方法および記録媒体
US6810370B1 (en) * 1999-03-31 2004-10-26 Exxonmobil Upstream Research Company Method for simulation characteristic of a physical system
JP3768375B2 (ja) * 2000-04-04 2006-04-19 Necエレクトロニクス株式会社 計算装置および電子回路シミュレーション装置
US7006951B2 (en) * 2000-06-29 2006-02-28 Object Reservoir, Inc. Method for solving finite element models using time slabbing
US7369973B2 (en) 2000-06-29 2008-05-06 Object Reservoir, Inc. Method and system for representing reservoir systems
JP3827941B2 (ja) * 2000-11-16 2006-09-27 株式会社日立製作所 連立一次方程式求解方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP3809062B2 (ja) * 2000-11-21 2006-08-16 富士通株式会社 マルチレベル不完全ブロック分解による前処理を行う処理装置
JP3639206B2 (ja) * 2000-11-24 2005-04-20 富士通株式会社 共有メモリ型スカラ並列計算機における並列行列処理方法、及び記録媒体
US20030149962A1 (en) * 2001-11-21 2003-08-07 Willis John Christopher Simulation of designs using programmable processors and electronically re-configurable logic arrays
US7328195B2 (en) * 2001-11-21 2008-02-05 Ftl Systems, Inc. Semi-automatic generation of behavior models continuous value using iterative probing of a device or existing component model
US20030182518A1 (en) * 2002-03-22 2003-09-25 Fujitsu Limited Parallel processing method for inverse matrix for shared memory type scalar parallel computer
GB0208329D0 (en) * 2002-04-11 2002-05-22 Univ York Data processing particularly in communication systems
US20040236806A1 (en) * 2002-06-24 2004-11-25 Turner James D. Method, apparatus and articles of manufacture for computing the sensitivity partial derivatives of linked mechanical systems
US7418370B2 (en) * 2004-03-31 2008-08-26 International Business Machines Corporation Method, apparatus and computer program providing broadband preconditioning based on reduced coupling for numerical solvers
CN100489558C (zh) * 2004-06-07 2009-05-20 埃克森美孚上游研究公司 用于求解隐式储层仿真矩阵的方法
US20070255778A1 (en) * 2006-04-27 2007-11-01 Jean-Paul Theis Software method for solving systems of linear equations having integer variables
WO2008026261A1 (fr) 2006-08-30 2008-03-06 Fujitsu Limited Procédé de traitement de calcul haute vitesse d'une équation de combinaison à base d'un procédé à éléments finis et d'un procédé à éléments limites
US20080120357A1 (en) * 2006-11-22 2008-05-22 Jean-Paul Theis Software method for solving systems of linear equations having integer variables
WO2009008086A1 (ja) * 2007-07-12 2009-01-15 Fujitsu Limited 計算装置、計算方法および計算プログラム
BRPI0820870A2 (pt) 2007-12-13 2015-06-16 Exxonmobil Upstream Res Co Método para simular um modelo de reservatório.
US8175853B2 (en) * 2008-03-28 2012-05-08 International Business Machines Corporation Systems and methods for a combined matrix-vector and matrix transpose vector multiply for a block-sparse matrix
US8306798B2 (en) * 2008-12-24 2012-11-06 Intel Corporation Fluid dynamics simulator
US9176928B2 (en) * 2009-07-07 2015-11-03 L3 Communication Integrated Systems, L.P. System for convergence evaluation for stationary method iterative linear solvers
US8577949B2 (en) * 2009-07-07 2013-11-05 L-3 Communications Integrated Systems, L.P. System for conjugate gradient linear iterative solvers
US8712738B2 (en) * 2010-04-30 2014-04-29 International Business Machines Corporation Determining ill conditioning in square linear system of equations
WO2014104093A1 (ja) * 2012-12-28 2014-07-03 株式会社村田製作所 連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム
US10242136B2 (en) * 2015-05-20 2019-03-26 Saudi Arabian Oil Company Parallel solution for fully-coupled fully-implicit wellbore modeling in reservoir simulation
CN106997333B (zh) * 2016-01-22 2020-07-28 阿里巴巴集团控股有限公司 逻辑回归梯度的计算方法和装置
CN113609720B (zh) * 2021-07-07 2022-10-25 广州中望龙腾软件股份有限公司 一种有限元分析的主从自由度处理方法、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4697247A (en) * 1983-06-10 1987-09-29 Hughes Aircraft Company Method of performing matrix by matrix multiplication
US4787057A (en) * 1986-06-04 1988-11-22 General Electric Company Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements
US5301342A (en) * 1990-12-20 1994-04-05 Intel Corporation Parallel processing computer for solving dense systems of linear equations by factoring rows, columns, and diagonal, inverting the diagonal, forward eliminating, and back substituting

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
情報処理学会研究報告 Vol.93,No.89(1993−10−14)93−HPC−49 pp.17−24
情報処理学会論文誌 Vol.27,No.1(1986−1−10)pp.11−19

Also Published As

Publication number Publication date
JPH0581310A (ja) 1993-04-02
US5604911A (en) 1997-02-18

Similar Documents

Publication Publication Date Title
JP2956800B2 (ja) 連立一次方程式に関する計算装置
Krishnan et al. Efficient preconditioning of laplacian matrices for computer graphics
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
US7933752B2 (en) Method, apparatus and computer program providing broadband preconditioning based on a reduced coupling for numerical solvers
KR20190062303A (ko) 폴드된 특징 데이터에 대한 컨볼루션 연산을 수행하기 위한 방법 및 장치
JP2017130036A (ja) 情報処理装置、演算方法、および演算プログラム
WO2010109359A2 (en) Processing of linear systems of equations
KR101990735B1 (ko) 사전 그래프 분할 기반 행렬 벡터 곱을 이용한 대규모 그래프 마이닝 방법 및 장치
Xu et al. Towards a scalable hierarchical high-order CFD solver
JP2024028901A (ja) ハードウェアにおけるスパース行列乗算
Oliker et al. Parallel implementation of an adaptive scheme for 3D unstructured grids on the SP2
Merkel et al. Iterative solution of large-scale 3D-BEM industrial problems
JP3809062B2 (ja) マルチレベル不完全ブロック分解による前処理を行う処理装置
Rauber et al. Algorithms for Systems of Linear Equations
JP2007133710A (ja) 連立一次方程式反復解法における前処理方法および行列リオーダリング方法
Penzl A cyclic low rank Smith method for large, sparse Lyapunov equations with applications in model reduction and optimal control
Bar-On et al. A fast parallel Cholesky decomposition algorithm for tridiagonal symmetric matrices
JPH06119368A (ja) 緩和法による連立方程式解析計算機
JP3300388B2 (ja) 並列プロセス生成方法
Bevilacqua et al. Orthogonal iterations on Structured Pencils
Nepomniaschaya et al. Associative parallel algorithm of checking spanning trees for optimality
Torun et al. Enhancing Block Cimmino for Sparse Linear Systems with Dense Columns via Schur Complement
Lau Numerical solution of skew-symmetric linear systems
CN116702857A (zh) 计算机可读记录介质、机器学习方法和信息处理设备
JPH07325806A (ja) マルチプロセッサシステムのプロセス割当方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070723

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080723

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080723

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090723

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090723

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100723

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees