JP3391262B2 - 記号計算システム及び方法、並びに並列回路シミュレーションシステム - Google Patents
記号計算システム及び方法、並びに並列回路シミュレーションシステムInfo
- Publication number
- JP3391262B2 JP3391262B2 JP12773898A JP12773898A JP3391262B2 JP 3391262 B2 JP3391262 B2 JP 3391262B2 JP 12773898 A JP12773898 A JP 12773898A JP 12773898 A JP12773898 A JP 12773898A JP 3391262 B2 JP3391262 B2 JP 3391262B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- entry
- row
- variable
- circuit
- 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
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)
Description
【0001】
【発明の属する技術分野】本発明は、線形連立方程式の
解を求めるための記号計算を行う記号計算システム及び
方法、並びに線形連立方程式の解を求めることにより回
路のシミュレーションを行う並列回路シミュレーション
システムに関する。
解を求めるための記号計算を行う記号計算システム及び
方法、並びに線形連立方程式の解を求めることにより回
路のシミュレーションを行う並列回路シミュレーション
システムに関する。
【0002】
【従来の技術】線形連立方程式の解を求めるための処理
は、一般に、記号計算処理と数値計算処理とからなる。
この線形連立方程式の求解処理における記号計算処理の
一例が、"Foudamentals of Computer-Aided Circuit Si
mulation" (William J. McCalla著、1988年刊)の
第3章 "Sparse Matrix Methods" に記載されている。
は、一般に、記号計算処理と数値計算処理とからなる。
この線形連立方程式の求解処理における記号計算処理の
一例が、"Foudamentals of Computer-Aided Circuit Si
mulation" (William J. McCalla著、1988年刊)の
第3章 "Sparse Matrix Methods" に記載されている。
【0003】図9は、上記従来例の線形連立方程式の求
解処理における記号計算処理を示すフローチャートであ
る。まず、求解の対象となる線形連立方程式を表す係数
行列全体に対して1つのエントリ集合Eを用意し、係数
行列中の値が「0」でない要素のエントリをエントリ集
合Eに順次追加していく。ここで、第k行に含まれるエ
ントリ数及び第k列に含まれるエントリ数を示す配列R
(k)、C(k)も係数行列全体に対して1つずつ用意
して、エントリ登録時に値を更新していく(ステップS
410)。
解処理における記号計算処理を示すフローチャートであ
る。まず、求解の対象となる線形連立方程式を表す係数
行列全体に対して1つのエントリ集合Eを用意し、係数
行列中の値が「0」でない要素のエントリをエントリ集
合Eに順次追加していく。ここで、第k行に含まれるエ
ントリ数及び第k列に含まれるエントリ数を示す配列R
(k)、C(k)も係数行列全体に対して1つずつ用意
して、エントリ登録時に値を更新していく(ステップS
410)。
【0004】次に、何番目の変数を消去するかを示す変
数iに「1」を代入し、初期化する(ステップS42
0)。次に、R(w)×C(w)が最小となるwの値を
求める。ここで、R(w)、C(w)の値を求めるとき
に、既に消去された変数と式に対応する行列部分のエン
トリや、対角要素となるエントリ数はカウントされない
(ステップS430)。
数iに「1」を代入し、初期化する(ステップS42
0)。次に、R(w)×C(w)が最小となるwの値を
求める。ここで、R(w)、C(w)の値を求めるとき
に、既に消去された変数と式に対応する行列部分のエン
トリや、対角要素となるエントリ数はカウントされない
(ステップS430)。
【0005】wの値が求められると、エントリ集合Eの
第i行と第w行とを交換し、また、第i列と第w列とを
交換する(ステップS440)。次に、第i変数の消去
時に発生するフィルインを求め、エントリ集合Eに追加
する(ステップS450)。
第i行と第w行とを交換し、また、第i列と第w列とを
交換する(ステップS440)。次に、第i変数の消去
時に発生するフィルインを求め、エントリ集合Eに追加
する(ステップS450)。
【0006】ステップS450の処理が終了すると、変
数iの値を「1」だけインクリメントされ(ステップS
460)、さらに変数iの値がm−1(m:係数行列の
サイズ)以下であるかどうかが判定される(ステップS
470)。ステップS470で変数iの値がm−1以下
であると判定されているときは、ステップS430の処
理に戻る。このような処理の繰り返しによって、最適な
ピボット順序とフィルインの発生位置が求められる。
数iの値を「1」だけインクリメントされ(ステップS
460)、さらに変数iの値がm−1(m:係数行列の
サイズ)以下であるかどうかが判定される(ステップS
470)。ステップS470で変数iの値がm−1以下
であると判定されているときは、ステップS430の処
理に戻る。このような処理の繰り返しによって、最適な
ピボット順序とフィルインの発生位置が求められる。
【0007】一方、ステップS470で変数iの値がm
の値に等しくなったと判定されると、ステップS410
及びステップS450でエントリが追加されたエントリ
集合Eを用いて行列を圧縮し、圧縮した行列データを格
納する(ステップS480)。そして、このフローチャ
ートの処理を終了する。そして、数値計算処理に進むこ
ととなる。
の値に等しくなったと判定されると、ステップS410
及びステップS450でエントリが追加されたエントリ
集合Eを用いて行列を圧縮し、圧縮した行列データを格
納する(ステップS480)。そして、このフローチャ
ートの処理を終了する。そして、数値計算処理に進むこ
ととなる。
【0008】
【発明が解決しようとする課題】しかしながら、上記従
来例には、次のような問題点があった。まず第1に、記
号計算処理を分散メモリ型の並列コンピュータで実行す
る場合に、記号計算処理を単一のノード上で逐次実行し
なければならなかった。このため、ノード内の局所メモ
リの容量によって、扱える係数行列のサイズが制限され
てしまうという問題点があった。
来例には、次のような問題点があった。まず第1に、記
号計算処理を分散メモリ型の並列コンピュータで実行す
る場合に、記号計算処理を単一のノード上で逐次実行し
なければならなかった。このため、ノード内の局所メモ
リの容量によって、扱える係数行列のサイズが制限され
てしまうという問題点があった。
【0009】また、第2に、係数行列のサイズ(行及び
列のそれぞれの数(行数及び列数は一致する))をmと
した場合の記号計算処理の時間は、mの1乗から3乗程
度のオーダで増加するため、係数行列のサイズが大きく
なり、エントリ集合に追加するエントリ数が膨大になる
と、記号計算処理を実用的な時間内で終了することがで
きなくなってしまうという問題点があった。
列のそれぞれの数(行数及び列数は一致する))をmと
した場合の記号計算処理の時間は、mの1乗から3乗程
度のオーダで増加するため、係数行列のサイズが大きく
なり、エントリ集合に追加するエントリ数が膨大になる
と、記号計算処理を実用的な時間内で終了することがで
きなくなってしまうという問題点があった。
【0010】このような問題点は、線形連立方程式の解
を求めることによって回路のシミュレーションを行う場
合にも生じていた。
を求めることによって回路のシミュレーションを行う場
合にも生じていた。
【0011】本発明は、上記従来例の問題点を解消する
ためになされたものであり、扱える行列の規模が大き
く、計算時間が短い記号計算システム及び方法を提供す
ることを目的とする。
ためになされたものであり、扱える行列の規模が大き
く、計算時間が短い記号計算システム及び方法を提供す
ることを目的とする。
【0012】本発明は、また、大規模な回路のシミュレ
ーションを高速に行うことができる並列回路シミュレー
ションシステムを提供することを目的とする。
ーションを高速に行うことができる並列回路シミュレー
ションシステムを提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の実施の形態にかかる記号計算システ
ムは、記号計算と前記記号計算の結果を用いて行う数値
計算とによって行われる線形連立方程式の求解のための
前記記号計算を行う記号計算システムであって、求解の
対象となる線形連立方程式を示す行列を、それぞれ少な
くとも前記行列の1行分からなる複数の行集合に分割す
る行列分割手段と、前記行列分割手段による分割の結果
得られた行集合のそれぞれに対応しており、自己に対応
する行集合に含まれる値が0でない要素のエントリを、
当該行集合に対応するエントリ集合に追加する複数の第
1のエントリ追加手段と、値が1から前記行列の行数ま
で順次変化される第1の変数が示す変数の消去時に必要
となる演算回数が最小となる第2の変数を順次求めるピ
ボット選択手段と、前記行列中の前記第1の変数が示す
行と前記第2の変数が示す行、及び前記行列中の前記第
1の変数が示す列と前記第2の変数が示す列とをそれぞ
れ交換するピボット交換手段と、前記複数の第1のエン
トリ追加手段のそれぞれに対応し、前記ピボット交換手
段によって行及び列が交換された行列について変数の消
去時に発生するフィルインを対応する行集合毎に求め、
該フィルインのエントリを対応する第1のエントリ追加
手段でそれぞれエントリが追加されたエントリ集合にさ
らに追加する複数の第2のエントリ追加手段と、前記第
1、第2のエントリ追加手段によってエントリが追加さ
れた複数のエントリ集合を用いて、前記行列を圧縮する
行列圧縮手段と、を備えることを特徴とする。
め、本発明の第1の実施の形態にかかる記号計算システ
ムは、記号計算と前記記号計算の結果を用いて行う数値
計算とによって行われる線形連立方程式の求解のための
前記記号計算を行う記号計算システムであって、求解の
対象となる線形連立方程式を示す行列を、それぞれ少な
くとも前記行列の1行分からなる複数の行集合に分割す
る行列分割手段と、前記行列分割手段による分割の結果
得られた行集合のそれぞれに対応しており、自己に対応
する行集合に含まれる値が0でない要素のエントリを、
当該行集合に対応するエントリ集合に追加する複数の第
1のエントリ追加手段と、値が1から前記行列の行数ま
で順次変化される第1の変数が示す変数の消去時に必要
となる演算回数が最小となる第2の変数を順次求めるピ
ボット選択手段と、前記行列中の前記第1の変数が示す
行と前記第2の変数が示す行、及び前記行列中の前記第
1の変数が示す列と前記第2の変数が示す列とをそれぞ
れ交換するピボット交換手段と、前記複数の第1のエン
トリ追加手段のそれぞれに対応し、前記ピボット交換手
段によって行及び列が交換された行列について変数の消
去時に発生するフィルインを対応する行集合毎に求め、
該フィルインのエントリを対応する第1のエントリ追加
手段でそれぞれエントリが追加されたエントリ集合にさ
らに追加する複数の第2のエントリ追加手段と、前記第
1、第2のエントリ追加手段によってエントリが追加さ
れた複数のエントリ集合を用いて、前記行列を圧縮する
行列圧縮手段と、を備えることを特徴とする。
【0014】上記計算システムによれば、エントリ集合
へのエントリの追加を複数の第1、第2のエントリ追加
手段によって並列して行うことができる。このため、線
形連立方程式の解を求める場合の記号計算を高速に行う
ことができる。
へのエントリの追加を複数の第1、第2のエントリ追加
手段によって並列して行うことができる。このため、線
形連立方程式の解を求める場合の記号計算を高速に行う
ことができる。
【0015】また、上記計算システムを分散メモリ型の
並列コンピュータで実現する場合には、複数の第1、第
2のエントリ追加手段を実現するためのノードが有する
局所メモリに記憶すべきデータ量が、1つのノードでエ
ントリ集合へのエントリ追加を行った場合に比べて、ほ
ぼ行列の分割数の逆数をかけたものとすることができ
る。このため、各ノードが有する局所メモリの容量によ
って、扱える行列のサイズが制限されることが少なくな
り、大規模な線形連立方程式の求解処理も行えるように
なる。
並列コンピュータで実現する場合には、複数の第1、第
2のエントリ追加手段を実現するためのノードが有する
局所メモリに記憶すべきデータ量が、1つのノードでエ
ントリ集合へのエントリ追加を行った場合に比べて、ほ
ぼ行列の分割数の逆数をかけたものとすることができ
る。このため、各ノードが有する局所メモリの容量によ
って、扱える行列のサイズが制限されることが少なくな
り、大規模な線形連立方程式の求解処理も行えるように
なる。
【0016】上記記号計算システムにおいて、前記複数
の第1、第2のエントリ追加手段は、対応するもの同士
で同一の手段、例えば、並列コンピュータの同一のノー
ドによって構成されたものとすることができる。この場
合、前記複数の第1、第2のエントリ追加手段はそれぞ
れ、対応する行集合の行内エントリの数を記憶する行内
エントリ数配列を管理する手段と、列内エントリの数を
記憶する列内エントリ数配列を管理する手段とを有する
ものとでき、前記ピボット選択手段は、前記行内エント
リ数配列が記憶する行内エントリ数をそれぞれ配列の添
字が等しいもの同士で加算する手段と、前記列内エント
リ数配列が記憶する列内エントリ数をそれぞれ配列の添
字が等しいもの同士で加算する手段と、これらの手段に
よってそれぞれ加算された行内エントリ数と列内エント
リ数とを添字が等しいもの同士で乗算する手段と、これ
らの乗算結果中の値が最も小さいものの添字を選択する
選択手段とを有し、前記選択手段によって選択された添
字を前記第2の変数とすることができる。
の第1、第2のエントリ追加手段は、対応するもの同士
で同一の手段、例えば、並列コンピュータの同一のノー
ドによって構成されたものとすることができる。この場
合、前記複数の第1、第2のエントリ追加手段はそれぞ
れ、対応する行集合の行内エントリの数を記憶する行内
エントリ数配列を管理する手段と、列内エントリの数を
記憶する列内エントリ数配列を管理する手段とを有する
ものとでき、前記ピボット選択手段は、前記行内エント
リ数配列が記憶する行内エントリ数をそれぞれ配列の添
字が等しいもの同士で加算する手段と、前記列内エント
リ数配列が記憶する列内エントリ数をそれぞれ配列の添
字が等しいもの同士で加算する手段と、これらの手段に
よってそれぞれ加算された行内エントリ数と列内エント
リ数とを添字が等しいもの同士で乗算する手段と、これ
らの乗算結果中の値が最も小さいものの添字を選択する
選択手段とを有し、前記選択手段によって選択された添
字を前記第2の変数とすることができる。
【0017】また、上記記号計算システムにおいて、前
記ピボット交換手段は、行列中の交換された行及び列を
示す置換配列を記憶する手段と、該手段に記憶された置
換配列を前記複数の第2のエントリ追加手段のそれぞれ
に供給する手段とを備えるものとしてもよい。前記複数
の第2のエントリ追加手段は、前記ピボット交換手段か
ら供給された置換配列、及び、前記交換された行に含ま
れるエントリの位置に従って、行及び列が交換された行
列について変数の消去時に発生するフィルインを対応す
る行集合毎に求めるものとすることができる。
記ピボット交換手段は、行列中の交換された行及び列を
示す置換配列を記憶する手段と、該手段に記憶された置
換配列を前記複数の第2のエントリ追加手段のそれぞれ
に供給する手段とを備えるものとしてもよい。前記複数
の第2のエントリ追加手段は、前記ピボット交換手段か
ら供給された置換配列、及び、前記交換された行に含ま
れるエントリの位置に従って、行及び列が交換された行
列について変数の消去時に発生するフィルインを対応す
る行集合毎に求めるものとすることができる。
【0018】このような置換配列を用いることによっ
て、行列或いは行集合のやり取りをしなくても、第2の
エントリ追加手段がフィルインを求めることができる。
て、行列或いは行集合のやり取りをしなくても、第2の
エントリ追加手段がフィルインを求めることができる。
【0019】上記目的を達成するため、本発明の第2の
観点にかかる記号計算方法は、記号計算と前記記号計算
の結果を用いて行う数値計算とによって行われる線形連
立方程式の求解のための前記記号計算を行う記号計算方
法であって、行列分割手段により、求解の対象となる線
形連立方程式を示す行列を表すデータを取得し、当該デ
ータが表す前記行列をそれぞれ少なくとも前記行列の1
行分からなる複数の行集合に分割した結果を表す行集合
データを生成する行列分割ステップと、複数の第1のエ
ントリ追加手段が、前記行列分割ステップで生成された
前記行集合データが表す行集合のそれぞれに応じて並列
して動作し、各々の行集合に含まれる値が0でない要素
のエントリを、当該行集合に対応するエントリ集合に追
加する第1のエントリ追加ステップと、ピボット選択手
段により、値が1から前記行列の行数まで順次変化され
る第1の変数が示す変数の消去時に必要となる演算回数
が最小となる第2の変数を順次求めるピボット選択ステ
ップと、ピボット交換手段により、前記行列中の前記第
1の変数が示す行と前記第2の変数が示す行、及び前記
行列中の当該第1の変数が示す列と当該第2の変数が示
す列とをそれぞれ交換するピボット交換ステップと、複
数の第2のエントリ追加手段が、前記第1のエントリ追
加ステップで並列に行われるそれぞれの処理に対応して
並列に動作し、前記ピボット交換ステップで行及び列が
交換された行列について変数の消去時に発生するフィル
インを対応する行集合毎に求め、該フィルインのエント
リを、第1のエントリ追加ステップでそれぞれエントリ
が追加されたエントリ集合にさらに追加する第2のエン
トリ追加ステップと、行列圧縮手段により、前記第1、
第2のエントリ追加ステップでエントリが追加された複
数のエントリ集合を用いて、前記係数行列を圧縮する行
列圧縮ステップと、を備えることを特徴とする。
観点にかかる記号計算方法は、記号計算と前記記号計算
の結果を用いて行う数値計算とによって行われる線形連
立方程式の求解のための前記記号計算を行う記号計算方
法であって、行列分割手段により、求解の対象となる線
形連立方程式を示す行列を表すデータを取得し、当該デ
ータが表す前記行列をそれぞれ少なくとも前記行列の1
行分からなる複数の行集合に分割した結果を表す行集合
データを生成する行列分割ステップと、複数の第1のエ
ントリ追加手段が、前記行列分割ステップで生成された
前記行集合データが表す行集合のそれぞれに応じて並列
して動作し、各々の行集合に含まれる値が0でない要素
のエントリを、当該行集合に対応するエントリ集合に追
加する第1のエントリ追加ステップと、ピボット選択手
段により、値が1から前記行列の行数まで順次変化され
る第1の変数が示す変数の消去時に必要となる演算回数
が最小となる第2の変数を順次求めるピボット選択ステ
ップと、ピボット交換手段により、前記行列中の前記第
1の変数が示す行と前記第2の変数が示す行、及び前記
行列中の当該第1の変数が示す列と当該第2の変数が示
す列とをそれぞれ交換するピボット交換ステップと、複
数の第2のエントリ追加手段が、前記第1のエントリ追
加ステップで並列に行われるそれぞれの処理に対応して
並列に動作し、前記ピボット交換ステップで行及び列が
交換された行列について変数の消去時に発生するフィル
インを対応する行集合毎に求め、該フィルインのエント
リを、第1のエントリ追加ステップでそれぞれエントリ
が追加されたエントリ集合にさらに追加する第2のエン
トリ追加ステップと、行列圧縮手段により、前記第1、
第2のエントリ追加ステップでエントリが追加された複
数のエントリ集合を用いて、前記係数行列を圧縮する行
列圧縮ステップと、を備えることを特徴とする。
【0020】上記目的を達成するため、本発明の第3の
観点にかかる並列回路シミュレーションシステムは、シ
ミュレーションの対象となる回路を複数の部分回路に分
割する部分回路分割手段と、前記部分回路分割手段で分
割された複数の部分回路のそれぞれに対応し、対応する
部分回路の回路方程式に対応する部分回路行列を求める
複数の部分回路行列計算手段と、前記複数の部分回路行
列計算手段によって計算された部分回路行列のそれぞれ
に記号計算を行う複数の部分回路記号計算手段と、前記
複数の記号計算手段によって記号計算されたそれぞれの
結果にさらに数値計算処理を行い、対応する部分回路の
回路方程式の解を求める複数の部分回路数値計算手段
と、前記複数の部分回路数値計算手段によって求められ
た各部分回路の回路方程式の解に従って、部分回路を結
合した結合回路の回路方程式に対応する結合回路行列を
求める結合回路行列計算手段と、前記結合回路行列計算
手段によって計算された結合回路行列に記号計算を行う
結合回路記号計算手段と、前記結合回路記号計算手段に
よって記号計算された結果に更に数値計算処置を行い、
結合回路の回路方程式の解を求める結合回路数値計算手
段と、を備え、前記結合回路記号計算手段は、前記結合
回路行列計算手段によって求められた結合回路行列を、
それぞれ少なくとも前記行列の1行分からなる複数の行
集合に分割する行列分割手段と、前記行列分割手段によ
る分割の結果得られた行集合のそれぞれに対応してお
り、自己に対応する行集合に含まれる値が0でない要素
のエントリを、当該行集合に対応するエントリ集合に追
加する複数の第1のエントリ追加手段と、値が1から前
記結合回路行列の行数まで順次変化される第1の変数が
示す変数の消去時に必要となる演算回数が最小となる第
2の変数を順次求めるピボット選択手段と、前記結合回
路行列中の前記第1の変数が示す行と前記第2の変数が
示す行、及び前記結合回路行列中の前記第1の変数が示
す列と前記第2の変数が示す列とをそれぞれ交換するピ
ボット交換手段と、前記複数の第1のエントリ追加手段
のそれぞれに対応し、前記ピボット交換手段によって行
及び列が交換された結合回路行列行列について変数の消
去時に発生するフィルインを対応する行集合毎に求め、
該フィルインのエントリを対応する第1のエントリ追加
手段でそれぞれエントリが追加されたエントリ集合にさ
らに追加する複数の第2のエントリ追加手段と、前記第
1、第2のエントリ追加手段によってエントリが追加さ
れた複数のエントリ集合を用いて、前記結合回路行列を
圧縮する行列圧縮手段と、を備えることを特徴とする。
観点にかかる並列回路シミュレーションシステムは、シ
ミュレーションの対象となる回路を複数の部分回路に分
割する部分回路分割手段と、前記部分回路分割手段で分
割された複数の部分回路のそれぞれに対応し、対応する
部分回路の回路方程式に対応する部分回路行列を求める
複数の部分回路行列計算手段と、前記複数の部分回路行
列計算手段によって計算された部分回路行列のそれぞれ
に記号計算を行う複数の部分回路記号計算手段と、前記
複数の記号計算手段によって記号計算されたそれぞれの
結果にさらに数値計算処理を行い、対応する部分回路の
回路方程式の解を求める複数の部分回路数値計算手段
と、前記複数の部分回路数値計算手段によって求められ
た各部分回路の回路方程式の解に従って、部分回路を結
合した結合回路の回路方程式に対応する結合回路行列を
求める結合回路行列計算手段と、前記結合回路行列計算
手段によって計算された結合回路行列に記号計算を行う
結合回路記号計算手段と、前記結合回路記号計算手段に
よって記号計算された結果に更に数値計算処置を行い、
結合回路の回路方程式の解を求める結合回路数値計算手
段と、を備え、前記結合回路記号計算手段は、前記結合
回路行列計算手段によって求められた結合回路行列を、
それぞれ少なくとも前記行列の1行分からなる複数の行
集合に分割する行列分割手段と、前記行列分割手段によ
る分割の結果得られた行集合のそれぞれに対応してお
り、自己に対応する行集合に含まれる値が0でない要素
のエントリを、当該行集合に対応するエントリ集合に追
加する複数の第1のエントリ追加手段と、値が1から前
記結合回路行列の行数まで順次変化される第1の変数が
示す変数の消去時に必要となる演算回数が最小となる第
2の変数を順次求めるピボット選択手段と、前記結合回
路行列中の前記第1の変数が示す行と前記第2の変数が
示す行、及び前記結合回路行列中の前記第1の変数が示
す列と前記第2の変数が示す列とをそれぞれ交換するピ
ボット交換手段と、前記複数の第1のエントリ追加手段
のそれぞれに対応し、前記ピボット交換手段によって行
及び列が交換された結合回路行列行列について変数の消
去時に発生するフィルインを対応する行集合毎に求め、
該フィルインのエントリを対応する第1のエントリ追加
手段でそれぞれエントリが追加されたエントリ集合にさ
らに追加する複数の第2のエントリ追加手段と、前記第
1、第2のエントリ追加手段によってエントリが追加さ
れた複数のエントリ集合を用いて、前記結合回路行列を
圧縮する行列圧縮手段と、を備えることを特徴とする。
【0021】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
明の実施の形態について説明する。
【0022】[第1の実施の形態]図1は、この実施の
形態に適用される並列コンピュータの構成を示すブロッ
ク図である。
形態に適用される並列コンピュータの構成を示すブロッ
ク図である。
【0023】図示するように、この並列コンピュータ1
は、相互結合網10を介して結合された複数のノード1
1〜1lから構成されている。ノード11〜1lは、そ
れぞれ要素プロセッサ11a〜1laと、局所メモリ1
1b〜1lbを備える。要素プロセッサ11a〜1la
と局所メモリ11b〜1lbとは、それぞれバス11c
〜1lcを介して接続されており、また、バス11c〜
1lcは、相互結合網10に接続されている。
は、相互結合網10を介して結合された複数のノード1
1〜1lから構成されている。ノード11〜1lは、そ
れぞれ要素プロセッサ11a〜1laと、局所メモリ1
1b〜1lbを備える。要素プロセッサ11a〜1la
と局所メモリ11b〜1lbとは、それぞれバス11c
〜1lcを介して接続されており、また、バス11c〜
1lcは、相互結合網10に接続されている。
【0024】要素プロセッサ11a〜1laは、相互結
合網10を介して互いにメッセージを交換し合う。ま
た、要素プロセッサ11a〜1laは、相互結合網10
を介して他のノードが有する局所メモリ11b〜1lb
に遠隔アクセスする。これらによって、並列コンピュー
タ1は、あるノードから他の1つ以上のノードへ処理を
依頼し、依頼した処理の並列処理を可能としている。
合網10を介して互いにメッセージを交換し合う。ま
た、要素プロセッサ11a〜1laは、相互結合網10
を介して他のノードが有する局所メモリ11b〜1lb
に遠隔アクセスする。これらによって、並列コンピュー
タ1は、あるノードから他の1つ以上のノードへ処理を
依頼し、依頼した処理の並列処理を可能としている。
【0025】局所メモリ11b〜1lbはそれぞれ、対
応する要素プロセッサ11a〜1laが実行するプログ
ラムを記憶すると共に、要素プロセッサ11a〜1la
のワークエリアとして使用される。
応する要素プロセッサ11a〜1laが実行するプログ
ラムを記憶すると共に、要素プロセッサ11a〜1la
のワークエリアとして使用される。
【0026】並列コンピュータ1の相互結合網10に
は、入力装置21及び外部記憶装置22を有するワーク
ステーション2が接続されている。ワークステーション
2の入力装置21は、計算対象となる線形連立方程式
(或いはその係数行列)を入力する。また、ワークステ
ーション1は、係数行列を並列コンピュータ1に渡し、
線形連立方程式の求解処理を依頼する。
は、入力装置21及び外部記憶装置22を有するワーク
ステーション2が接続されている。ワークステーション
2の入力装置21は、計算対象となる線形連立方程式
(或いはその係数行列)を入力する。また、ワークステ
ーション1は、係数行列を並列コンピュータ1に渡し、
線形連立方程式の求解処理を依頼する。
【0027】以下、この実施の形態において、図1の並
列コンピュータで実行される線形連立方程式の求解処理
について、説明する。図2は、この実施の形態にかかる
線形連立方程式の求解処理の概略を示すフローチャート
である。
列コンピュータで実行される線形連立方程式の求解処理
について、説明する。図2は、この実施の形態にかかる
線形連立方程式の求解処理の概略を示すフローチャート
である。
【0028】線形連立方程式の求解処理は、エントリ登
録処理(ステップS110)と、対角ピボッティング処
理(ステップS120)と、行列の圧縮格納処理(ステ
ップS130)と、LU分割処理(ステップS140)
と、前進代入・後進代入処理(ステップS150)とを
順次実行することによって行われる。これらのうちで、
ステップS110〜S130までが記号計算処理であ
り、ステップS140とS150とが数値計算処理であ
る。
録処理(ステップS110)と、対角ピボッティング処
理(ステップS120)と、行列の圧縮格納処理(ステ
ップS130)と、LU分割処理(ステップS140)
と、前進代入・後進代入処理(ステップS150)とを
順次実行することによって行われる。これらのうちで、
ステップS110〜S130までが記号計算処理であ
り、ステップS140とS150とが数値計算処理であ
る。
【0029】ステップS110のエントリ登録処理で
は、ワークステーション2から渡された係数行列のうち
の値が「0」でない要素の位置がエントリ集合Eに追加
される。この処理は、後述する行集合毎に並列して行わ
れるものであり、初めに行集合毎のエントリ集合Eを空
集合とし、係数行列中の値が「0」でない要素の行iと
列jとのエントリ<i,j>をそれぞれのエントリ集合
Eに追加するという処理をすべての要素に対して行うも
のである。
は、ワークステーション2から渡された係数行列のうち
の値が「0」でない要素の位置がエントリ集合Eに追加
される。この処理は、後述する行集合毎に並列して行わ
れるものであり、初めに行集合毎のエントリ集合Eを空
集合とし、係数行列中の値が「0」でない要素の行iと
列jとのエントリ<i,j>をそれぞれのエントリ集合
Eに追加するという処理をすべての要素に対して行うも
のである。
【0030】ステップS120の対角ピボッティング処
理では、ステップS140のLU分解処理での演算回数
ができるだけ少なくなるように、係数行列の行交換と列
交換とが行われる。この処理には、元の係数行列では値
が「0」であった要素でLU分解処理の過程で値が
「0」でなくなる要素(フィルイン)のエントリを行集
合毎にエントリ集合Eに追加する処理が含まれている。
理では、ステップS140のLU分解処理での演算回数
ができるだけ少なくなるように、係数行列の行交換と列
交換とが行われる。この処理には、元の係数行列では値
が「0」であった要素でLU分解処理の過程で値が
「0」でなくなる要素(フィルイン)のエントリを行集
合毎にエントリ集合Eに追加する処理が含まれている。
【0031】ステップS130の行列の圧縮格納処理で
は、ステップS120までの処理で得られたエントリ集
合Eを用いて、係数行列及びLU分解後に得られる行列
の値が「0」でない要素の値のみを格納するための領域
が確保され、係数行列の要素の値が格納される。
は、ステップS120までの処理で得られたエントリ集
合Eを用いて、係数行列及びLU分解後に得られる行列
の値が「0」でない要素の値のみを格納するための領域
が確保され、係数行列の要素の値が格納される。
【0032】ステップS140のLU分割処理では、係
数行列を左下三角行列Lと右上三角行列Uとの積に因数
分解する処理が行われる。ここでは、係数行列が格納さ
れた領域に上書きをしていくことによって処理が進めら
れる。
数行列を左下三角行列Lと右上三角行列Uとの積に因数
分解する処理が行われる。ここでは、係数行列が格納さ
れた領域に上書きをしていくことによって処理が進めら
れる。
【0033】ステップS150の前進代入・後進代入処
理では、係数行列で表される線形連立方程式の解が求め
られる。この処理では、例えば、係数行列で表される線
形連立方程式がAx=b(A:係数行列、x:解ベクト
ル、b:右辺ベクトル)としたときに、Ly=bを解い
てyの解を求める前進代入処理と、Ux=yを解いてx
の解を求める後進代入処理とが行われる。
理では、係数行列で表される線形連立方程式の解が求め
られる。この処理では、例えば、係数行列で表される線
形連立方程式がAx=b(A:係数行列、x:解ベクト
ル、b:右辺ベクトル)としたときに、Ly=bを解い
てyの解を求める前進代入処理と、Ux=yを解いてx
の解を求める後進代入処理とが行われる。
【0034】図3は、図2の記号計算処理(ステップS
110〜S130)を詳細に示すフローチャートであ
る。このフローチャートにおけるステップS211〜S
21lが図2のステップS110に対応し、ステップS
220〜S270が図2のステップS120に対応し、
ステップS280が図2のステップS130に対応す
る。
110〜S130)を詳細に示すフローチャートであ
る。このフローチャートにおけるステップS211〜S
21lが図2のステップS110に対応し、ステップS
220〜S270が図2のステップS120に対応し、
ステップS280が図2のステップS130に対応す
る。
【0035】ユーザは、ワークステーション2の入力装
置21を操作して、解を求める対象となる線形連立方程
式を入力する。そして、入力装置21からワークステー
ション2に入力した線形連立方程式の解を求めるための
指示を入力する。すると、ワークステーション2は、線
形連立方程式の係数行列(行列サイズをmとする)を求
め、さらに複数の行集合(集合数をn(n≦l)とす
る)に分ける。そして、ワークステーション2は、この
係数行列を並列コンピュータ1に渡すと共に、記号計算
処理の依頼をする。
置21を操作して、解を求める対象となる線形連立方程
式を入力する。そして、入力装置21からワークステー
ション2に入力した線形連立方程式の解を求めるための
指示を入力する。すると、ワークステーション2は、線
形連立方程式の係数行列(行列サイズをmとする)を求
め、さらに複数の行集合(集合数をn(n≦l)とす
る)に分ける。そして、ワークステーション2は、この
係数行列を並列コンピュータ1に渡すと共に、記号計算
処理の依頼をする。
【0036】並列コンピュータ1のノード11〜1lの
要素プロセッサ11a〜1laうち、記号計算処理の依
頼を受け取ったノード(ノード11とする)の要素プロ
セッサ11aは、渡された係数行列を行集合毎にノード
11〜1l中のn個のノードに相互結合網10を介して
送信する(但し、1つは自ノード11内でプロセス間通
信によって送信してもよい)。
要素プロセッサ11a〜1laうち、記号計算処理の依
頼を受け取ったノード(ノード11とする)の要素プロ
セッサ11aは、渡された係数行列を行集合毎にノード
11〜1l中のn個のノードに相互結合網10を介して
送信する(但し、1つは自ノード11内でプロセス間通
信によって送信してもよい)。
【0037】係数行列中の行集合を受け取ったn個のノ
ード(ノード11〜1nとする)は、それぞれが並列に
動作する。これらのノード11〜1nの要素プロセッサ
11a〜1naは、それぞれ行集合毎に要素を空集合と
するエントリ集合E1〜Enを用意し、自ノード内の局
所メモリ11b〜1nbに領域を確保する。また、第k
行に含まれるエントリ数及び第k列に含まれるエントリ
数を示す配列R1(k)〜Rn(k)、C1(k)〜C
n(k)を行集合毎に用意し、局所メモリ11b〜1n
bに領域を確保する。
ード(ノード11〜1nとする)は、それぞれが並列に
動作する。これらのノード11〜1nの要素プロセッサ
11a〜1naは、それぞれ行集合毎に要素を空集合と
するエントリ集合E1〜Enを用意し、自ノード内の局
所メモリ11b〜1nbに領域を確保する。また、第k
行に含まれるエントリ数及び第k列に含まれるエントリ
数を示す配列R1(k)〜Rn(k)、C1(k)〜C
n(k)を行集合毎に用意し、局所メモリ11b〜1n
bに領域を確保する。
【0038】そして、要素プロセッサ11a〜1na
は、それぞれ第1〜第n行集合に含まれている値が
「0」でない要素のエントリを、それぞれの局所メモリ
11b〜1nbに領域を確保したエントリ集合E1〜E
nに追加していく。また、要素プロセッサ11a〜1n
aは、エントリの追加時には、配列R1(k)〜Rn
(k)、C1(k)〜Cn(k)の値を更新していく
(ステップS211〜S21n)。
は、それぞれ第1〜第n行集合に含まれている値が
「0」でない要素のエントリを、それぞれの局所メモリ
11b〜1nbに領域を確保したエントリ集合E1〜E
nに追加していく。また、要素プロセッサ11a〜1n
aは、エントリの追加時には、配列R1(k)〜Rn
(k)、C1(k)〜Cn(k)の値を更新していく
(ステップS211〜S21n)。
【0039】n個のノード11〜1nにおいてステップ
S211〜S21nの処理が終了すると、並列コンピュ
ータ1のl個のノード11〜1lのうちの1つのノード
(ノード11とする)の要素プロセッサ11aは、何番
目の変数を消去するかを示す変数iを用意し、「1」を
代入して初期化する。さらに、要素プロセッサ11a
は、後述するステップS240の処理で交換された行及
び列の数を示す置換配列S(k)を用意し、局所メモリ
11bに領域を確保する。この時点において、置換配列
S(k)は行及び列が交換されていない状態で初期化さ
れる(ステップS220)。
S211〜S21nの処理が終了すると、並列コンピュ
ータ1のl個のノード11〜1lのうちの1つのノード
(ノード11とする)の要素プロセッサ11aは、何番
目の変数を消去するかを示す変数iを用意し、「1」を
代入して初期化する。さらに、要素プロセッサ11a
は、後述するステップS240の処理で交換された行及
び列の数を示す置換配列S(k)を用意し、局所メモリ
11bに領域を確保する。この時点において、置換配列
S(k)は行及び列が交換されていない状態で初期化さ
れる(ステップS220)。
【0040】次に、要素プロセッサ11aは、ノード1
1〜1nの局所メモリ11b〜1nbに遠隔アクセス
し、配列R1(k)〜Rn(k)、C1(k)〜Cn
(k)を取得し、それぞれの要素を加算した配列R
(k)、C(k)を求める。また、要素プロセッサ11
aは、ノード11〜1nの局所メモリ11b〜1nbに
遠隔アクセスし、エントリ集合E1〜Enを取得し、そ
の和集合であるエントリ集合Eを求める。
1〜1nの局所メモリ11b〜1nbに遠隔アクセス
し、配列R1(k)〜Rn(k)、C1(k)〜Cn
(k)を取得し、それぞれの要素を加算した配列R
(k)、C(k)を求める。また、要素プロセッサ11
aは、ノード11〜1nの局所メモリ11b〜1nbに
遠隔アクセスし、エントリ集合E1〜Enを取得し、そ
の和集合であるエントリ集合Eを求める。
【0041】次に、要素プロセッサ11aは、変数を消
去するときに必要となる演算回数が最小となる変数を、
まだ消去していない変数から求める。すなわち、k番目
の変数を消去するときに必要となる演算回数は、R
(k)×C(k)によって求められるので、要素プロセ
ッサ11aは、R(S(w))×C(S(w))が最小
となるwの値を求める。ここで、R(S(w))、C
(S(w))の値を求めるときに、既に消去された変数
と式に対応する行列部分のエントリや、対角要素となる
エントリ数はカウントされない(ステップS230)。
去するときに必要となる演算回数が最小となる変数を、
まだ消去していない変数から求める。すなわち、k番目
の変数を消去するときに必要となる演算回数は、R
(k)×C(k)によって求められるので、要素プロセ
ッサ11aは、R(S(w))×C(S(w))が最小
となるwの値を求める。ここで、R(S(w))、C
(S(w))の値を求めるときに、既に消去された変数
と式に対応する行列部分のエントリや、対角要素となる
エントリ数はカウントされない(ステップS230)。
【0042】要素プロセッサ11aは、エントリ集合E
の第i行と第w行とを交換し、第i列と第w列とを交換
する。この交換は、S(i)の値とS(w)の値とを交
換することによって行われる(ステップS240)。
の第i行と第w行とを交換し、第i列と第w列とを交換
する。この交換は、S(i)の値とS(w)の値とを交
換することによって行われる(ステップS240)。
【0043】要素プロセッサ11aは、次に、ステップ
S240の結果求められた置換配列S(k)をメッセー
ジとして相互結合網10を介してノード11〜1nに送
信する。置換配列S(k)を受け取ったノード11〜1
nは、再びそれぞれが並列に動作する。これらのノード
の要素プロセッサ11a〜1naはそれぞれ、第i変数
を消去するときに発生するフィルインを行集合毎に求
め、そのフィルインに対応するエントリをエントリ集合
E1〜Enに追加する。
S240の結果求められた置換配列S(k)をメッセー
ジとして相互結合網10を介してノード11〜1nに送
信する。置換配列S(k)を受け取ったノード11〜1
nは、再びそれぞれが並列に動作する。これらのノード
の要素プロセッサ11a〜1naはそれぞれ、第i変数
を消去するときに発生するフィルインを行集合毎に求
め、そのフィルインに対応するエントリをエントリ集合
E1〜Enに追加する。
【0044】ここで、右上三角行列の第i行に含まれる
すべてのエントリの位置がわかれば、各行集合で発生す
るフィルインの位置は、行集合毎に並列に求めることが
できる。従って、フィルインに対応するエントリをエン
トリ集合E1〜Enのそれぞれに追加する処理も並列に
行うことが可能となる(ステップS251〜S25
n)。
すべてのエントリの位置がわかれば、各行集合で発生す
るフィルインの位置は、行集合毎に並列に求めることが
できる。従って、フィルインに対応するエントリをエン
トリ集合E1〜Enのそれぞれに追加する処理も並列に
行うことが可能となる(ステップS251〜S25
n)。
【0045】ノード11〜1nにおいて、ステップS2
51〜S25nの処理が終了すると、ノード11の要素
プロセッサ11aは、変数iの値を「1」だけインクリ
メントする(ステップS260)。要素プロセッサ11
aは、さらに変数iの値がm−1の値以下であるかどう
かを判定する(ステップS270)。
51〜S25nの処理が終了すると、ノード11の要素
プロセッサ11aは、変数iの値を「1」だけインクリ
メントする(ステップS260)。要素プロセッサ11
aは、さらに変数iの値がm−1の値以下であるかどう
かを判定する(ステップS270)。
【0046】ステップS270で変数iの値がm−1以
下であると判定されているときは、ステップS230の
処理に戻る。このような処理の繰り返しによって、最適
なピボット順序とフィルインの発生位置が求められる。
下であると判定されているときは、ステップS230の
処理に戻る。このような処理の繰り返しによって、最適
なピボット順序とフィルインの発生位置が求められる。
【0047】一方、ステップS270で変数iの値がm
の値に等しくなったと判定されると、要素プロセッサ1
1aは、ノード11〜1nの局所メモリ11b〜1nb
に遠隔アクセスし、エントリ集合E1〜Enを取得す
る。要素プロセッサ11aは、エントリ集合E1〜En
を用いて行列を圧縮し、圧縮した行列データを局所メモ
リ11bに格納する(ステップS280)。
の値に等しくなったと判定されると、要素プロセッサ1
1aは、ノード11〜1nの局所メモリ11b〜1nb
に遠隔アクセスし、エントリ集合E1〜Enを取得す
る。要素プロセッサ11aは、エントリ集合E1〜En
を用いて行列を圧縮し、圧縮した行列データを局所メモ
リ11bに格納する(ステップS280)。
【0048】ここで、行列データの圧縮形式としては、
例えば、"Templates for the Solution of Linear Syst
ems: Building Blocks for Iterative Methods" (R. B
arrett他著、1994年刊)に記載されているような行
圧縮形式を用いることができる。
例えば、"Templates for the Solution of Linear Syst
ems: Building Blocks for Iterative Methods" (R. B
arrett他著、1994年刊)に記載されているような行
圧縮形式を用いることができる。
【0049】ステップS280の処理が終了すると、記
号計算処理が終了し、次に、数値計算処理が実行され
る。そして、ワークステーション2から並列コンピュー
タ1に係数行列として渡された線形連立方程式の解が求
められる。
号計算処理が終了し、次に、数値計算処理が実行され
る。そして、ワークステーション2から並列コンピュー
タ1に係数行列として渡された線形連立方程式の解が求
められる。
【0050】以下、この実施の形態における線形連立方
程式の求解処理の具体例について、図4〜図7を参照し
て説明する。ここで、ワークステーション2から並列コ
ンピュータ1に渡される係数行列は、図4に示すもので
あり、図中の破線で示すように3つの行集合に分けられ
ているものとする。
程式の求解処理の具体例について、図4〜図7を参照し
て説明する。ここで、ワークステーション2から並列コ
ンピュータ1に渡される係数行列は、図4に示すもので
あり、図中の破線で示すように3つの行集合に分けられ
ているものとする。
【0051】各行集合を受け取ったノード(ノード11
〜13とする)では、ステップS211〜S213にお
いて行集合毎に値が「0」でないエントリがエントリ集
合E1〜E3に追加される。このとき局所メモリ11b
〜13bに記憶されるエントリ集合E1〜E3は、図5
(a)に示すように、 E1={<1,1>,<1,3>,<1,5>,<2,
2>,<2,3>,<2,4>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<4,
2>,<4,4>,<4,5>,<4,6>} E3={<5,1>,<5,4>,<5,5>,<6,
2>,<6,4>,<6,6>} に設定される。
〜13とする)では、ステップS211〜S213にお
いて行集合毎に値が「0」でないエントリがエントリ集
合E1〜E3に追加される。このとき局所メモリ11b
〜13bに記憶されるエントリ集合E1〜E3は、図5
(a)に示すように、 E1={<1,1>,<1,3>,<1,5>,<2,
2>,<2,3>,<2,4>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<4,
2>,<4,4>,<4,5>,<4,6>} E3={<5,1>,<5,4>,<5,5>,<6,
2>,<6,4>,<6,6>} に設定される。
【0052】また、局所メモリ11b〜13bに記憶さ
れている、エントリ集合E1〜E3へのエントリの追加
時に更新されていく配列R1〜R3、C1〜C3は、図
5(a)に示すように、 R1=[2,3,0,0,0,0] C1=[0,0,2,1,1,1] R2=[0,0,2,3,0,0] C2=[1,2,0,0,1,1] R3=[0,0,0,0,2,2] C3=[1,1,0,2,0,0] となる。
れている、エントリ集合E1〜E3へのエントリの追加
時に更新されていく配列R1〜R3、C1〜C3は、図
5(a)に示すように、 R1=[2,3,0,0,0,0] C1=[0,0,2,1,1,1] R2=[0,0,2,3,0,0] C2=[1,2,0,0,1,1] R3=[0,0,0,0,2,2] C3=[1,1,0,2,0,0] となる。
【0053】そして、ステップS220において、ノー
ド11の局所メモリ11bに記憶される変数i及び置換
配列Sが初期化され、図5(a)に示すように、 i=1 S=[1,2,3,4,5,6] に設定される。
ド11の局所メモリ11bに記憶される変数i及び置換
配列Sが初期化され、図5(a)に示すように、 i=1 S=[1,2,3,4,5,6] に設定される。
【0054】次に、ステップS230において、ピボッ
ト選択処理が行われる。ここで、 R=[2,3,2,3,2,2] C=[2,3,2,3,2,2] であるので、R(S(w))×C(S(w))を最小に
するwの値は、1となる。
ト選択処理が行われる。ここで、 R=[2,3,2,3,2,2] C=[2,3,2,3,2,2] であるので、R(S(w))×C(S(w))を最小に
するwの値は、1となる。
【0055】次に、ステップS240において、S
(i)とS(w)とを入れ替える処理が行われるが、i
=wであるので、実際には変化はない。もっとも、置換
配列Sをノード11〜13のすべてにメッセージとして
送信する処理は行われる。
(i)とS(w)とを入れ替える処理が行われるが、i
=wであるので、実際には変化はない。もっとも、置換
配列Sをノード11〜13のすべてにメッセージとして
送信する処理は行われる。
【0056】次に、ステップS251〜S253におい
て、元の係数行列におけるS(i)番目の変数を消去す
るときに生じるフィルインに対応するエントリが、ノー
ド11〜13のそれぞれでエントリ集合E1〜E3に追
加される。このとき、局所メモリ11b〜13bに記憶
されるエントリ集合E1〜E3は、図5(b)に示すよ
うに、 E1={<1,1>,<1,3>,<1,5>,<2,
2>,<2,3>,<2,4>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<3,
5>,<4,2>,<4,4>,<4,5>,<4,6
>} E3={<5,1>,<5,3>,<5,4>,<5,
5>,<6,2>,<6,4>,<6,6>} に設定される。
て、元の係数行列におけるS(i)番目の変数を消去す
るときに生じるフィルインに対応するエントリが、ノー
ド11〜13のそれぞれでエントリ集合E1〜E3に追
加される。このとき、局所メモリ11b〜13bに記憶
されるエントリ集合E1〜E3は、図5(b)に示すよ
うに、 E1={<1,1>,<1,3>,<1,5>,<2,
2>,<2,3>,<2,4>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<3,
5>,<4,2>,<4,4>,<4,5>,<4,6
>} E3={<5,1>,<5,3>,<5,4>,<5,
5>,<6,2>,<6,4>,<6,6>} に設定される。
【0057】また、配列R1〜R3、C1〜C3の値も
更新され、図5(b)に示すように、 R1=[0,3,0,0,0,0] C1=[0,0,1,1,0,1] R2=[0,0,2,3,0,0] C2=[1,2,0,0,1,1] R3=[0,0,0,0,2,2] C3=[0,1,1,2,0,0] となる。
更新され、図5(b)に示すように、 R1=[0,3,0,0,0,0] C1=[0,0,1,1,0,1] R2=[0,0,2,3,0,0] C2=[1,2,0,0,1,1] R3=[0,0,0,0,2,2] C3=[0,1,1,2,0,0] となる。
【0058】そして、ステップS260において変数i
がインクリメントされ、図5(b)に示すように、i=
2となる。そして、再びステップS230の処理が実行
される。
がインクリメントされ、図5(b)に示すように、i=
2となる。そして、再びステップS230の処理が実行
される。
【0059】以上のような処理をi=6−1=5となる
まで繰り返す。この過程において、ステップS251〜
S253では、図6に示すようにフィルインに対応する
エントリがエントリ集合E1〜E3に追加されていく。
i=5となったとき、エントリ集合E1〜E3、配列R
1〜R3、C1〜C3、変数i、及び置換配列Sは、図
5(c)に示すように、次の通りとなる。
まで繰り返す。この過程において、ステップS251〜
S253では、図6に示すようにフィルインに対応する
エントリがエントリ集合E1〜E3に追加されていく。
i=5となったとき、エントリ集合E1〜E3、配列R
1〜R3、C1〜C3、変数i、及び置換配列Sは、図
5(c)に示すように、次の通りとなる。
【0060】E1={<1,1>,<1,3>,<1,
5>,<2,2>,<2,3>,<2,4>,<2,5
>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<3,
5>,<4,2>,<4,4>,<4,5>,<4,6
>} E3={<5,1>,<5,2>,<5,3>,<5,
4>,<5,5>,<6,2>,<6,4>,<6,6
>}
5>,<2,2>,<2,3>,<2,4>,<2,5
>,<2,6>} E2={<3,1>,<3,2>,<3,3>,<3,
5>,<4,2>,<4,4>,<4,5>,<4,6
>} E3={<5,1>,<5,2>,<5,3>,<5,
4>,<5,5>,<6,2>,<6,4>,<6,6
>}
【0061】R1=[0,0,0,0,0,0]
C1=[0,0,0,0,0,0]
R2=[0,0,0,0,0,0]
C2=[0,0,0,0,0,0]
R3=[0,0,0,0,0,0]
C3=[0,0,0,0,0,0]
S=[1,3,5,4,2,6]
【0062】そして、上記の処理で最終的に得られたエ
ントリ集合E1〜E3を用いて、ステップS280にお
いて、図7に示すように行列データが圧縮されて、ノー
ド11の局所メモリ11bに格納される。
ントリ集合E1〜E3を用いて、ステップS280にお
いて、図7に示すように行列データが圧縮されて、ノー
ド11の局所メモリ11bに格納される。
【0063】上記の処理でエントリ集合Eに追加される
エントリ数は、図5(c)に示すように、最終的には2
4個となっているが、行集合毎、すなわちノード毎に8
個ずつに分散されている。従って、各ノード11〜13
におけるエントリ集合E1〜E3のための局所メモリ1
1b〜13bの使用量が、1つのノードで処理を行う場
合に比べて3分の1で済むことがわかる。また、各ノー
ド11〜13は、係数行列全体を保持する必要がなく、
その3分の1のデータ量で済む行集合を保持していれば
よい。従って、1つのノードにおける局所メモリの容量
が従来のほぼ3分の1で済むことになり、また、局所メ
モリの容量が変わらないのであれば、従来よりもサイズ
の大きな係数行列(要素数がほぼ3倍)を扱えることと
なる。
エントリ数は、図5(c)に示すように、最終的には2
4個となっているが、行集合毎、すなわちノード毎に8
個ずつに分散されている。従って、各ノード11〜13
におけるエントリ集合E1〜E3のための局所メモリ1
1b〜13bの使用量が、1つのノードで処理を行う場
合に比べて3分の1で済むことがわかる。また、各ノー
ド11〜13は、係数行列全体を保持する必要がなく、
その3分の1のデータ量で済む行集合を保持していれば
よい。従って、1つのノードにおける局所メモリの容量
が従来のほぼ3分の1で済むことになり、また、局所メ
モリの容量が変わらないのであれば、従来よりもサイズ
の大きな係数行列(要素数がほぼ3倍)を扱えることと
なる。
【0064】また、図6に示すように、ステップS25
1〜S253のエントリの追加登録の処理は、ノード1
1〜13で並列処理を行っていることにより、全体とし
て9ステップで済んでいる。これに対して、1つのノー
ドで同様の処理を行った場合には、追加登録の総数が1
7個であるので、17ステップを要することとなる。す
なわち、この部分での計算速度がほぼ2倍になっている
ことがわかる。
1〜S253のエントリの追加登録の処理は、ノード1
1〜13で並列処理を行っていることにより、全体とし
て9ステップで済んでいる。これに対して、1つのノー
ドで同様の処理を行った場合には、追加登録の総数が1
7個であるので、17ステップを要することとなる。す
なわち、この部分での計算速度がほぼ2倍になっている
ことがわかる。
【0065】以上説明したように、この実施の形態によ
れば、線形連立方程式の求解処理の最初の段階として実
行される記号計算処理において、並列コンピュータ1の
複数のノード11〜1nが並列処理を行っている。
れば、線形連立方程式の求解処理の最初の段階として実
行される記号計算処理において、並列コンピュータ1の
複数のノード11〜1nが並列処理を行っている。
【0066】このとき、各ノード11〜1nは、局所メ
モリ11a〜1na内に係数行列を分割した行集合のみ
を保持すればよく、局所メモリ11a〜1naに記憶さ
れるまた、エントリ集合E1〜E3も行集合に対応する
もののみで足りることとなる。このため、同一の係数行
列に対して計算を行うならば、局所メモリ11b〜1n
cの容量が従来例よりも少なくて済む。また、従来例と
局所メモリ11b〜1ncの容量が同一であるならば、
従来例よりも大きなサイズの係数行列を扱うことが可能
となる。
モリ11a〜1na内に係数行列を分割した行集合のみ
を保持すればよく、局所メモリ11a〜1naに記憶さ
れるまた、エントリ集合E1〜E3も行集合に対応する
もののみで足りることとなる。このため、同一の係数行
列に対して計算を行うならば、局所メモリ11b〜1n
cの容量が従来例よりも少なくて済む。また、従来例と
局所メモリ11b〜1ncの容量が同一であるならば、
従来例よりも大きなサイズの係数行列を扱うことが可能
となる。
【0067】また、エントリ集合E1〜E3へのエント
リへの追加を、複数のノードで分散して行うことができ
る。このため、従来例に比べてエントリの追加に要する
計算時間が短くて済むようになる。
リへの追加を、複数のノードで分散して行うことができ
る。このため、従来例に比べてエントリの追加に要する
計算時間が短くて済むようになる。
【0068】また、ノード11から各ノード11〜1n
へ置換配列Sを送ることによって、ノード間で行列或い
は行集合のやり取りをしなくても、各ノード11〜1n
でフィルインを求めることが可能となる。
へ置換配列Sを送ることによって、ノード間で行列或い
は行集合のやり取りをしなくても、各ノード11〜1n
でフィルインを求めることが可能となる。
【0069】[第2の実施の形態]この実施の形態で
は、線形連立方程式の解を求めることによる並列回路の
シミュレーションに、本発明を適用した場合について説
明する。
は、線形連立方程式の解を求めることによる並列回路の
シミュレーションに、本発明を適用した場合について説
明する。
【0070】この実施の形態においても、並列回路シミ
ュレーションを行うハードウェアとして、図1に示す並
列コンピュータ1を用いることができる。但し、この実
施の形態において、シミュレーション対象となる並列回
路の回路接続情報は、ワークステーション2の外部記憶
装置22にライブラリとして登録されており、入力装置
21からの指示に従って、ライブラリから読み出されて
並列コンピュータ1に投入される。
ュレーションを行うハードウェアとして、図1に示す並
列コンピュータ1を用いることができる。但し、この実
施の形態において、シミュレーション対象となる並列回
路の回路接続情報は、ワークステーション2の外部記憶
装置22にライブラリとして登録されており、入力装置
21からの指示に従って、ライブラリから読み出されて
並列コンピュータ1に投入される。
【0071】以下、この実施の形態において、図1の並
列コンピュータ1で実行される並列回路シミュレーショ
ンの処理を、図9のフローチャートを参照して説明す
る。
列コンピュータ1で実行される並列回路シミュレーショ
ンの処理を、図9のフローチャートを参照して説明す
る。
【0072】処理が開始すると、まず、ユーザは入力装
置21を操作して、外部記憶装置22にライブラリとし
て登録されている回路接続情報をワークステーション2
から相互結合網10を介して並列コンピュータ1に入力
する(ステップS300)。
置21を操作して、外部記憶装置22にライブラリとし
て登録されている回路接続情報をワークステーション2
から相互結合網10を介して並列コンピュータ1に入力
する(ステップS300)。
【0073】並列コンピュータ1のノード11〜1lの
要素プロセッサ11a〜1laのうち、回路接続情報を
受け取ったノード(ノード11とする)の要素プロセッ
サ11aは、入力された回路接続情報によって示される
回路を、ノード11〜1lの数と同数のl個の部分回路
に分割する。この部分回路の分割は、例えば、特開平9
−319784号公報に記載されている方法によって行
う。そして、ノード11の要素プロセッサ11aは、分
割したl個の部分回路に関する情報をそれぞれ、ノード
11〜1lに相互結合網10を介し(但し、ノード11
には、プロセス間通信によって)て送信する(ステップ
S310)。
要素プロセッサ11a〜1laのうち、回路接続情報を
受け取ったノード(ノード11とする)の要素プロセッ
サ11aは、入力された回路接続情報によって示される
回路を、ノード11〜1lの数と同数のl個の部分回路
に分割する。この部分回路の分割は、例えば、特開平9
−319784号公報に記載されている方法によって行
う。そして、ノード11の要素プロセッサ11aは、分
割したl個の部分回路に関する情報をそれぞれ、ノード
11〜1lに相互結合網10を介し(但し、ノード11
には、プロセス間通信によって)て送信する(ステップ
S310)。
【0074】部分回路に関する情報を受け取ったノード
11〜1lは、それぞれが並列に動作する。これらのノ
ード11〜1lの要素プロセッサ11a〜1laは、そ
れぞれ部分回路に関する情報を、後述するシミュレーシ
ョン時に効率がよい形式のオブジェクトデータ(部分回
路を示す行列と部分回路内の各素子のパラメータ)に変
換するコンパイル作業を行う(ステップS321〜S3
2l)。
11〜1lは、それぞれが並列に動作する。これらのノ
ード11〜1lの要素プロセッサ11a〜1laは、そ
れぞれ部分回路に関する情報を、後述するシミュレーシ
ョン時に効率がよい形式のオブジェクトデータ(部分回
路を示す行列と部分回路内の各素子のパラメータ)に変
換するコンパイル作業を行う(ステップS321〜S3
2l)。
【0075】更に、要素プロセッサ11a〜1laは、
各部分回路毎に線形連立方程式の求解のための記号処理
を行う。この線形連立方程式の求解のための記号処理
は、図9のフローチャートに従って行われる(ステップ
S331〜S33l)。更に、要素プロセッサ11a〜
1laは、それぞれステップS331〜S33lで記号
処理した結果に対して、数値計算処理を行い、その結果
を1つのノード(ここでは、ノード11とする)に相互
結合網10を介して(但し、ノード11ではプロセス間
通信によって)送信する(ステップS341〜S34
l)。
各部分回路毎に線形連立方程式の求解のための記号処理
を行う。この線形連立方程式の求解のための記号処理
は、図9のフローチャートに従って行われる(ステップ
S331〜S33l)。更に、要素プロセッサ11a〜
1laは、それぞれステップS331〜S33lで記号
処理した結果に対して、数値計算処理を行い、その結果
を1つのノード(ここでは、ノード11とする)に相互
結合網10を介して(但し、ノード11ではプロセス間
通信によって)送信する(ステップS341〜S34
l)。
【0076】各部分回路の演算結果を受信したノード1
1の要素プロセッサ11aは、各部分回路の縮退モデル
のオブジェクトデータと結合回路情報とを用いて、結合
回路のコンパイルを行い、結合回路を示す行列を生成す
る(ステップS350)。
1の要素プロセッサ11aは、各部分回路の縮退モデル
のオブジェクトデータと結合回路情報とを用いて、結合
回路のコンパイルを行い、結合回路を示す行列を生成す
る(ステップS350)。
【0077】次に、要素プロセッサ11aは、生成した
行列を複数の行列集合に分ける。そして、図3のフロー
チャートに示す処理により、複数のノードが並列動作し
て結合回路方程式の求解のための記号計算処理が行われ
る(ステップS360)。
行列を複数の行列集合に分ける。そして、図3のフロー
チャートに示す処理により、複数のノードが並列動作し
て結合回路方程式の求解のための記号計算処理が行われ
る(ステップS360)。
【0078】ステップS360の処理で記号計算処理が
され、行列が圧縮格納されると、その行列を格納してい
る局所メモリ(ここでは、局所メモリ11bとする)を
有するノード11の要素プロセッサ11aは、図2のフ
ローチャートに示すステップS140及びS150の処
理を行って、数値計算処理を行う(ステップS37
0)。ノード11の要素プロセッサ11aは、得られた
結果を波形として相互結合網10を介してワークステー
ション2に出力する(ステップS380)。そして、こ
のフローチャートの処理を終了する。
され、行列が圧縮格納されると、その行列を格納してい
る局所メモリ(ここでは、局所メモリ11bとする)を
有するノード11の要素プロセッサ11aは、図2のフ
ローチャートに示すステップS140及びS150の処
理を行って、数値計算処理を行う(ステップS37
0)。ノード11の要素プロセッサ11aは、得られた
結果を波形として相互結合網10を介してワークステー
ション2に出力する(ステップS380)。そして、こ
のフローチャートの処理を終了する。
【0079】以上説明したように、この実施の形態で
は、結合回路方程式の求解を行う場合に、複数のノード
11〜1lでの並列処理が可能となる。このため、回路
シミュレーションを従来よりも高速に行うことができ、
また、局所メモリ11b〜1lcの容量による制限も受
けなくなるため、大規模な回路のシミュレーションを行
うことができる。
は、結合回路方程式の求解を行う場合に、複数のノード
11〜1lでの並列処理が可能となる。このため、回路
シミュレーションを従来よりも高速に行うことができ、
また、局所メモリ11b〜1lcの容量による制限も受
けなくなるため、大規模な回路のシミュレーションを行
うことができる。
【0080】[実施の形態の変形]本発明は、上記の第
1、第2の実施の形態に限られず、様々な変形が可能で
ある。以下、上記の実施の形態の変形態様について、説
明する。
1、第2の実施の形態に限られず、様々な変形が可能で
ある。以下、上記の実施の形態の変形態様について、説
明する。
【0081】上記の第1の実施の形態では、ワークステ
ーション2から処理を依頼された係数行列は予めn個の
行集合に分割されているものとして説明した。しかしな
がら、ワークステーション2から並列コンピュータ1に
処理を依頼する係数行列は、行集合に分割されていない
ものであってもよい。この場合、処理依頼を受け取った
ノードが、並列コンピュータ1のノード11〜1lの数
kに応じて係数行列を行集合に分割すればよい。
ーション2から処理を依頼された係数行列は予めn個の
行集合に分割されているものとして説明した。しかしな
がら、ワークステーション2から並列コンピュータ1に
処理を依頼する係数行列は、行集合に分割されていない
ものであってもよい。この場合、処理依頼を受け取った
ノードが、並列コンピュータ1のノード11〜1lの数
kに応じて係数行列を行集合に分割すればよい。
【0082】上記の第1、第2の実施の形態では、処理
対象となるデータ(線形連立方程式の係数行列或いは回
路接続情報)の投入以外のすべての処理を図1に示す並
列コンピュータ1で行っていた。しかしながら、例え
ば、記号計算処理を並列コンピュータ1で行い、数値計
算処理を並列コンピュータ1とは別のベクトル計算機で
行うことも可能である。また、並列処理される部分以外
をワークステーション2で実行し、並列処理される部分
の処理をワークステーション20から並列コンピュータ
1に依頼することも可能である。
対象となるデータ(線形連立方程式の係数行列或いは回
路接続情報)の投入以外のすべての処理を図1に示す並
列コンピュータ1で行っていた。しかしながら、例え
ば、記号計算処理を並列コンピュータ1で行い、数値計
算処理を並列コンピュータ1とは別のベクトル計算機で
行うことも可能である。また、並列処理される部分以外
をワークステーション2で実行し、並列処理される部分
の処理をワークステーション20から並列コンピュータ
1に依頼することも可能である。
【0083】上記の第2の実施の形態では、部分回路の
線形連立方程式を求解するための記号計算処理は、部分
回路毎に1つのノードで行われていた。しかしながら、
この処理も、図3のフローチャートで示したのと同様に
して複数のノードで並列に実行するものとしてもよい。
線形連立方程式を求解するための記号計算処理は、部分
回路毎に1つのノードで行われていた。しかしながら、
この処理も、図3のフローチャートで示したのと同様に
して複数のノードで並列に実行するものとしてもよい。
【0084】
【発明の効果】以上説明したように、本発明によれば、
線形連立方程式の解を求める場合の記号計算において、
計算時間を短くしたり、扱える行列の規模を大きくした
りすることができる。
線形連立方程式の解を求める場合の記号計算において、
計算時間を短くしたり、扱える行列の規模を大きくした
りすることができる。
【0085】また、大規模な回路のシミュレーションを
高速に行うことができる。
高速に行うことができる。
【図1】本発明の第1の実施の形態に適用される並列コ
ンピュータの構成を示すブロック図である。
ンピュータの構成を示すブロック図である。
【図2】本発明の第1の実施の形態にかかる線形連立方
程式の求解処理の概略を示すフローチャートである。
程式の求解処理の概略を示すフローチャートである。
【図3】図2の記号計算処理を詳細に示すフローチャー
トである。
トである。
【図4】本発明の第1の実施の形態における具体例で、
ワークステーションから並列コンピュータに投入される
係数行列を示す図である。
ワークステーションから並列コンピュータに投入される
係数行列を示す図である。
【図5】(a)〜(c)は、本発明の第1の実施の形態
における具体例での記号計算処理を説明する図である。
における具体例での記号計算処理を説明する図である。
【図6】本発明の第1の実施の形態における具体例での
エントリが追加登録される順序を示す図である。
エントリが追加登録される順序を示す図である。
【図7】本発明の第1の実施の形態における具体例での
行列の圧縮格納用データ構造を示す図である。
行列の圧縮格納用データ構造を示す図である。
【図8】本発明の第2の実施の形態にかかる並列回路シ
ミュレーションの処理を示すフローチャートである。
ミュレーションの処理を示すフローチャートである。
【図9】従来にかかる記号計算処理を示すフローチャー
トである。
トである。
1 並列コンピュータ
10 相互結合網
11〜1l ノード
11a〜1la 要素プロセッサ
11b〜1lb 局所メモリ
11c〜1lc バス
2 ワークステーション
21 入力装置
22 外部記憶装置
─────────────────────────────────────────────────────
フロントページの続き
(56)参考文献 大谷浩司,外1名,超並列マシン上で
の疎行列自動圧縮方式について,情報処
理学会研究報告,社団法人情報処理学
会,1994年12月 9日,第94巻,第106
号(94−OS−67),p.137−144
A.GITA,外1名,Sparse
Gaussian Eliminat
ion with Controlle
d Fill−in on a Sha
red Memory Multipr
ocessor,IEEE Trans
actions on Compute
r,1989年11月,第38巻,第11号,p.
1539−1557
小国力,外4名著,行列計算ソフトウ
ェア WS、スーパーコン、並列計算
機,丸善株式会社,1991年11月30日,初
版,p.136−137
(58)調査した分野(Int.Cl.7,DB名)
G06F 17/00 - 17/18
G06F 17/50
Claims (5)
- 【請求項1】記号計算と前記記号計算の結果を用いて行
う数値計算とによって行われる線形連立方程式の求解の
ための前記記号計算を行う記号計算システムであって、 求解の対象となる線形連立方程式を示す行列を、それぞ
れ少なくとも前記行列の1行分からなる複数の行集合に
分割する行列分割手段と、 前記行列分割手段による分割の結果得られた行集合のそ
れぞれに対応しており、自己に対応する行集合に含まれ
る値が0でない要素のエントリを、当該行集合に対応す
るエントリ集合に追加する複数の第1のエントリ追加手
段と、 値が1から前記行列の行数まで順次変化される第1の変
数が示す変数の消去時に必要となる演算回数が最小とな
る第2の変数を順次求めるピボット選択手段と、 前記行列中の前記第1の変数が示す行と前記第2の変数
が示す行、及び前記行列中の前記第1の変数が示す列と
前記第2の変数が示す列とをそれぞれ交換するピボット
交換手段と、 前記複数の第1のエントリ追加手段のそれぞれに対応
し、前記ピボット交換手段によって行及び列が交換され
た行列について変数の消去時に発生するフィルインを対
応する行集合毎に求め、該フィルインのエントリを対応
する第1のエントリ追加手段でそれぞれエントリが追加
されたエントリ集合にさらに追加する複数の第2のエン
トリ追加手段と、 前記第1、第2のエントリ追加手段によってエントリが
追加された複数のエントリ集合を用いて、前記行列を圧
縮する行列圧縮手段と、を備えることを特徴とする記号
計算システム。 - 【請求項2】前記複数の第1、第2のエントリ追加手段
は、対応するもの同士で同一の手段によって構成され、 前記複数の第1、第2のエントリ追加手段はそれぞれ、
対応する行集合の行内エントリの数を記憶する行内エン
トリ数配列を管理する手段と、列内エントリの数を記憶
する列内エントリ数配列を管理する手段とを有し、 前記ピボット選択手段は、前記行内エントリ数配列が記
憶する行内エントリ数をそれぞれ配列の添字が等しいも
の同士で加算する手段と、前記列内エントリ数配列が記
憶する列内エントリ数をそれぞれ配列の添字が等しいも
の同士で加算する手段と、これらの手段によってそれぞ
れ加算された行内エントリ数と列内エントリ数とを添字
が等しいもの同士で乗算する手段と、これらの乗算結果
中の値が最も小さいものの添字を選択する選択手段とを
有し、前記選択手段によって選択された添字を前記第2
の変数とすることを特徴とする請求項1に記載の記号計
算システム。 - 【請求項3】前記ピボット交換手段は、行列中の交換さ
れた行及び列を示す置換配列を記憶する手段と、該手段
に記憶された置換配列を前記複数の第2のエントリ追加
手段のそれぞれに供給する手段とを備え、 前記複数の第2のエントリ追加手段は、前記ピボット交
換手段から供給された置換配列、及び、前記交換された
行に含まれるエントリの位置に従って、行及び列が交換
された行列について変数の消去時に発生するフィルイン
を対応する行集合毎に求めることを特徴とする請求項1
または2に記載の記号計算システム。 - 【請求項4】記号計算と前記記号計算の結果を用いて行
う数値計算とによって行われる線形連立方程式の求解の
ための前記記号計算を行う記号計算方法であって、行列分割手段により、 求解の対象となる線形連立方程式
を示す行列を表すデータを取得し、当該データが表す前
記行列をそれぞれ少なくとも前記行列の1行分からなる
複数の行集合に分割した結果を表す行集合データを生成
する行列分割ステップと、複数の第1のエントリ追加手段が、 前記行列分割ステッ
プで生成された前記行集合データが表す行集合のそれぞ
れに応じて並列して動作し、各々の行集合に含まれる値
が0でない要素のエントリを、当該行集合に対応するエ
ントリ集合に追加する第1のエントリ追加ステップと、ピボット選択手段により、 値が1から前記行列の行数ま
で順次変化される第1の変数が示す変数の消去時に必要
となる演算回数が最小となる第2の変数を順次求めるピ
ボット選択ステップと、ピボット交換手段により、 前記行列中の前記第1の変数
が示す行と前記第2の変数が示す行、及び前記行列中の
当該第1の変数が示す列と当該第2の変数が示す列とを
それぞれ交換するピボット交換ステップと、複数の第2のエントリ追加手段が、 前記第1のエントリ
追加ステップで並列に行われるそれぞれの処理に対応し
て並列に動作し、前記ピボット交換ステップで行及び列
が交換された行列について変数の消去時に発生するフィ
ルインを対応する行集合毎に求め、該フィルインのエン
トリを、第1のエントリ追加ステップでそれぞれエント
リが追加されたエントリ集合にさらに追加する第2のエ
ントリ追加ステップと、行列圧縮手段により、 前記第1、第2のエントリ追加ス
テップでエントリが追加された複数のエントリ集合を用
いて、前記係数行列を圧縮する行列圧縮ステップと、を
備えることを特徴とする記号計算方法。 - 【請求項5】シミュレーションの対象となる回路を複数
の部分回路に分割する部分回路分割手段と、 前記部分回路分割手段で分割された複数の部分回路のそ
れぞれに対応し、対応する部分回路の回路方程式に対応
する部分回路行列を求める複数の部分回路行列計算手段
と、 前記複数の部分回路行列計算手段によって計算された部
分回路行列のそれぞれに記号計算を行う複数の部分回路
記号計算手段と、 前記複数の記号計算手段によって記号計算されたそれぞ
れの結果にさらに数値計算処理を行い、対応する部分回
路の回路方程式の解を求める複数の部分回路数値計算手
段と、 前記複数の部分回路数値計算手段によって求められた各
部分回路の回路方程式の解に従って、部分回路を結合し
た結合回路の回路方程式に対応する結合回路行列を求め
る結合回路行列計算手段と、 前記結合回路行列計算手段によって計算された結合回路
行列に記号計算を行う結合回路記号計算手段と、 前記結合回路記号計算手段によって記号計算された結果
に更に数値計算処置を行い、結合回路の回路方程式の解
を求める結合回路数値計算手段と、を備え、 前記結合回路記号計算手段は、 前記結合回路行列計算手段によって求められた結合回路
行列を、それぞれ少なくとも前記行列の1行分からなる
複数の行集合に分割する行列分割手段と、 前記行列分割手段による分割の結果得られた行集合のそ
れぞれに対応しており、自己に対応する行集合に含まれ
る値が0でない要素のエントリを、当該行集合に対応す
るエントリ集合に追加する複数の第1のエントリ追加手
段と、 値が1から前記結合回路行列の行数まで順次変化される
第1の変数が示す変数の消去時に必要となる演算回数が
最小となる第2の変数を順次求めるピボット選択手段
と、 前記結合回路行列中の前記第1の変数が示す行と前記第
2の変数が示す行、及び前記結合回路行列中の前記第1
の変数が示す列と前記第2の変数が示す列とをそれぞれ
交換するピボット交換手段と、 前記複数の第1のエントリ追加手段のそれぞれに対応
し、前記ピボット交換手段によって行及び列が交換され
た結合回路行列行列について変数の消去時に発生するフ
ィルインを対応する行集合毎に求め、該フィルインのエ
ントリを対応する第1のエントリ追加手段でそれぞれエ
ントリが追加されたエントリ集合にさらに追加する複数
の第2のエントリ追加手段と、 前記第1、第2のエントリ追加手段によってエントリが
追加された複数のエントリ集合を用いて、前記結合回路
行列を圧縮する行列圧縮手段と、を備えることを特徴と
する並列回路シミュレーションシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12773898A JP3391262B2 (ja) | 1998-05-11 | 1998-05-11 | 記号計算システム及び方法、並びに並列回路シミュレーションシステム |
US09/307,977 US6636828B1 (en) | 1998-05-11 | 1999-05-10 | Symbolic calculation system, symbolic calculation method and parallel circuit simulation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12773898A JP3391262B2 (ja) | 1998-05-11 | 1998-05-11 | 記号計算システム及び方法、並びに並列回路シミュレーションシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11328155A JPH11328155A (ja) | 1999-11-30 |
JP3391262B2 true JP3391262B2 (ja) | 2003-03-31 |
Family
ID=14967468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12773898A Expired - Fee Related JP3391262B2 (ja) | 1998-05-11 | 1998-05-11 | 記号計算システム及び方法、並びに並列回路シミュレーションシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6636828B1 (ja) |
JP (1) | JP3391262B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7878905B2 (en) | 2000-02-22 | 2011-02-01 | Creative Kingdoms, Llc | Multi-layered interactive play experience |
JP3768375B2 (ja) | 2000-04-04 | 2006-04-19 | Necエレクトロニクス株式会社 | 計算装置および電子回路シミュレーション装置 |
DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
EP1376380A1 (en) * | 2002-06-14 | 2004-01-02 | EADS Deutschland GmbH | Procedure for computing the Choleski decomposition in a parallel multiprocessor system |
US7359929B2 (en) * | 2003-11-12 | 2008-04-15 | City University Of Hong Kong | Fast solution of integral equations representing wave propagation |
JP4942095B2 (ja) * | 2007-01-25 | 2012-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチコア・プロセッサにより演算を行う技術 |
US8204925B2 (en) * | 2008-05-22 | 2012-06-19 | National Instruments Corporation | Controlling or analyzing a process by solving a system of linear equations in real-time |
JP6048500B2 (ja) * | 2012-07-05 | 2016-12-21 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体 |
JP6601222B2 (ja) * | 2016-01-04 | 2019-11-06 | 富士通株式会社 | 行列演算プログラム、行列分割方法、及び並列処理装置 |
JP6176380B2 (ja) * | 2016-09-28 | 2017-08-09 | 富士通株式会社 | 情報処理装置、方法、及びプログラム |
US10331762B1 (en) * | 2017-12-07 | 2019-06-25 | International Business Machines Corporation | Stream processing for LU decomposition |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4825360A (en) * | 1986-07-30 | 1989-04-25 | Symbolics, Inc. | System and method for parallel processing with mostly functional languages |
US5159690A (en) * | 1988-09-30 | 1992-10-27 | Massachusetts Institute Of Technology | Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements |
US5361385A (en) * | 1992-08-26 | 1994-11-01 | Reuven Bakalash | Parallel computing system for volumetric modeling, data processing and visualization |
US5619680A (en) * | 1994-11-25 | 1997-04-08 | Berkovich; Semyon | Methods and apparatus for concurrent execution of serial computing instructions using combinatorial architecture for program partitioning |
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 |
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 |
US6205533B1 (en) * | 1999-08-12 | 2001-03-20 | Norman H. Margolus | Mechanism for efficient data access and communication in parallel computations on an emulated spatial lattice |
-
1998
- 1998-05-11 JP JP12773898A patent/JP3391262B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-10 US US09/307,977 patent/US6636828B1/en not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
A.GITA,外1名,Sparse Gaussian Elimination with Controlled Fill−in on a Shared Memory Multiprocessor,IEEE Transactions on Computer,1989年11月,第38巻,第11号,p.1539−1557 |
大谷浩司,外1名,超並列マシン上での疎行列自動圧縮方式について,情報処理学会研究報告,社団法人情報処理学会,1994年12月 9日,第94巻,第106号(94−OS−67),p.137−144 |
小国力,外4名著,行列計算ソフトウェア WS、スーパーコン、並列計算機,丸善株式会社,1991年11月30日,初版,p.136−137 |
Also Published As
Publication number | Publication date |
---|---|
JPH11328155A (ja) | 1999-11-30 |
US6636828B1 (en) | 2003-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3391262B2 (ja) | 記号計算システム及び方法、並びに並列回路シミュレーションシステム | |
US5542026A (en) | Triangular scalable neural array processor | |
US5404562A (en) | Massively parallel processor including queue-based message delivery system | |
CN112114776A (zh) | 一种量子乘法运算方法、装置、电子装置及存储介质 | |
WO1986005900A1 (en) | An array for simulating computer functions for large computer systems | |
CN115860080B (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
WO1991018348A1 (en) | A triangular scalable neural array processor | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CA1289261C (en) | Polymorphic mesh network image processing system | |
Wang et al. | Solving large systems of linear equations over GF (2) on FPGAs | |
EP0475732A2 (en) | Asynchronous control system for a neuro computer | |
Forster et al. | The Laplacian paradigm in the broadcast congested clique | |
CN114881239A (zh) | 量子生成器的构造方法、装置、介质及电子装置 | |
KR20230014082A (ko) | 병렬 프로세서를 위한 컴파일러 | |
CN108021393A (zh) | 一种计算方法及相关产品 | |
JP3708072B2 (ja) | 半導体演算装置 | |
CN114372583B (zh) | 基于机器学习框架的量子程序优化方法及相关设备 | |
DE69733251T2 (de) | Datenverarbeitungssystem zur dynamischen Verwendung von Betriebsmitteln | |
CN118153701A (zh) | 一种量子数据结构的构建方法及装置 | |
CN118153695A (zh) | 一种量子态的制备方法及装置 | |
Somsky et al. | A massively parallel implementation of the worldline quantum Monte Carlo method | |
JP3000941B2 (ja) | 分散論理シミュレータ | |
JPH0962656A (ja) | 並列計算機 | |
JP2927049B2 (ja) | 画像処理装置 | |
Maydell et al. | Simulation of an interactive workstation for image display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100124 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |