JP2001290796A - 行列リオーダリング方法及び装置並びに電子回路シミュレーション方法及び装置 - Google Patents
行列リオーダリング方法及び装置並びに電子回路シミュレーション方法及び装置Info
- Publication number
- JP2001290796A JP2001290796A JP2000102163A JP2000102163A JP2001290796A JP 2001290796 A JP2001290796 A JP 2001290796A JP 2000102163 A JP2000102163 A JP 2000102163A JP 2000102163 A JP2000102163 A JP 2000102163A JP 2001290796 A JP2001290796 A JP 2001290796A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- row
- column
- pivot
- order
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
Abstract
列実行する場合に、従来に比べガウス消去処理の高速化
を図る。 【解決手段】ガウス消去法を電子計算機によって並列実
行して解を求める線形連立方程式の係数に対応する構造
を有する係数行列の行列順序を決定する行列リオーダリ
ングを行う際に、N行×N列の係数行列中の第i番目
(iは1〜N)から第N番目までのピボットにおける非
ゼロの要素の数に対応する次数degが、最小値mindegに
所定の値α(αは1〜3)を加えたもの以下であって、
かつ、第i番目から第N番目までのピボットのうちでク
リティカルパス長が最小の第p番目のピボットを求め
(S306)、第pピボットと第iピボットを入れ替え
る処理を行う(S308)。これを繰り返してすべての
ピボットの入れ替えを行うことで行列のリオーダリング
を終了する(S304〜S316)。
Description
係数行列の行列順序を決定する際に用いて好適な行列リ
オーダリング方法及び装置、並びにそれを用いた電子回
路シミュレーション方法及び装置に関する。
ュレーション方法には、システムを構成する複数の要素
を線形連立方程式として記述し、これを繰り返し解くこ
とで、システムの動作を解析するものがある。このよう
なシミュレーション方法において、線形連立方程式の解
を求める方法の1つとしてよく利用されるものにガウス
消去法がある。ガウス消去法では、n元1次連立方程式
の各係数で構成される係数行列と定数項とを横に並べた
形のn行n+1列の行列を、上三角行列に変換する前進
消去処理と、変換した行列の最下行から順次解を求める
後退代入処理とによって、解が求められるようになって
いる。ここで、連立方程式の各係数で構成される係数行
列内の各要素すなわち各元(特に非ゼロの元)を、所定
の方法であらかじめ整理すること(行列リオーダリング
あるいは行列オーダリングすること)で、解を求める際
に必要となる乗算や除算の回数を減らすことができるこ
とが知られている。
テム等において用いられる従来の行列リオーダリング部
の処理の流れを示す流れ図である。一般に、従来の行列
リオーダリングにおいては、「最小次数法」と呼ばれて
いる方法が採用されている(小国力編著、「行列計算ソ
フトウェア」、丸善株式会社等参照)。図14におい
て、N行×N列の係数行列のリオーダリングを行う場
合、変数iに1を代入した後(S101)、次に、与え
られた係数行列のうちまだ順番が決定されていないピボ
ットの中から最小次数のピボットを一つ選択し、その番
号を変数pに代入する(S102)。ここで、第k番目
のピボットとは、第k行の各元と第k列の各元をまとめ
て指すものであり(kは1〜Nの整数)、次数とはピボ
ット内の対角線上の要素を除き、対角線よりも列方向で
下側または行方向で右側にある非ゼロ要素の個数を示
し、そして、最小次数のピボットとは、i番目以降のピ
ボットの次数で最小のものを有するピボットを指してい
る。次に、選択した第p番目のピボットと第i番目のピ
ボットとを交換することによって、第i番目のピボット
を決定し(S103)、第iピボットに対するガウス消
去処理を行った時に発生する非ゼロ要素を係数行列に追
加する(S104)。ここで、第p番目のピボットと第
i番目のピボットの交換とは、第p行の各元と第i行の
各元をすべて交換するとともに、第p列の各元と第i列
の各元をすべて交換すること、つまり行と列を同時に入
替えることを意味する。これら一連の処理を、すべての
ピボットの順序が決定するまで繰り返す(S105,S
106)。「最小次数法」によれば、係数行列内で非ゼ
ロ要素がより少ないピボットがより上側へと整理される
ので、ガウス消去における乗算や除算の演算の総数を減
少させることが可能となる。
うな従来の行列リオーダリング方法によって整理した係
数行列を用いて、複数のプロセッサを用いてガウス消去
処理を並列実行する場合、単独のプロセッサで逐次実行
した場合と比べて十分に高速化されないことがある。ガ
ウス消去処理では、ある行の演算を行う場合に、他の行
の演算結果を使用(参照)することになる。したがっ
て、ガウス消去処理を並列実行する場合に、演算処理を
行単位で複数のプロセッサに分けて並列処理するときに
は、演算の総数を減少させることと共に、各行の演算数
と、各行で参照する他の行およびさらにその行で参照さ
れる他の行での演算数とを加えたものを減少させること
を考慮することが、高速化を図る上での重要な課題とな
る。しかしながら従来の行列リオーダリング方法では、
ガウス消去処理における総演算数の低減のみを行ってい
たため、ガウス消去処理を並列実行した場合に、必ずし
も並列実行による高速化の効果を得ることはできなかっ
た。
去処理を複数のプロセッサを用いて並列実行する場合
に、従来に比べてガウス消去処理の高速化を図ることが
できる係数行列を生成する行列リオーダリング方法及び
装置並びに電子回路シミュレーション方法及び装置を提
供することを目的とする。
め、請求項1記載の発明は、ガウス消去法を電子計算機
によって並列実行して解を求める線形連立方程式の係数
に対応する構造を有する係数行列の行列順序を決定する
行列リオーダリング方法であって、係数行列中の非ゼロ
の要素の数と、ガウス消去法における累積的な処理時間
に対応する値とに基づいて、第1の行及び列と、入れ替
えるべき第2の行及び列を決定する第1の過程と、第1
の過程で決定された第1の行及び列と第2の行及び列と
を入れ替える第2の過程とを有することを特徴とする。
請求項2記載の発明は、ガウス消去法を電子計算機によ
って並列実行して解を求める線形連立方程式の係数に対
応する構造を有する係数行列の行列順序を決定する行列
リオーダリング方法であって、係数行列中の非ゼロの要
素の数と、ガウス消去法におけるクリティカルパスの長
さに基づいて、第1の行及び列と、入れ替えるべき第2
の行及び列を決定する第1の過程と、第1の過程で決定
された第1の行及び列と第2の行及び列とを入れ替える
第2の過程とを有することを特徴とする。請求項3記載
の発明は、入れ替える行列の対称性に基づいて行列順序
を入れ替える第3の過程と、所定の条件で、前記第1及
び第2の過程による行列順序の入れ替えと、第3の過程
による行列順序の入れ替えとを選択する第4の過程とを
さらに有することを特徴とする。請求項4記載の発明
は、前記係数行列が非対称な構造を有する場合に、前記
第3の過程に対して、行列の構造を対称にする変換を行
った後、入れ替えるべき行列を供給する第5の過程をさ
らに有することを特徴とする。
子計算機によって並列実行して解を求める線形連立方程
式の係数に対応する構造を有する係数行列の行列順序を
決定する行列リオーダリング装置であって、係数行列中
の非ゼロの要素の数と、ガウス消去法における累積的な
処理時間に対応する値とに基づいて、第1の行及び列
と、入れ替えるべき第2の行及び列を決定する第1の手
段と、第1の手段によって決定された第1の行及び列と
第2の行及び列とを入れ替える第2の手段とを備えるこ
とを特徴とする。請求項6記載の発明は、ガウス消去法
を電子計算機によって並列実行して解を求める線形連立
方程式の係数に対応する構造を有する係数行列の行列順
序を決定する行列リオーダリング装置であって、係数行
列中の非ゼロの要素の数と、ガウス消去法におけるクリ
ティカルパスの長さに基づいて、第1の行及び列と、入
れ替えるべき第2の行及び列を決定する第1の手段と、
第1の手段によって決定された第1の行及び列と第2の
行及び列とを入れ替える第2の手段とを備えることを特
徴とする。請求項7記載の発明は、電子回路に基づいて
作成された線形連立方程式を解く過程を含んで電子回路
のシミュレーションを行う電子回路シミュレーション方
法において、請求項1〜4のいずれか1項に記載の行列
リオーダリング方法によって係数行列の行列順序を決定
し、その行列順序を決定した線形連立方程式に対して、
ガウス消去法を並列実行することで解を求める過程を有
することを特徴とする。請求項8記載の発明は、電子回
路に基づいて作成された線形連立方程式を解く手段を有
して電子回路のシミュレーションを行う電子回路シミュ
レーション装置において、請求項5又は6項に記載の行
列リオーダリング装置によって係数行列の行列順序を決
定し、その行列順序を決定した線形連立方程式に対し
て、ガウス消去法を並列実行することで解を求める手段
を備えることを特徴とする。
る行列リオーダリング方法およびそれを用いるシミュレ
ーション方法の実施形態の一例について説明する。図1
は、本発明を電子回路のシミュレーションシステムに適
用する場合の電子回路シミュレーション方法の全体の処
理の流れを示す流れ図である。本実施の形態における電
子回路のシミュレーションシステムは、線形連立方程式
を解く過程を複数のプロセッサを並列稼働することによ
って行う電子計算機と、その電子計算機によって実行さ
れるソフトウェアプログラムとによって実現されている
ものとする。また、そのプログラムはコンピュータ読み
とり可能な記録媒体あるいはネットワークを介して頒布
することが可能である。
示す回路記述を、所定の入力装置から入力する(S20
1)。次に、入力された回路記述に基づいて、回路を構
成する各電子素子を示す線形方程式(1次方程式)を、
全素子に対応する連立方程式として構成する。そして、
連立方程式の各変数の係数のうち、非ゼロである要素の
位置を、行列Aに登録する(S202)。ここで、行列
Aは、電子回路に対応する連立方程式がN元線形連立方
程式である場合に、N行×N列型の行列となる。ステッ
プS202では、この行列Aの各元(各要素)に、連立
方程式の対応する係数が設定される。次に、行列リオー
ダリング処理ステップ(S203)では、行列A内の各
要素の値を示す行列構造情報を用いて、行列Aの行の順
序と列の順序を入替えることによって、ステップS20
6の線形連立方程式の求解処理の処理時間が最小となる
ように行列順序を決定する。一般には、行列の第i行と
第i列をまとめて第iピボットと呼ぶが、ここでは、こ
のピボットを交換する処理を行う。つまり行と列を同時
に入替えることによって行列順序を変更する。
最適な時間刻み幅Δtを求め、次のタイムポイントtn+
1を、現在の時刻tnからΔtだけ進めた(tn+1=tn+
Δt)として決定する(S204)。そして、ステップ
S203で並べ替えが終了した行列Aの行列構造情報
(行と列の順序)に基づき、その時刻における各素子の
非線形特性を線形化してニュートン方程式(線形連立方
程式)を作成する(S205)。
トン方程式をガウス消去法を適用して解く処理を行う
(S206)。本実施形態では、このニュートン方程式
をガウス消去法を適用して解く処理を、複数のプロセッ
サを並列動作させることによって行う。次に、解が収束
したかどうかを判定し(S207)、収束しなかった場
合には、ステップS205へ戻って再度ニュートン方程
式を作成し直してステップS206の求解処理を行う。
一方、ステップS207で解が収束した場合には、時刻
tnが最終時刻に達したかどうかを判定し(S20
8)、達したとき(tn≧最終時刻の場合)には計算結
果を出力して処理を終了し、まだ達していないときには
現在の時刻tnをtn+1に更新した後、ステップS204
へ戻って、上述したステップS204〜S207の処理
を繰り返し実行する。
ション方法については、例えば、特開平10−1147
5号公報「回路シミュレーション方法」、特開平7−1
29637号公報「回路シミュレーション方法」等に記
載されている。
は、連立方程式の変数を一つずつ消去していく過程とみ
なすことができる。変数1つを消去する処理を1つのタ
スクとして定義すると、各タスクの間には実行順序の制
約がある。この制約は、例えば図11に示すような「タ
スクグラフ」と呼ばれる有向グラフによって示すことが
できる。図11に示す「タスクグラフ」では、「タスク
iはタスクjの終了後に実行しなければならない」とい
う制約を、「頂点jから頂点iに向かう辺がある」こと
で表現している。図11において、頂点とは、番号(数
字)を丸で囲ったものであり、辺は矢印で示している。
また、タスクiの「処理に要する時間」を頂点iの「重
み」として与えている。頂点の横の数字が頂点の「重
み」を表している。
間は、このタスクグラフ内の任意の頂点から任意の頂点
への経路のうち最も長い経路(クリティカルパス)の長
さで決まる。ここでいう「長さ」とは、「経路に含まれ
るすべての頂点の重みの総和」である。したがって、本
実施の形態が特徴とする行列リオーダリング処理(S2
03)では、このクリティカルパスをできるだけ短くす
るように行列のリオーダリングを行う。
グ処理を説明するのに必要な「行列グラフ」、「ピボッ
トの次数」、および「ピボットのクリティカルパス」に
ついて説明する。「行列グラフ」とは、行列Aの第i
行、第j列の要素a(i,j)がゼロでない時、および
その時に限って、頂点iと頂点jの間に辺があるような
無向グラフである。例えば、図6の行列の行列グラフは
図7のようになる。グラフの頂点に繋がる辺の数は、一
般に「次数」と呼ばれるが、行列グラフの頂点は行列の
ピボットに対応することから、頂点の次数を「ピボット
の次数」とも呼ぶ。なお、図6において、×印と○印は
非ゼロ要素を示し、対角線上に配置された○印で示す非
ゼロ要素内の番号はリオーダリング前のピボットの番号
を示している。また、空白はゼロ要素を示し、記号
「F」はガウス消去処理(S206)において各ピボッ
トの消去処理を行う際に追加される非ゼロ要素を示して
いる。
ング処理の途中で、1番目からi番目までのピボットの
みの順序が決定され、i+1番目からN番目までのピボ
ットの順序は決定されていない時、ガウス消去処理では
1番目からi番日の変数の消去処理は可能であり、した
がってタスク1からタスクiのi個のタスクからなるタ
スクグラフを作成することができる。このタスクグラフ
内のタスクkに至る任意の経路のうちで最長のものを
「タスクkのクリティカルパス」と呼び、これを「第k
番目のピボットのクリティカルパス」とも呼ぶことにす
る。また、タスクkのクリティカルパスに含まれるすべ
ての頂点の重みの総和をタスクkあるいはピボットkの
「クリティカルパス長」と呼ぶことにする。
ョンの流れ図における処理(S203)である行列リオ
ーダリング処理の一例を示す流れ図である。まず、変数
iに1を代入するとともに、変数Nに行列Aの行列サイ
ズを代入する(S300)。次に、全ての変数k(1≦
k≦N)について、配列変数len(k)をlen
(k):=0と初期化する(S302)。ここで、配列
変数len(k)は、各時点で変化するピボットkのク
リティカルパス長を記憶する変数である。次に、第i番
目から第N番目のピボットの次数のうち、最小の次数m
indegを求める(S304)。次に、第i番目から
第N番目のピボットのうち、次数がmindeg+α以
下でかつクリティカルパス長が最小のピボットpを求め
る(S306)。ここで、αは0以上の所定の定数値で
あり、例えばαの推奨値は1から3の値となる。すなわ
ち、ステップS306では、次数が最小値mindeg
から所定の範囲内にある近最小次数を有する1または複
数のピボットのうちで、最もクリティカルパス長の小さ
い1つの第p番目のピボットを求めることになる。そし
て、第pピボットと第iピボットを入れ替える処理が行
われる(S308)。
理で値が更新される全ての要素eについて、要素eが属
するピボットjのクリティカルパス長len(j)を、
len(j):=max{len(i)+w(i),l
en(j)}となるように更新する(S310)。すな
わち、ステップS310では、ステップS308で第p
ピボットと第iピボットを入れ替えたことに影響される
他のピボットのクリティカルパス長が最新の値に更新さ
れる。ここで、max(x,y)は変数x、yのうちで
大きい方の値を示す関数であり、w(i)はピボットi
の「重み」を与える関数である。そして、第iピボット
の消去処理で発生する非ゼロ要素を係数行列Aに追加す
る(S312)。次に、変数iに1を加えることで更新
し(S314)、変数iが変数Nを越えているかどうか
を判定して(S316)、Nを越えるまでステップS3
04〜S312の処理を繰り返し行う。以上の処理で、
N×Nの行列Aすべてのピボットに対するリオーダリン
グの処理が終了する。
iの「重み」(処理に要する時間)を与える関数である
と説明したが、関数w(i)は、図1におけるガウス消
去法(S206)において、そのピボットiを消去する
際に行われる例えば乗算および除算の数を加えたものに
対応する値を得るものとして定義することができる。例
えば、ガウス消去処理を図5に示すようなプログラムで
行う場合、k番目の変数を消去する処理では、重みw
(k)が、(deg(k)+1)・deg(k)、すな
わち第kピボットの次数(=deg(k))に1を加え
たものに次数(deg(k))を掛けたものに対応する
値(w(i)=(deg(i)+1)・deg(i))
として求めることができる。なお、ガウス消去処理を行
うためのプログラムの記述方法には、上記のもののほか
にも種々のものがあり、異なるものを用いる場合には、
上記の重みを求める関数w(i)も異なる記述による処
理時間を反映するように適宜変更する。
ップS304とステップS306の処理についてより詳
細に説明する。図3は、図2におけるステップS304
とステップS306の処理の流れを示す流れ図であり、
ステップS402〜S412がステップS304内の処
理に対応し、ステップS414〜S426がステップS
306内の処理に対応している。図3では、まず、最小
次数を記憶する変数mindegを初期化し(S40
2)、次に、変数jに変数iの値を設定する(S40
4)。そして、ステップS406〜S412の処理を、
変数jが変数Nに達するまで繰り返し行う。ステップS
406では、第j番目のピボットの次数deg(j)が
変数mindegより小さいか否かを判定し、小さい場
合には変数mindegを次数deg(j)で更新した
後(S408)、ステップS410で変数jをj:=j
+1によって1だけ増加させる。そして、ステップS4
12で変数jが変数Nより大きいか否かを判定し、大き
くない場合には再びステップ406以降の処理を実行す
る。以上の処理によって変数mindegに最小の次数
の値が格納される。
処理では、まず、最短クリティカルパス長を記憶する変
数minlenを初期化し(S414)、次に、変数j
に変数iの値を設定する(S416)。そして、ステッ
プS418〜S426の処理を、変数jが変数Nに達す
るまで繰り返し行う。ステップS418では、第j番目
のピボットの次数deg(j)が(変数mindeg+
α)より小さいか否かを判定し、小さい場合にはさらに
第j番目のピボットのクリティカルパス長len(j)
が変数minlenより小さいか否かを判定し(S42
0)、小さいときには変数minlenをクリティカル
パス長len(j)で更新するとともに、変数pに変数
jを代入する(S422)。そして、ステップS418
〜S422のいずれかの処理が終了した後、ステップS
424で変数jをj:=j+1によって1だけ増加させ
る。そして、ステップS426で変数jが変数Nより大
きいか否かを判定し、大きくない場合には再びステップ
418以降の処理を実行する。以上の処理によって、変
数pに第i番目から第N番目のピボットのうち、次数が
mindeg+α以下でかつクリティカルパス長が最小
のピボット番号が格納されるとともに、変数minle
nに最小のクリティカルパス長が格納される。
のステップS203)内の処理を図2に示す処理の流れ
に従って行う場合の具体的な動作について、図8〜図1
1を参照して説明する。なお、図8はシミュレーション
しようとする電子回路の例、図9は図8の電子回路に対
応する連立方程式の係数行列の例、図10は図9の行列
のリオーダリング後の行列の例、図11は図10に対応
するタスクグラフをそれぞれ示している。
D9からなる電子回路を考える場合、電子回路内の各ノ
ードN1〜N7の電圧等の値を変数とする線形連立方程
式の係数行列は、図9のように構成することができる。
この場合、図9の係数行列は、第i番目のピボットがi
番目のノード番号に対応するように構成されている。図
9では非ゼロ要素を×、ゼロ要素を空白で表現し、各要
素の数値は省略してある。数字を囲んだ丸も非ゼロ要素
を表しており、丸の中の番号は、リオーダリング前のピ
ボット番号を表す。第i変数のガウス消去処理(タスク
i)の重み(w(i))は、(第i番目のピボットの次
数+1)に(第i番目のピボットの次数)を掛けたもの
とする(w(i)=(deg(i)+1)・deg
(i))。以降では、α=0としたときの動作を説明す
る。
次数が最小(α=0なので最小となる)のピボットで、
かつそのピボットを第i番目のピボットと決定した時に
そのピボットのクリティカルパス長が最小となるピボッ
トを探す。図9において、第1ピボットと第7ピボット
の次数は1で最小であり、かつこれらのクリティカルパ
ス長はいずれも2で最小である。これらのうち番号の小
さい第1ピボットを選択し、p=1とする(S30
6)。i=pであるので、ステップS308でのピボッ
ト入れ替えは実際には行われない。また、第1ピボット
についてガウス消去処理を行っても新たな非ゼロ要素は
発生しない(S312)。
ていない行列部分に対して上記処理を繰り返す。最小次
数かつ最短クリティカルパスのピボットは第7ピボット
でありp=7となる。第2ピボットと第7ピボットが交
換される(S308)。新たな非ゼロ要素は発生しない
(S312)。
ィカルパスのピボットとしてp=3が選択される(次数
は2、クリティカルパス長は6)。第3ピボットを消去
すると新たな非ゼロ要素a(4,7),a(7,4)が
追加される(S312)。
ィカルパスのピボットとしてp=5が選択される(次数
は2、クリティカルパス長は6)。第5ピボットを消去
すると新たな非ゼロ要素a(4,6),a(6,4)が
追加される(S312)。
ィカルパスのピボットとしてp=4が選択される(次数
は2、クリティカルパス長は6+6=12)。第4ピボ
ットを消去するときに新たな非ゼロ要素は発生しない
(S312)。
ィカルパスのピボットとしてp=6が選択される(次数
は1、クリティカルパス長は6+6+2=14)。第6
ピボットを消去するときに新たな非ゼロ要素は発生しな
い(S312)。
が、図10に示すようにリオーダリングされる。また、
タスクグラフは図11に示すようになる。このとき、実
行順序が最も遅いタスク2の次数は0であり、クリティ
カルパス長は14であり、すべての重みの合計は24で
ある。
4)を図9の行列に適用すると、図15のような順序に
並び替えられ、対応するタスクグラフは図16のように
なる。この場合の実行順序が最も遅いタスク2のクリテ
ィカルパス長は20であり、すべての重みの合計は24
である。
(S203)において、図2および図3を参照して説明
したような、ピボットの近最小次数(近最小次数=最小
次数+α)と、クリティカルパス長とを考慮した行列の
リオーダリングを行うことによって、本実施形態では、
従来に比べて各タスクを複数のプロセッサによって並列
実行した場合の処理時間をより短縮することが可能とな
る。
203)の他の実施形態、すなわち図2に示す構成の変
形例について、図4を参照して説明する。図4は電子回
路シミュレーションの流れ図(図1)の処理ステップ
(S203)である行列リオーダリング処理の流れ図で
ある。おおまかには、図2ものと同様の近最小次数・最
短クリティカルパス法(S8)および従来の行列リオー
ダリング方法の1つであるネステッド・デイセクション
(nested dissection)法(S10)の2つのリオーダ
リング方法を選択可能な形で組み合わせたものとなって
いる。
による行列リオーダリング部(S8)は、変数iを1に
初期化した後(S1)、与えられた係数行列Aのうちま
だ順番が決定されていないピボットの中から近最小次数
(次数が最小次数+α以下、αの推奨値は1から3)か
つ最短クリティカルパスを持つピボット(番号p)を一
つ選択し(S2)、選択した第p番目のピボットと第i
番目のピボットとを交換することによって第i番目のピ
ボットを決定し(S3)、第iピボットに対するガウス
消去処理を行った時に発生する非ゼロ要素を係数行列A
に追加する(S4)。これら一連の処理を、第iピボッ
トの次数が定数βを超えるか(S5)、全てのピボット
の順序が決定する(S7)まで繰り返す。
法(S8)は、与えられた行列の平均次数が約3以下の
時には、ネステッド・ディセクション法よりもクリティ
カルパス長を短くすることができるが、平均次数がそれ
より大きくなると、得られるクリティカルパス長はネス
テッド・ディセクション法によるものより長くなってし
まう傾向がある。したがって、近最小次数・最短クリテ
ィカルパス法実行中に、選択されたピボットの次数が定
数β(βは自然数)より大きくなった場合には、ネステ
ッド・ディセクション法へと切り替える。βの値は3か
ら10の範囲が適当である。
8)による行列リオーダリング部の処理が終了してもま
だ全てのピボットの順序が決定されていない場合には、
係数行列A内のまだ消去されていない部分行列Rの行列
グラフを作成し(S9)、この行列グラフを用いてネス
テッド・ディセクション法により部分行列Rのみのリオ
ーダリングを行う(S10)。「ネステッド・ディセク
ション法」は、行列グラフの2分割を再帰的に繰り返
し、分割境界上の頂点に対応するピボットが最後にくる
ように順序付けを行う。すべてのピボットが順序付けら
れるまで、2分割を再帰的に繰り返す処理が行われる。
そして、部分行列Rに対するガウス消去処理で発生する
非ゼロ要素を係数行列Aに追加する処理を実行して(S
11)、係数行列Aの利オーダリングの処理が終了す
る。
のステップS203)内の処理を図4に示す処理の流れ
によって行う場合の具体的な動作について、図6〜図9
および図12、図13を参照して説明する。この場合
も、上記と同様に、図8に示すような9個の素子D1〜
D9からなる電子回路と、リオーダリングの対象として
図9に示すその線形連立方程式の係数行列を用いること
とする。第i変数のガウス消去処理(タスクi)の重み
(w(i))は、上記と同様に、(第i番目のピボット
の次数+1)に(第i番目のピボットの次数)を掛けた
ものとする。以降では、α=0、β=1としたときの動
作を説明する。
法(S8)において、まずi=1とし、次数が最小(α
=0なので最小となる)のピボットで、かつそのピボッ
トを第i番目のピボットと決定した時にそのピボットの
クリティカルパス長が最小となるピボットを探す。図9
において、第1ピボットと第7ピボットの次数は1で最
小であり、かつこれらのクリティカルパス長はいずれも
2で最小である。これらのうち番号の小さい第1ピボッ
トを選択し、p=1とする(S2)。i=pであるの
で、ステップS3でのピボット入れ替えは実際には行わ
れない。また、第1ピボットについてガウス消去処理を
行っても新たな非ゼロ要素は発生しない(S4)。
ていない行列部分に対して上記処理を繰り返す。最小次
数かつ最短クリティカルパスのピボットは第7ピボット
でありp=7となる。第2ピボットと第7ピボットが交
換される(S3)。新たな非ゼロ要素は発生しない(S
4)。
ィカルパスのピボットとしてp=3が選択される(次数
は2、クリティカルパス長は6)。第3ピボットを消去
すると新たな非ゼロ要素a(4,7),a(7,4)が
追加される。第3ピボットの次数は2でありβ=1より
大きいため、近最小次数・最短クリティカルパス法によ
るリオーダリングは終了される(S5)。
ていない部分の行列Rは図6のようになっており、この
行列グラフは図7のように生成される(S9)。ネステ
ッド・ディセクション法では、このグラフの2分割を行
い、分割境界上のノードに対応するピボットが最後にく
るように順序付けられる。すべてのピボットが順序付け
られるまで2分割が再帰的に繰り返されるが、この例の
場合は1度の2分割で十分であり、例えば頂点4と6が
分割境界P1上の頂点となり、5,2,4,6の順番で
順序付けられる。最終的に得られる行列は図12とな
り、この行列に対するガウス消去処理のタスクグラフは
図13のようになる。このタスクグラフの頂点の番号は
図12のピボット番号に対応している。このタスクグラ
フのクリティカルパス長は14である。図4に示す行列
リオーダリングの方法によっても、従来の行列リオーダ
リング(図14)に比べてクリティカルパス長が減少し
ていることがわかる。
行列リオーダリング(図1のステップS203)の処理
方法については、対称行列を対象とするものとして説明
を行ったが、非対称行列に適用する場合には、次のよう
な変更を行うようにすればよい。第1番目の変更点は、
図2および図4の処理に共通するものであり、クリティ
カルパス長の最小のピボットを選択する際の必要条件で
ある「次数deg(i)が所定の値(α)以下」という
条件を、次数deg(i)の代わりに、√{NZLC
(i)・NZUR(i)}をパラメータとして用いて、
「√{NZLC(i)・NZUR(i)}が所定の値
(α)以下」とする点である。ここで、NZLC(i)
は、図17に示すような対角線上の要素を含まない下三
角行列Lの第i列中の非ゼロ要素の数であり、NZUR
(i)は、同じく対角線上の要素を含まない上三角行列
Uの第i行中の非ゼロ要素の数である。
す本発明による近最小次数・最小クリティカルパス法
と、ネステッドディセクション法を組み合わせて所定の
条件に基づいて選択する場合の処理においてのみ適用さ
れる変更点である。図2に示す近最小次数・最小クリテ
ィカルパス法のみを用いる場合には、上記第1の変更点
のみで非対称行列に対応可能である。第2の変更点は、
図4に示す近最小次数・最小クリティカルパス法(S
8)と、ネステッドディセクション法(S10)との切
り替えを行う条件を、次数deg(i)>β(S5)に
代えて、第1の変更点と同様に、√{NZLC(i)・
NZUR(i)}>βと変更することである。そして、
第3の変更点は、ネステッドディセクション法(S1
0)を、非対称の行列Rの行列グラフにではなく、行列
(R+RT)のように対称行列に変換し後の行列(R+
RT)の行列グラフに適用することである。ここで、RT
は、行列R行と列を入れ替えた転置行列である。これら
の第2および第3の変更点を導入することで、図4に示
す処理を非対称行列に適用することができる。
理において、非対称行列のリオーダリングを行う場合に
は、あらかじめ、リオーダリングの対象となる非対称係
数行列Aとその転置行列ATとから対称行列(A+AT)
を作成して、これに対して、近最小次数・最小クリティ
カルパス法(S8)と、ネステッドディセクション法
(S10)とによる並べ替え行うようにすることもでき
る。
適用は、電子回路のシミュレーション方法に限定される
ものではなく、1次連立方程式をガウス消去法によって
並列実行して解く過程を含むデータ処理方法であれば、
それに適用することができる。
従来に比べて、ガウス消去処理のタスクグラフのクリテ
ィカルパス長を低減しているため、ガウス消去処理を並
列実行した際の実行時間を短縮することができる。
一実施形態を示す流れ図。
ける行列リオーダリング処理(S203)の流れの一実
施形態を示す流れ図。
れを示す流れ図。
ける行列リオーダリング処理(S203)の流れの他の
実施形態を示す流れ図。
記述したプログラムの一例を示す説明図。
図。
ラフ。
列を示す図。
グ処理(近最小次数・最小(最短)クリティカルパス
法)によってリオーダリングした後の行列を示す図。
てのタスクグラフ。
グ処理によってリオーダリングした後の行列を示す図。
てのタスクグラフ。
法)によるリオーダリング処理の流れを示す流れ図。
ーダリング処理によってリオーダリングした後の行列を
示す図。
てのタスクグラフ。
解処理
Claims (8)
- 【請求項1】 ガウス消去法を電子計算機によって並列
実行して解を求める線形連立方程式の係数に対応する構
造を有する係数行列の行列順序を決定する行列リオーダ
リング方法であって、 係数行列中の非ゼロの要素の数と、ガウス消去法におけ
る累積的な処理時間に対応する値とに基づいて、第1の
行及び列と、入れ替えるべき第2の行及び列を決定する
第1の過程と、 第1の過程で決定された第1の行及び列と第2の行及び
列とを入れ替える第2の過程とを有することを特徴とす
る行列リオーダリング方法。 - 【請求項2】 ガウス消去法を電子計算機によって並列
実行して解を求める線形連立方程式の係数に対応する構
造を有する係数行列の行列順序を決定する行列リオーダ
リング方法であって、 係数行列中の非ゼロの要素の数と、ガウス消去法におけ
るクリティカルパスの長さに基づいて、第1の行及び列
と、入れ替えるべき第2の行及び列を決定する第1の過
程と、 第1の過程で決定された第1の行及び列と第2の行及び
列とを入れ替える第2の過程とを有することを特徴とす
る行列リオーダリング方法。 - 【請求項3】 入れ替える行列の対称性に基づいて行列
順序を入れ替える第3の過程と、 所定の条件で、前記第1及び第2の過程による行列順序
の入れ替えと、第3の過程による行列順序の入れ替えと
を選択する第4の過程とをさらに有することを特徴とす
る請求項1又は2記載の行列リオーダリング方法。 - 【請求項4】 前記係数行列が非対称な構造を有する場
合に、前記第3の過程に対して、行列の構造を対称にす
る変換を行った後、入れ替えるべき行列を供給する第5
の過程をさらに有することを特徴とする請求項3記載の
行列リオーダリング方法。 - 【請求項5】 ガウス消去法を電子計算機によって並列
実行して解を求める線形連立方程式の係数に対応する構
造を有する係数行列の行列順序を決定する行列リオーダ
リング装置であって、 係数行列中の非ゼロの要素の数と、ガウス消去法におけ
る累積的な処理時間に対応する値とに基づいて、第1の
行及び列と、入れ替えるべき第2の行及び列を決定する
第1の手段と、 第1の手段によって決定された第1の行及び列と第2の
行及び列とを入れ替える第2の手段とを備えることを特
徴とする行列リオーダリング装置。 - 【請求項6】 ガウス消去法を電子計算機によって並列
実行して解を求める線形連立方程式の係数に対応する構
造を有する係数行列の行列順序を決定する行列リオーダ
リング装置であって、 係数行列中の非ゼロの要素の数と、ガウス消去法におけ
るクリティカルパスの長さに基づいて、第1の行及び列
と、入れ替えるべき第2の行及び列を決定する第1の手
段と、 第1の手段によって決定された第1の行及び列と第2の
行及び列とを入れ替える第2の手段とを備えることを特
徴とする行列リオーダリング装置。 - 【請求項7】 電子回路に基づいて作成された線形連立
方程式を解く過程を含んで電子回路のシミュレーション
を行う電子回路シミュレーション方法において、 請求項1〜4のいずれか1項に記載の行列リオーダリン
グ方法によって係数行列の行列順序を決定し、その行列
順序を決定した線形連立方程式に対して、ガウス消去法
を並列実行することで解を求める過程を有することを特
徴とする電子回路シミュレーション方法。 - 【請求項8】 電子回路に基づいて作成された線形連立
方程式を解く手段を有して電子回路のシミュレーション
を行う電子回路シミュレーション装置において、 請求項5又は6項に記載の行列リオーダリング装置によ
って係数行列の行列順序を決定し、その行列順序を決定
した線形連立方程式に対して、ガウス消去法を並列実行
することで解を求める手段を備えることを特徴とする電
子回路シミュレーション装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000102163A JP3768375B2 (ja) | 2000-04-04 | 2000-04-04 | 計算装置および電子回路シミュレーション装置 |
US09/822,512 US7089159B2 (en) | 2000-04-04 | 2001-04-02 | Method and apparatus for matrix reordering and electronic circuit simulation |
EP01108401A EP1143346A2 (en) | 2000-04-04 | 2001-04-03 | Method and apparatus for matrix reordering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000102163A JP3768375B2 (ja) | 2000-04-04 | 2000-04-04 | 計算装置および電子回路シミュレーション装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001290796A true JP2001290796A (ja) | 2001-10-19 |
JP3768375B2 JP3768375B2 (ja) | 2006-04-19 |
Family
ID=18616097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000102163A Expired - Fee Related JP3768375B2 (ja) | 2000-04-04 | 2000-04-04 | 計算装置および電子回路シミュレーション装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7089159B2 (ja) |
EP (1) | EP1143346A2 (ja) |
JP (1) | JP3768375B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015841A (ja) * | 2006-07-06 | 2008-01-24 | Nec Electronics Corp | 回路解析方法、及び回路解析プログラム、回路シミュレーション装置 |
KR100951857B1 (ko) * | 2007-12-17 | 2010-04-12 | 현대자동차주식회사 | 서열 알고리즘을 이용한 최적 경로 탐색 방법 |
WO2011002052A1 (ja) * | 2009-07-01 | 2011-01-06 | 株式会社多様性総合研究所 | タスクグラフ解析装置およびタスクグラフ解析プログラム |
JPWO2015178018A1 (ja) * | 2014-05-22 | 2017-04-20 | 日本電気株式会社 | 端末、パケット復号方法、および、プログラムが記憶された記憶媒体 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574333B2 (en) * | 2004-02-05 | 2009-08-11 | Honeywell International Inc. | Apparatus and method for modeling relationships between signals |
US7363200B2 (en) * | 2004-02-05 | 2008-04-22 | Honeywell International Inc. | Apparatus and method for isolating noise effects in a signal |
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 |
US7836451B2 (en) * | 2004-12-14 | 2010-11-16 | International Business Machines Corporation | Method, system and program product for approximating resource consumption of a computer system |
US7831976B2 (en) * | 2005-05-04 | 2010-11-09 | International Business Machines Corporation | Method, system and program product for predicting computer system resource consumption |
US7844441B2 (en) * | 2006-03-27 | 2010-11-30 | International Business Machines Corporation | Computer-implemented method, system and program product for approximating resource consumption of computer system |
US20070260151A1 (en) * | 2006-05-03 | 2007-11-08 | Clifford Gari D | Method and device for filtering, segmenting, compressing and classifying oscillatory signals |
US20080120357A1 (en) * | 2006-11-22 | 2008-05-22 | Jean-Paul Theis | Software method for solving systems of linear equations having integer variables |
US20080208553A1 (en) * | 2007-02-27 | 2008-08-28 | Fastrack Design, Inc. | Parallel circuit simulation techniques |
US10489482B1 (en) | 2018-06-01 | 2019-11-26 | Hewlett Packard Enterprise Development Lp | Gaussian elimination via a vector matrix multiplication accelerator |
US10802719B2 (en) * | 2018-06-11 | 2020-10-13 | Wipro Limited | Method and system for data compression and data storage optimization |
US11403024B2 (en) * | 2019-08-28 | 2022-08-02 | Cohesity, Inc. | Efficient restoration of content |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01143346A (ja) * | 1987-11-30 | 1989-06-05 | Hitachi Ltd | 半導体装置 |
JP2956800B2 (ja) * | 1991-09-19 | 1999-10-04 | 株式会社日立製作所 | 連立一次方程式に関する計算装置 |
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 |
JP2531429B2 (ja) | 1993-04-06 | 1996-09-04 | 日本電気株式会社 | 前処理付き反復解法方式 |
US5442569A (en) | 1993-06-23 | 1995-08-15 | Oceanautes Inc. | Method and apparatus for system characterization and analysis using finite element methods |
JPH07129637A (ja) | 1993-11-09 | 1995-05-19 | Hitachi Ltd | 回路シミュレーション方法 |
JPH08297654A (ja) | 1995-04-25 | 1996-11-12 | Hitachi Ltd | メッシュ節点オーダリング方法および装置 |
JPH0981610A (ja) * | 1995-09-12 | 1997-03-28 | Toshiba Corp | シミュレーション方法及びその装置 |
JP2830838B2 (ja) * | 1996-05-30 | 1998-12-02 | 日本電気株式会社 | 回路分割方法および装置 |
JP2976888B2 (ja) | 1996-06-27 | 1999-11-10 | 日本電気株式会社 | 回路シミュレーション方法 |
JP2959525B2 (ja) * | 1997-06-02 | 1999-10-06 | 日本電気株式会社 | データ処理装置および方法、情報記憶媒体 |
TW388921B (en) * | 1997-11-28 | 2000-05-01 | Nippon Electric Co | Semiconductor process device simulation method and storage medium storing simulation program |
JP3391262B2 (ja) | 1998-05-11 | 2003-03-31 | 日本電気株式会社 | 記号計算システム及び方法、並びに並列回路シミュレーションシステム |
JP3878345B2 (ja) * | 1998-12-01 | 2007-02-07 | 富士通株式会社 | シミュレーション装置及び方法並びにプログラム記録媒体 |
US6397236B1 (en) * | 1999-05-21 | 2002-05-28 | Sun Microsystems, Inc. | Hybrid technique for performing a column modification operation in a sparse symmetric direct matrix solver |
US6470368B1 (en) * | 1999-05-21 | 2002-10-22 | Sun Microsystems, Inc. | Using tiling to improve performance in a sparse symmetric direct matrix solver |
US6601080B1 (en) * | 2000-02-23 | 2003-07-29 | Sun Microsystems, Inc. | Hybrid representation scheme for factor L in sparse direct matrix factorization |
-
2000
- 2000-04-04 JP JP2000102163A patent/JP3768375B2/ja not_active Expired - Fee Related
-
2001
- 2001-04-02 US US09/822,512 patent/US7089159B2/en not_active Expired - Fee Related
- 2001-04-03 EP EP01108401A patent/EP1143346A2/en not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015841A (ja) * | 2006-07-06 | 2008-01-24 | Nec Electronics Corp | 回路解析方法、及び回路解析プログラム、回路シミュレーション装置 |
KR100951857B1 (ko) * | 2007-12-17 | 2010-04-12 | 현대자동차주식회사 | 서열 알고리즘을 이용한 최적 경로 탐색 방법 |
WO2011002052A1 (ja) * | 2009-07-01 | 2011-01-06 | 株式会社多様性総合研究所 | タスクグラフ解析装置およびタスクグラフ解析プログラム |
JPWO2015178018A1 (ja) * | 2014-05-22 | 2017-04-20 | 日本電気株式会社 | 端末、パケット復号方法、および、プログラムが記憶された記憶媒体 |
US10404288B2 (en) | 2014-05-22 | 2019-09-03 | Nec Corporation | Packet decoding device, packet decoding method, and storage medium in which program is stored |
Also Published As
Publication number | Publication date |
---|---|
US20010029441A1 (en) | 2001-10-11 |
EP1143346A2 (en) | 2001-10-10 |
JP3768375B2 (ja) | 2006-04-19 |
US7089159B2 (en) | 2006-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001290796A (ja) | 行列リオーダリング方法及び装置並びに電子回路シミュレーション方法及び装置 | |
JP4723740B2 (ja) | 密度一様化配置問題の最適解探索方法および密度一様化配置問題の最適解探索プログラム | |
JP2959525B2 (ja) | データ処理装置および方法、情報記憶媒体 | |
Nearchou | A novel metaheuristic approach for the flow shop scheduling problem | |
Kastner | Monte Carlo methods in statistical physics: Mathematical foundations and strategies | |
JP6874219B2 (ja) | 情報処理装置、演算装置、及び情報処理方法 | |
US7003745B2 (en) | Performance modeling for circuit design | |
CN111639780A (zh) | 优化装置和优化装置的控制方法 | |
Zohali et al. | The economic lot scheduling problem in limited-buffer flexible flow shops: Mathematical models and a discrete fruit fly algorithm | |
JP2020064535A (ja) | 最適化装置及び最適化装置の制御方法 | |
CN115146485B (zh) | 基于gpu加速的射频链路仿真方法 | |
US8176108B2 (en) | Method, apparatus and computer program product for network design and analysis | |
WO2019232447A1 (en) | Method and system for hierarchical circuit simulation using parallel processing | |
CN116052759A (zh) | 一种哈密顿量构造方法及相关装置 | |
Onwubolu et al. | New ideas and applications of scatter search and path relinking | |
JP5429164B2 (ja) | 有限オートマトン生成システム | |
JP2007004391A (ja) | 生産・物流スケジュール作成装置及び方法、生産・物流プロセス制御装置及び方法、コンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 | |
JP7398401B2 (ja) | 最適化方法、情報処理装置及びそれを用いたシステム | |
JP7357795B2 (ja) | 情報処理方法および情報処理システム | |
JP2803630B2 (ja) | 図形処理方法および装置 | |
Spence et al. | Coupling random inputs for parameter estimation in complex models | |
CN117171497B (zh) | 稀疏矩阵存储方法、装置、设备及存储介质 | |
Fernández et al. | A methodology for reconfigurable hardware design based upon evolutionary computation | |
US7266479B2 (en) | System and method for high-order accurate device model approximation | |
US20230153376A1 (en) | Optimization method, information processing device, and information processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050602 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060201 |
|
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: 20100210 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |