JP2004240541A - 並列分散環境におけるネットワーク回路のシミュレーション方法および装置 - Google Patents
並列分散環境におけるネットワーク回路のシミュレーション方法および装置 Download PDFInfo
- Publication number
- JP2004240541A JP2004240541A JP2003026913A JP2003026913A JP2004240541A JP 2004240541 A JP2004240541 A JP 2004240541A JP 2003026913 A JP2003026913 A JP 2003026913A JP 2003026913 A JP2003026913 A JP 2003026913A JP 2004240541 A JP2004240541 A JP 2004240541A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- partial
- regions
- matrix
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000004364 calculation method Methods 0.000 claims abstract description 141
- 238000004088 simulation Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000006243 chemical reaction Methods 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 239
- 238000012545 processing Methods 0.000 claims description 119
- 230000003993 interaction Effects 0.000 claims description 42
- 108090000623 proteins and genes Proteins 0.000 claims description 40
- 238000012546 transfer Methods 0.000 claims description 29
- 102000004169 proteins and genes Human genes 0.000 claims description 20
- 239000003814 drug Substances 0.000 claims description 11
- 229940079593 drug Drugs 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 10
- 239000000126 substance Substances 0.000 claims description 4
- 210000000056 organ Anatomy 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims 2
- 230000001133 acceleration Effects 0.000 abstract description 14
- 238000000638 solvent extraction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 18
- 238000003379 elimination reaction Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 230000008030 elimination Effects 0.000 description 10
- 150000001875 compounds Chemical class 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000006467 substitution reaction Methods 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000000018 DNA microarray Methods 0.000 description 2
- 238000002940 Newton-Raphson method Methods 0.000 description 2
- 230000008827 biological function Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004879 molecular function Effects 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- GICIECWTEWJCRE-UHFFFAOYSA-N 3,4,4,7-tetramethyl-2,3-dihydro-1h-naphthalene Chemical compound CC1=CC=C2C(C)(C)C(C)CCC2=C1 GICIECWTEWJCRE-UHFFFAOYSA-N 0.000 description 1
- 108091028026 C-DNA Proteins 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000012300 Sequence Analysis Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000002441 X-ray diffraction Methods 0.000 description 1
- 125000003275 alpha amino acid group Chemical group 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000036765 blood level Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001962 electrophoresis Methods 0.000 description 1
- 230000029142 excretion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012482 interaction analysis Methods 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004850 protein–protein interaction Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 150000003384 small molecules Chemical class 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 108700026220 vif Genes Proteins 0.000 description 1
- 238000001086 yeast two-hybrid system Methods 0.000 description 1
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
Abstract
【課題】並列分散計算装置上でネットワーク回路のシミュレーションを効率的に並列分散処理の加速率を向上する高速計算装置を提供する。
【解決手段】非線形素子と線形素子とこれら素子間を連結する配線からなる電気・電子ネットワーク回路の回路表示をバーテックスやエッジから構成されるグラフ表示に変換し、バーテックスとエッジの重付けをし、グラフ理論を用いて複数の領域に分割し、主領域と部分領域の二種類以上の領域にグループ化し、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する前処理過程により、複数の部分回路の計算処理を複数のコンピューティングユニットで並行して処理し、その後、主回路の計算処理を行うことを可能とした高速計算方法。
【選択図】 図7
【解決手段】非線形素子と線形素子とこれら素子間を連結する配線からなる電気・電子ネットワーク回路の回路表示をバーテックスやエッジから構成されるグラフ表示に変換し、バーテックスとエッジの重付けをし、グラフ理論を用いて複数の領域に分割し、主領域と部分領域の二種類以上の領域にグループ化し、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する前処理過程により、複数の部分回路の計算処理を複数のコンピューティングユニットで並行して処理し、その後、主回路の計算処理を行うことを可能とした高速計算方法。
【選択図】 図7
Description
【0001】
【発明の属する技術分野】
本発明は、並列分散計算装置を用いた電気・電子ネットワーク回路の電流―電圧特性のシミュレーション、または、生体分子ネットワーク回路の遺伝子、蛋白質あるいは薬物濃度の時間変化を解析するシミュレーションの計算処理時間の短縮に有用な並列分散環境におけるネットワーク回路のシミュレーション方法および装置に関する。
【0002】
【従来の技術】
近年、例えば、移動型携帯端末に向けたシリコン・オン・システムのように、大規模なデジタル回路とアナログ回路を同一のシリコン基板上に実装し、高速、低消費電力で多機能な電気・電子ネットワーク回路を実現することを目標とした開発が行われている。これには、シミュレーションを用いて設計期間を短縮し開発工数を削減することが期待される。
【0003】
この種の開発では、並列分散計算装置を用いたシミュレーションが行われる。図1〜図3はこの種の並列分散計算装置としての超並列機の構成例を示す図である。
【0004】
図1は、単位となるコンピューティングユニット203が、計算処理を実行するコンピューティングプロセッサユニット201と計算処理を実行するために必要な入力データ、または、計算処理を実行し得られた出力データを記憶するメモリユニット202とより構成されている状態を示す。また、この単位となるコンピューティングユニット203は、これらの間のデータ転送を実行するバス204および205でメッシュ状に接続されたデータ転送ネットワークで結合されていることを示す。転送ネットワークのバス204の一つに制御のためのパソコン100が接続される。このパソコン100はシミュレーションの対象についてのデータの入力、コンピューティングユニット203への計算の分配および各コンピューティングユニット203間および各コンピューティングユニット203の計算結果の集計等の処理を行う。
【0005】
図2は、コンピューティングユニットがパーソナルコンピュータ、または、ワークステーション301の単一マシンから成り、そのマシン間のデータ転送を実行するインサーネット302で接続されたデータ転送ネットワークから構成される超並列機の構成例を示す図である。ここでも、転送ネットワークのインサーネット302に制御のためのパソコン100が接続される。
【0006】
図3は、コンピューティングユニットが複数の超並列機403とパーソナルコンピュータとワークステーション301をインサーネット302で接続されたグリッドマシン401からなり、複数のグリッドマシン401を間の高速なデータ転送を実行する高速ネットワーク402等で接続されたデータ転送ネットワークから構成される広域分散環境での超並列機の構成例を示す図である。ここでも、転送ネットワークの高速ネットワーク402に制御のためのパソコン100が接続される。
【0007】
このような超並列機によって行われるシミュレーションは、シミュレーションの対象に成立するN×N次元の行列を解くことによって行われる。
【0008】
例えば、電気・電子ネットワーク回路のシミュレーションは、各時刻tにおいて、配線上に設定された節における電圧V(t)と非線形素子や線形素子に流れる電流I(t)の間には、キルヒホッフ方程式の関係が成立する。即ち、連立一次方程式に対するG{V(t)}V(t)=I(t)のN×N次元の行列が形成される。ここで、Nは節の数、Gは時刻tでの節における電圧V(t)により決定される非線形素子や線形素子のコンダクタンスと時刻tでの節における電圧V(t)の積が、時刻tでの節間の非線形素子や線形素子に流れる電流I(t)になることを示している。
【0009】
この連立一次方程式において、節と節の間が、非線形素子や線形素子を通して接続されている場合には、キルヒホッフ方程式の行列Gは行列要素をもっている。しかし、節と節の間が非線形素子や線形素子を通して接続されていない場合や他の節を介して接続されている場合には、キルヒホッフ方程式の行列Gは行列要素をもたない。電気・電子ネットワーク回路では、電界効果型トランジスタやバイポーラトランジスタの非線形素子は三端子をもち、抵抗、インダクタンスやキャパシタンスの線形素子は二端子をもつので、一つの節は素子を介して他の一つ節、または、他の二つの節と接続されている場合が多い。従って、節と節の間を非線形素子または線形素子を介して接続されている場合が少ないため、キルヒホッフ方程式の行列Gの行列要素は殆どが零である疎行列になる。
【0010】
また、ポストゲノム時代では、ヒトゲノム計画において遺伝子のシーケンス解析を用いて得られる3万〜5万の遺伝子情報を、DNAチップやc−DNAマイクロアレイを用いて遺伝子間の相互作用の解析が進められている。また、蛋白質の数は、10万程度であり、糖鎖の有無により蛋白質の分子機能が変化することから、蛋白質の総数は数10万個に上ると考えられている。現在、これら蛋白質のアミノ酸配列の相同性から1万6千のファミリーに分類し、分類されたファミリーの中から代表的な蛋白質をターゲットに、NMRやX線解析を用いた蛋白質構造の立体構造解析が進められている。
【0011】
これら蛋白質の間の相互作用や相関関係を解析するためには、電気泳動法、プロテインチップ、イースト2ハイブリッド法等が用いられる。蛋白質間の相互作用の全体像を探る大規模なロテオーム解析が進められている。これら分子機能を対象にする相互作用解析に対して、生体機能の相互作用を記述するフィジオロームの解析も進められている。遺伝子や蛋白質、さらに、は、細胞や臓器や生体内での薬物の低分子化合物との相互作用、即ち、パスウェイの解析が進められている。これら相互作用の情報がKEGGに代表される公用のデータベースに蓄積されつつある。
【0012】
このようなパスウェイを、電気・電子ネットワーク回路と同様に、生体分子ネットワーク回路と見立てたシミュレーションは、遺伝子、蛋白質、低分子化合物の間の静電的、化学的、拡散的な相互作用を解析し、遺伝子や蛋白質の発現濃度や薬物の低分子化合物の代謝や***後の血中濃度等の時間変化を解析するシミュレーションである。
【0013】
例えば、非特許文献1に記述されているように、これら遺伝子、蛋白質、低分子化合物の生体機能分子の濃度をyiとすると、その時間変化はレート方程式(1)で与えられる。
【0014】
【数1】
ここで、tは時間、Aiは生体機能分子yiの最大濃度変化レート、Sは非線形のトランスファー関数、Wijは生体機能分子iとjの間の相互作用を決定するパラメータ、biは反応遅延パラメータ、Diは生体機能分子yIの減衰レートである。この非線形方程式を線形化すれば、生体機能分子濃度の時間変化を記述する連立一次方程式に対して、N×N次元の行列G{y(t)}y(t)=x(t)を得ることができる。ここで、Nは生体機能分子の数、x(t)は生体機能分子yiの最大濃度変化レートAi、生体機能分子iとjの間の相互作用を決定するパラメータWij、反応遅延パラメータbi、生体機能分子yIの減衰レートDIから決定する列ベクトルである。この連立一次方程式において、生体機能分子iとj間に相互作用が働きWijが有限であれば、行列Gの行列要素が存在する。しかし、生体機能分子間に相互作用Wijがなければ、行列Gの行列要素は存在しない。通常、遺伝子の相互作用を記述するパラメータは各遺伝子に対して5〜10個程度と考えられ、ヒト遺伝子の総数3〜5万に比較して極めて少ない。従って、生体分子ネットワーク回路シミュレーションでは、生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの行列要素は殆ど零である疎行列になる。
【0015】
疎行列の連立一次方程式の解を求めるためには、ガウス消去法に代表される連立一次方程式の解法が用いられるが、行列要素を消去する計算手順が複雑である。図4を参照して、これを簡単に説明する。図4では、行列要素の対角成分1601(i1×i1),1604(i2×i2),1607(i3×i3)が存在し、しかも、行列要素の非対角成分1602(i2×i1),1603(i1×i2),1605(i3×i2),1606(i2×i1),1608(i4×i3)および1609(i3×i4)が存在する。ここで、(i2×i1)はi2行i1列の行列要素、(i1×i2)はi1行i2列の行列要素、(i3×i2)はi3行i2列の行列要素、(i3×i4)はi3行i4列の行列要素、(i4×i3)はi4行i3列の行列要素を、それぞれ、表す。
【0016】
ガウス消去法では、対角成分1601(i1×i1)を用いて非対角成分1602(i2×i1)を消去するが、そのとき、非対角成分1603(i1×i2)により対角成分1604(i2×i2)が変更される。従って、対角成分1604(i2×i2)を用いて非対角成分1605(i3×i2)を消去するには、非対角成分1602(i2×i1)を消去した後に非対角成分1605(i3×i2)を消去しなければならない。このことは、非対角成分1602(i2×i1)を消去した後に、全行i2列の非対角成分の行列要素を消去しなければならないことを示している。また、行列要素として、非対角成分1602(i2×i1),1605(i3×i2),1608(i4×i3)と1603(i1×i2),1606(i2×i3),1609(i3×i4)が存在するとすれば、対角成分1601(i1×i1)の処理の後に非対角成分1602(i2×i1)の消去を行い、1602(i2×i1)の消去の後に非対角成分1605(i3×i2)の消去を行い、非対角成分1605(i3×i2)の消去の後に非対角成分1608(i4×i3)の消去を行わなければならない。このようにして、全i行i1列の非対角成分の行列要素を消去した後に、全i行i2列の非対角成分の行列要素を消去し、全i行i3列の非対角成分の行列要素を消去し、全i行i4列の非対角成分の行列要素を消去する計算手順が発生する。
【0017】
この計算手順を元に、下三角にある行列要素の消去を繰り返すと、行列Gは上三角のみ行列要素をもつ構造に変換される。一旦、上三角行列構造に変換すると、I(t)を元に、行列解V(t)は前進代入法または後進代入法を用いて求めることができる。このように、行列要素を消去する計算手順に複雑な関係が存在するため、計算手順が逐次的になり、並列分散的な計算処理が難しくなる。
【0018】
【非特許文献1】
Genetic Network Analysis−The Millennium Opening Version, Pacific Symposium on Boicomputing 2001 Tutorial, 1月(2001)
【非特許文献2】
Irene Moulitsas and George Karypis,”Multilevel Algorithms forGenerating Coarse Grids for Multigrid Methods”, Supercomputing 2001,[平成14年12月12日検索]、インターネット、< URL:http://www.sc2001.org/papers/pap.pap276.pdf>
【0019】
【発明が解決しようとする課題】
並列分散計算装置上で、電気・電子ネットワーク回路のシミュレーションを並列分散処理する場合の実行手順の例を図5に示す。ここでは、並列分散計算装置として、データ転送を実行するバスで4台のプロセッサP1,P2,P3およびP4を並列に接続されたワークステーション上において、図4に示した行列要素の対角成分(i1×i1),(i2×i2),(i3×i3)および(i4×i4)と、非対角成分(i2×i1),(i3×i2),(i4×i3)と(i1×i2),(i2×i3),(i3×i4)とが存在する疎行列の連立一次方程式を、前述した消去法で解くときに実行される処理手順を示す。なお、図5では省略しているが、データ転送を実行するバスには制御のためのパソコン100が備えられて、以下の制御をするものとする。
【0020】
プロセッサP1上で(i1×i2)と(i1×i1)から形成されたデータ1701をプロセッサP3に転送する。プロセッサP3上で、(i2×i1)を消去し、プロセッサP1から送られたデータ1701を元に(i2×i2)を変更する。次に、プロセッサP3上で(i2×i3)と変更後の(i2×i2)から形成されたデータ1702をP2に転送する。プロセッサP2上で、(i3×i2)を消去しプロセッサP3から送られたデータ1702を元に(i3×i3)を変更する。プロセッサP2上で(i3×i4)と変更後の(i3×i3)から形成されたデータ1703をP4に転送する。プロセッサP4上で、(i4×i3)を消去しプロセッサP2から送られたデータ1703を元に(i4×i4)1704を変更する。このようにして、プロセッサP1での計算処理1701の後にプロセッサP3へのデータ送信1705、プロセッサP1からのデータ受信を待ってプロセッサP3での計算処理1702の後にプロセッサP2へのデータ送信1706、プロセッサP3からのデータ受信を待ってプロセッサP2での計算処理1703の後にプロセッサP4へのデータ送信1707が全ての行列要素に対して繰り返される。
【0021】
図6は、データ転送を実行するバスで4台のプロセッサが接続されたワークステーション上で、従来の計算手順と通信手順を用いて並列分散処理により疎行列の解を求めた所要時間の加速化率の例を示す図である。この例では、1台のプロセッサ上で計算する所要時間に比較し、その加速化率は1.2倍程度である。理想的には4台のプロセッサの並列処理により4倍に向上することが期待されるが、実際の加速率は非常に低く並列分散処理の難しさを示している。
【0022】
このように、疎行列構造に対応して行列要素の複雑な消去手順が必要であり、行列要素を消去するために必要な処理手順の数だけの計算処理単位に分割される。各計算処理が実行されるプロセッサ間でデータの送受信が繰り返される。そのデータの送受信先は、行列要素の処理手順と各計算処理が実行されるプロセッサで決まるため、送受信先を一意的に記述することは難しい。各プロセッサ上では、他のプロセッサからの受信を待って計算処理した後に、他のプロセッサへのデータ送信を実行する。そのため、計算処理が逐次的な処理になり、並列分散処理による計算所要時間の加速化が難しい。さらには、疎行列構造から決まる処理手順の数だけ、プロセッサ間のデータ通信の回数が必要である。他のプロセッサからデータを受け取ってから計算処理を実行するための同期を制御する回数が増える。結果的に、データ通信時間や同期を制御する時間が不必要な単一プロセッサ上での計算処理と比較して、並列分散計算装置上での計算所要時間を短縮することが難しい。
【0023】
【課題を解決するための手段】
本発明は、電気・電子ネットワーク回路のシミュレーションあるいは生体分子ネットワーク回路シミュレーションのように、アナログまたはディジタル動作をする対象に対してグラフ理論を適用したシミュレーションを適用可能とする処理を行い、データ通信時間や同期を制御する時間をできるだけ低減する。グラフ理論自体はよく知られていることであるが、従来は論理回路のレイアウトの素子配列の最適化等に利用されているにすぎず、アナログ動作をする対象に対して適用された例は無い。
【0024】
本発明では、以下の手順によりアナログ動作をする電気・電子ネットワーク回路あるいは生体分子ネットワーク回路に対してグラフ理論を適用したシミュレーションを実施可能とする。
(1)非線形要素、線形要素およびこれら要素間を連結するパスからなるシミュレーション対象の回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換する。
(2)全てのバーテックスおよびエッジに重付けをする。
(3)グラフ理論を用いて複数の領域に分割する。
(4)前記領域をバーテックス間を連係するエッジを部分領域内で閉じているエッジのみからなる部分領域と、部分領域間にまたがるエッジのみからなる主領域とにグループ化する。
(5)グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する。
(6)主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配し計算の実行をさせる。
(7)主回路の計算処理のコンピューティングユニットと複数の部分回路の計算処理のコンピューティングユニットの計算結果を統合して回路のシミュレーション結果を得る。
【0025】
さらに、必要に応じて、非線形素子あるいは時定数の大きい相互作用の計算量を対応付けたバーテックスあるいはエッジの重付けを、線形素子あるいは時定数の小さい相互作用の計算量を対応付けたバーテックスあるいはエッジの重付けより大きく設定すること、あるいは、分割した部分領域間のエッジ数を最小化する目的関数、各部分領域内のエッジ数を均等化する拘束条件、各部分領域のバーテックスの重みを均等化する拘束条件を課すこと、さらに、コンピューティングユニットの数に対して部分回路の数を大きくして等の工夫を加えることにより、コンピューティングユニットの計算処理時間を均等化することもできる。
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0027】
なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する場合がある。
【0028】
(実施形態1)
図7は、本発明の実施形態1の概略を示す並列分散環境におけるネットワーク回路の高速計算装置の構成例の概念図である。図1〜図3を参照して並列分散環境としての超並列機の構成例を説明したが、100は制御のためのパソコンでありシミュレーションのデータを入力するための入力装置101、入力されたデータから各コンピューティングユニットに回路計算を分配するための処理を実行するための処理・制御部102および処理・制御部102の動作状況あるいは各コンピューティングユニットに分配して計算された結果を統合した結果を表示するための出力装置103とから構成される。
【0029】
処理・制御部102では、入力装置101を介して導入されるシミュレーションの対象のデータを入力し、上述した手順(1)〜(7)により図1〜図3で説明したような並列分散計算装置104の各コンピューティングユニットに回路計算を分配し、各コンピューティングユニットが行った回路計算の結果を統合し、出力装置103に表示する。ここで、データ入力は、種々の方法が可能であり、例えば、コンポーザと呼ばれる回路ネットワークを実装している場合は各素子や素子間の配線がパーツとして用意され、お絵かきのようにその素子と配線とを組み合わせることで回路ネットワークを構成し、その回路ネットワークの幾何学的な情報を数値データとしてファイルに格納することができる。また、各コンピューティングユニットに回路計算を分配するための前処理過程の処理を、コンピューティングユニットの一つに代行させて、この結果を、各コンピューティングユニットに分配するものとすることもできる。
【0030】
以下、処理・制御部102における各コンピューティングユニットへの回路計算の分配および結果の統合についての処理フローを簡単に説明する。
【0031】
1021は回路表示のステップであり、入力装置101を介して導入されるシミュレーションの対象のデータを入力し表示する。1022はグラフ表示変換のステップであり、シミュレーション対象の回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換する。1023はグラフの重付けのステップであり、全てのバーテックスおよびエッジに重付けをする。1024は領域分割のステップであり、グラフ理論を用いて複数の領域に分割する。1025は2領域グループ化のステップであり、前記領域をバーテックス間を連係するエッジを部分領域内で閉じているエッジのみからなる部分領域と、部分領域間にまたがるエッジのみからなる主領域とにグループ化する。1026は主回路、部分回路分割のステップであり、ステップ1025の結果として得られた2領域グループ化に対応して、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する。1027は回路計算分配のステップであり、主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配する。1028は通信制御のステップであり、回路計算分配のステップ1027の結果に応じて、並列分散計算装置の各コンピューティングユニットが対応すべき回路計算の対象を送信する。また、逆に、並列分散計算装置の各コンピューティングユニットが実施した回路計算の結果を受信する。1029は回路計算結果の統合ステップであり、主回路の計算処理のコンピューティングユニットと複数の部分回路の計算処理のコンピューティングユニットの計算結果を統合して回路のシミュレーション結果を得て、出力装置103に送る。
【0032】
図8は、本発明によるシミュレーションの対象の一例の電気・電子ネットワーク回路を示す図である。電気・電子ネットワーク回路は、MOSFET(Metal Oxide Semiconductor Field Effect Transistor)およびバイポーラトランジスタ等の非線形素子501、抵抗R、インダクタンスLおよびキャパシタンスC等の線形素子502、および、これら非線形素子501および線形素子502を連結する配線上の節a,b,c,−−−(参照符号503で代表される)から構成される。図では、簡便のために、これらの素子の一つに代表的に参照符号を付すに止めた。
【0033】
電気・電子ネットワーク回路のシミュレーションでは、各時刻tにおいて、配線上に設定された節における電圧V(t)と非線形素子や線形素子に流れる電流I(t)の間には、キルヒホッフ方程式の関係が成立する。図8に示す回路の各節に成立するキルヒホッフ方程式はG{V(t)}V(t)=I(t)で表示される。ここで、Gは時刻tでの節503における電圧V(t)により決定される非線形素子501および線形素子502のコンダクタンス、V(t)は時刻tでの節503における電圧、I(t)は時刻tでの節503間の非線形素子501および線形素子502に流れる電流である。すなわち、時刻tでの節503間の非線形素子501および線形素子502に流れる電流I(t)は時刻tでの節503におけるコンダクタンスGと時刻tでの節503における電圧V(t)の積であることを示している。
【0034】
図9は、図8に示す回路の各節に成立するキルヒホッフ方程式のN×N次元行列を示す図である。ここで、Nは節の数である。a,b,c,−−−は図8に示す各節であるが、各節の配列順は、行と列の配列順を同じにすれば、任意で良い。黒で塗りつぶして示す各節の交点の間には上述したキルヒホッフ方程式が成立し、各節には行列要素が存在する、0で示す各節の交点の間には上述したキルヒホッフ方程式が成立せず、各節の行列要素は0となる。すなわち、図8に示す回路のコンダクタンスGの行列要素の大半は零の疎行列である。
【0035】
図10−図12は回路をグラフ表示変換するステップ1022の具体的な処理を説明する図であり、ここでは、図8に示す電気・電子ネットワーク回路を例に説明する。
【0036】
まず、非線形素子501および線形素子502からなる回路表示を、図10に示すように、バーテックス701からなるグラフ表示に変換する。7011,7012,7013,−−−,70118は、それぞれ、バーテックスであり、回路表示における各素子VCC,VS,CiN,−−−,RLに対応する。なお、回路表示における各素子のすべてがバーテックスとなされるので、下付きで付した数字の順序には意味が無い。
【0037】
次に、図11に示すように、配線の上の節503からなる回路表示をエッジ702からなるグラフ表示に変換する。例えば、節aからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Aは回路表示の素子VSおよびCiNに対応するバーテックス7012および7013を含む。また、節bからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Bは回路表示の素子CiN,R1,R2およびT1に対応するバーテックス7013,7014,7017,および7016を含む。節jからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Jは回路表示の素子VCC,VS,R2,RE1,CE1,R4,RE2,CE2およびRLに対応するバーテックス7011,7012,7017,7018,7019,70110,70114,70115および70118を含む。このようにして得られた各エッジ702の各回路素子間ではキルヒホッフ方程式が成立する。即ち、エッジ702の数は、連立一次方程式の次元の数である。
【0038】
また、バーテックス701を囲むエッジ702が二つ重なる場合、そのエッジ702のインデックスを夫々にi番目とj番目とする。これらエッジi番目,j番目のインデックスの順番通りに、節i,jに対するキルヒホッフ方程式の行列を形成する。エッジi番目、j番目の変数となる節を表す列とi番目、j番目の節に対する方程式を行にすれば、行列Gの行列要素の対角成分(i×i),(j×j)と非対角成分(i×j),(j×i)にバーテックス701に対応する非線形素子501と線形素子502を用いた行列要素が生まれる。バーテックス701を囲むエッジ702が三つ重なる場合、そのエッジ702のインデックスを夫々にi番目、j番目およびk番目とする。これらエッジi番目、j番目およびk番目のインデックスの順番通りに、節i,jおよびkに対するキルヒホッフ方程式の行列を形成して、上述したように処理すれば良い。例えば、トランジスタは3端子素子を構成するが、トランジスタ素子をバーテックス701とする場合、3方向の配線に対応するエッジ702がバーテックス701に対して三つ重なることになる。
【0039】
次に、バーテックス701の重付けを説明する。非線形素子501と線形素子502の行列要素の計算量に対応するバーテックスの重み703を付ける。MOSFETやバイポーラトランジスタの非線形素子501では、ある電圧におけるGの行列要素を求めるためには、ニュートンラプソン法等を用いて非線形方程式を解く必要がある。ニュートンラプソン法では、反復的な計算が必要なため、Gの行列要素を求めるために計算所要時間が長くなる。一方、抵抗R、インダクタンスL、キャパシタンスCからなる線形素子502は、電圧に依存せずGの行列要素を決定できるため、その行列要素を求めるための計算所要時間は短い。従って、非線形素子の計算量に対応するバーテックスの重付けを線形素子の計算量に対応するバーテックスの重付けに比較して大きく設定する。このようにして、各バーテックスに掛かる計算量を定量的に表すことができる。図12はこの考え方で、電源回路および抵抗Rに対応するバーテックスの重付けを1、インダクタンスLおよびキャパシタンスCに対応するバーテックスの重付けを2、MOSFETやバイポーラトランジスタの非線形素子に対応するバーテックスの重付けを9として各素子に隣接させて括弧内に表示したものである。
【0040】
次に、エッジ702の重付けを説明する。電気・電子ネットワーク回路のシミュレーションでは、上述したように、計算時間はバーテックスに掛かる計算量で支配されるから、各エッジ702自体の重付けは意味が無い。したがって、エッジ内に含まれる全てのバーテックスの重付けを加算したものをエッジ702の重付けとすることで良い。すなわち、各エッジが連立一次方程式の各式に対応するから、連立一次方程式の各式の演算に要する時間は、これに含まれるバーテックスの重付けの加算値に対応することになる。
【0041】
次に、グラフ理論を用いて複数の領域に分割する手段を述べる。回路表示をバーテックス701とエッジ702からなるグラフ表示に変換すれば、それぞれのエッジ702内に含まれているバーテックス701を失うことなく、共通するバーテックス701を含み、お互いに重なるエッジ702間の幾何学的な関係を変えないかぎり、回路素子の回路図上の配列位置は変わっても、回路表示の非線形素子501および線形素子502と配線上の節503から構成されたネットワーク回路の回路構成は変わらない。そこで、バーテックスを複数の領域に分割することを試みる。例えば、2つの部分領域AR1,AR2に分割するため、一つのバーテックスを一方の部分領域AR1から他方の部分領域AR2に移動する。一つのバーテックスの移動に伴って、そのバーテックスを共通に含み、お互いに重なったエッジの端が一方の部分領域AR1から他方の部分領域AR2に移動する。このとき、エッジ内に含まれている他のバーテックスが部分領域AR2に含まれている場合は、エッジは完全に部分領域AR2に移動したことになる。反対に、エッジ内に含まれている他のバーテックスが部分領域AR1に含まれている場合は、そのエッジは部分領域AR1および部分AR2に跨ることになる。このようにして、部分領域AR1およびAR2のそれぞれに含まれるバーテックスの数と重みおよびエッジの数と重み、さらに部分領域AR1およびAR2に跨るエッジの数と重みを変化させることができる。
【0042】
非特許文献2に記述されているように、逐次的にバーテックスを部分領域間で移動させる分割法(K−M法)を用いて、目的関数や拘束条件を満たす最適な分割パターンを求めることができる。ここで、複数の部分領域に分割する目的関数として、部分領域間に跨るエッジ数を最小にすること、拘束条件1として、部分領域内のエッジ数を均等化すること、拘束条件2として、部分領域内のバーテックスの重みを均等化すること、を満足するものとすれば、連立一次方程式の各式の演算に要する時間を均等化することができる。
【0043】
次に、バーテックスおよびエッジからなるグラフ表示に変換された回路表示を、主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。
【0044】
まず、上述したように、グラフ表示に変換された全領域を、グラフ理論を用いて複数の部分領域に分割する。図13は部分領域に分割した結果を模式的に示す図である。ここでは、図12に示したグラフ表示は関係ない。複数の部分領域AR1,AR2およびAR3が形成されており、各部分領域には、代表的に参照符号801を付したバーテックスとバーテックスを含むエッジ901が存在する。また部分領域間にまたがるエッジ901も存在する。例えば、部分領域AR1にはバーテックス8011および8012を含むエッジ9011が存在する。部分領域間AR1,AR2間にはそれぞれの部分領域のバーテックス8012および8013を含むエッジ9012が存在する。さらに、部分領域間AR2,AR3間にはそれぞれの部分領域のバーテックス8014および8015を含むエッジ9013が存在する。なお、部分領域のバーテックスに参照符号を付すのは省略したが、部分領域間AR1,AR2間にはエッジ9014が、部分領域間AR2,AR3間にはエッジ9015も存在する。
【0045】
次に、図14に示すように、各部分領域AR1,AR2およびAR3から構成されたグループと各部分領域AR間を跨ぐエッジのみから構成された主領域MARに分別する。すなわち、各部分領域のバーテックスには変更は加えないが、各部分領域AR間を跨ぐエッジ9011,9012,9013および9014のみを統合して一つの主領域MARとする。
【0046】
次いで、これら各部分領域ARと主領域MARのエッジに対してインデックス番号をつける。例えば、図14では、部分領域AR1内のエッジにインデックス番号1,2および3を連続に付け、次に隣接した部分領域AR2内のエッジに連続したインデックス番号4,5および6を連続に付け、さらに隣接した部分領域AR3内のエッジに連続したインデックス番号7,8,9および10を連続に付ける。その後に、主領域MAR内の各部分領域AR間に跨るエッジ9011,9012,9013および9014についてインデックス番号11,12,13および14を連続的に付ける。
【0047】
次に、グラフ表示から回路表示への逆変換によるグラフ表示から主回路と部分回路への逆変換について述べる。図13および図14を参照して説明したように、バーテックスおよびエッジからなるグラフ表示に変換された全領域を複数の部分領域と一つの主領域に分割し、このグラフ表示を回路表示に逆変換すると、各部分領域のバーテックスおよびエッジに対応して、非線形素子および線形素子と配線上の節からなる部分回路が形成される。また、同様に、主領域のバーテックスまたはエッジに対応して、非線形素子および線形素子と配線上の節からなる主回路が構成される。すなわち、各部分領域ARおよび主領域MARの各エッジに付けられたインデックス番号に対応して、図12の各エッジに付けられた節の付号(a,b,−−−)を付ければ、グラフ表示が回路表示に逆変換されたことが理解できる。
【0048】
図14に示すエッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成する。キルヒホッフ方程式に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。
【0049】
図15は、上述の考え方で行列を形成したときの行列要素の配列を示す図である。ここで、各部分領域AR内のエッジが同じ部分領域AR内のエッジとのみ重なるときには、同じ部分回路内の節の間にのみ行列要素1001が発生する。すなわち、部分領域AR1の節の間にのみ行列要素10011が発生し、部分領域AR2の節の間にのみ行列要素10012が発生し、部分領域AR3の節の間にのみ行列要素10013が発生する。また、異なる部分領域AR間に跨るエッジのみから構成される主領域MARが導入された結果、異なる部分領域間に跨るエッジが存在しない。このことは、部分回路間に跨る節が存在しなくなり、異なる部分回路の節の間の非対角的な行列要素は存在しないことを意味する。一方、各部分領域ARと主領域MARに跨るエッジの存在は、部分回路と主回路に関係する節の存在を意味する。すなわち、部分回路と主回路の節の間に行列要素10021から10016が発生する。また、主領域MARにのみかかわるエッジの存在により、主回路間の行列要素1003が発生する。このようにして、キルヒホッフ方程式に対する行列Gは、ブロック的な行列要素が対角項に集まり、行列の右側および下側の縁には主回路と部分回路の節の間の行列要素が集まった構造を形成する。
【0050】
このように、本発明では、回路表示をバーテックスおよびエッジからなるグラフ表示に変換し、次いで、グラフ表示に変換された回路表示を、主回路と部分回路にグループ化する前処理を行う。この結果、全回路に対するキルヒホッフ方程式の連立一次方程式の疎行列構造は、複数の部分回路からなるブロック対角行列と主回路からなる縁付きの行列要素とから構成されるブロック対角縁付き行列に変換することができる。
【0051】
ブロック対角縁付き行列の連立一次方程式の解を求める場合は、疎行列の連立一次方程式の解を求める場合に比較し、計算手順と通信手順は容易になる。これを図16および図17を参照して説明する。
【0052】
図16はブロック対角行列と縁付きの行列要素とから構成されるブロック対角縁付き行列の例を示す図である。行列要素のブロック対角成分1101[ib1×ib1],1102[ib2×ib2],1103[ib3×ib3],−−−,1104[ibn×ibn]が存在する。また非対角ブロック成分1105[ibn×ib1],1106[ibn×ib2],1107[ibn×ib3],−−−,1108[ib1×ibn],1109[ib2×ibn],1110[ib3×ibn],−−−が存在する。ここで、例えば、対角ブロック[ib1×ib1]はブロック単位でib1行ib1列の対角ブロックを示し、非対角ブロック[ibn×ib1]はブロック単位でibn行ib1列の非対角ブロックを示す。ブロック対角成分1101、1102,1103および1104は、図15との対応で言えば、行列要素10011,10012,10013,および10014に対応する。また非対角ブロック成分1105〜1110は行列要素10021〜10026に対応する。
【0053】
対角ブロック1101[ib1×ib1]内の行列要素の消去処理では、対角ブロック1001[ib1×ib1]内の対角成分の行列要素を用いる。このとき、非対角ブロックの[ib1×ib2],[ib1×ib3],−−−の行列要素は全て零なので、その行列要素を消去手順によって消去処理する必要は無い。消去処理に伴って変更される必要があるのは、縁に位置する非対角ブロック1008[ib1×ibn]の行列要素である。また、非対角ブロック[ib2×ib1],[ib3×ib1],−−−の行列要素も全て零なので消去処理をする必要はない。一方、消去処理に伴って変更される必要があるのは、縁に位置する非対角ブロック1105[ibn×ib1]の行列要素である。
【0054】
非対角ブロック1105[ibn×ib1]の消去処理は、対角ブロック1101[ib1×ib1]内の対角成分の行列要素を用いる。このとき、非対角ブロックの[ib1×ib2],[ib1×ib3],−−−の行列要素は全て零なので、非対角ブロック1106[ibn×ib2],1107[ib×ib3],−−−の行列要素が変更される必要は無い。消去処理に伴って変更される必要があるのは、対角ブロックの右隅に位置する対角ブロック1004[ibn×ibn]の行列要素である。
【0055】
このように、行列要素の消去手順として関係が生じるのは、ブロック行列1101[ib1×ib1],1108[ib1×ibn],1105[ibn×ib1],および1104[ibn×ibn]の行列要素のみである。即ち、ブロック行列1101[ib1×ib1],1108[ib1×ibn]および1105[ibn×ib1]の行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去を実行する。同様にして、行列要素の消去手順として関係が生じるのは、ブロック行列1102[ib2×ib2],1109[ib2×ibn],1106[ibn×ib2],および1104[ibn×ibn]の行列要素のみである。即ち、ブロック行列1102[ib2×ib2],1109[ib2×ibn]および1106[ibn×ib2]の行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去を実行する。以下、同様に、ブロック行列の対角行列要素と縁に位置する非対角ブロックの行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列の対角ブロックの右隅に位置する対角ブロックの消去を実行する。
【0056】
ここで、ブロック行列1101[ib1×ib1],1108[ib1×ibn],1105[ibn×ib1]の行列要素に関する消去処理、ブロック行列1102[ib2×ib2],1109[ib2×ibn],1106[ibn×ib2]の行列要素に関する消去処理、さらには、他のブロック行列の対角行列要素と縁に位置する非対角ブロックの行列要素に関する消去処理は、それぞれ、独立に並列分散的に実行することができる。その後、消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去処理を実行することができる。
【0057】
上述した主回路と複数の部分回路に分割し構成した電気・電子ネットワーク回路の並列分散処理の実行手順の例を図17に示す。図17の例は、図5で説明した並列分散計算装置と同様に、データ転送を実行するバスで4台のコンピュ−ティングユニットP1,P2,P3およびP4を接続された超並列機を考える。
【0058】
キルヒホッフ方程式の連立一次方程式対して、前処理過程により形成されたブロック対角縁付き行列は、上述したように、ブロック対角成分のブロック行列[ib1×ib1],[ib2×ib2],[ib3×ib3],および[ibn×ibn]が、非対角ブロック成分のブロック行列[ibn×ib1],[ibn×ib2],[ibn×ib3],[ib1×ibn],[ib2×ib]および[ib3×ibn]が、それぞれ、存在する。コンピュ−ティングユニットP1にはブロック行列[ib1×ib1],[ib1×ibn]および[ibn×ib1]の行列要素の消去処理1201を分配し、P2にはブロック行列[ib2×ib2],[ib2×ibn]および[ibn×ib2]の行列要素の消去処理1202を分配し、P3にはブロック行列[ib3×ib3],[ib3×ibn]および[ibn×ib3]の行列要素の消去処理1203を分配する。また、P4にはブロック行列[ibn×ibn]の行列要素の消去処理1205を分配する。すなわち、図16との対応で言えば、ブロック行列1101[ib1×ib1],1108[ib1×ibn]および1105[ibn×ib1]の行列要素に関する消去処理をコンピュ−ティングユニットP1に分配し、ブロック行列1102[ib2×ib2],1109[ib2×ibn]および1106[ibn×ib2]の行列要素に関する消去処理をP2に分配し、ブロック行列1103[ib3×ib3],1109[ib3×ibn]および1106[ibn×ib3]の行列要素に関する消去処理をP3に分配する。さらに、ブロック行列1104[ibn×ibn]の行列要素の消去処理をP4に分配する。
【0059】
上述のように、ブロック行列[ib1×ib1],[ib1×ibn]および[ibn×ib1]の行列要素に関する消去処理1201、ブロック行列[ib2×ib2],[ib2×ibn]および[ibn×ib2]の行列要素に関する消去処理1202、ブロック行列[ib3×ib3],[ib3×ibn]および[ibn×ib3]の行列要素に関する消去処理1203は、それぞれ、独立に実行することができるため、各コンピュ−ティングユニットP1,P2およびP3上で並列分散的に実行することができる。この結果、キルヒホッフ方程式に対する行列Gのブロック行列[ib1×ib1],[ib2×ib2]および[ib3×ib3]は上三角行列に変換される。この後に、これら消去により変更されたデータを各コンピュ−ティングユニットP1,P2およびP3から同時にコンピュ−ティングユニットP4にデータの送信処理1204を行う。送信されたデータを用いて、ブロック行列[ibn×ibn]の行列要素の消去処理1205を実行する。この処理手順により、ブロック行列[ibn×ibn]の行列要素は上三角行列に変換される。前進代入法、または、後進代入法を用いて、ブロック行列[ibn×ibn]の節に対する解Vb(t)1206を求めることができる。一方、解Vb(t)1206をコンピュ−ティングユニットP4からコンピュ−ティングユニットP1,P2,P3にデータ送信する処理1207を実行する。各コンピュ−ティングユニットP1,P2およびP3では、ブロック行列[ib1×ib1],[ib2×ib2]および[ib3×ib3]が上三角行列に変換されていることから、解Vb(t)を元に、前進代入法、または、後進代入法を用いて、ブロック行列の[ib1×ib1],[ib2×ib2]および[ib3×ib3]の節に対する解Vb1(t)1208,Vb2(t)1209およびVb3(t)1210を並列処理で同時に求めることができる。
【0060】
このようにして,コンピュ−ティングユニットP1,P2およびP3での計算処理の後にコンピュ−ティングユニットP4へのデータ送信、これを受けてのP4での計算処理の後にP1,P2およびP3へのデータ送信が繰り返される。ここで、各コンピュ−ティングユニットP1,P2およびP3上で実行される消去処理1201,1202および1203は、ブロック行列の次元がほぼ等しくなるように設定されていれば、計算所要時間はほぼ均等に並列分散処理することができる。ブロック行列[ibn×ibn]の行列の次元は分割領域を跨ぐエッジの数と等しい。したがって、分割された部分回路に跨る節の数が最小になるように部分回路が決定されていれば、その計算所要時間は非常に短いため、部分回路の行列要素の消去をコンピュ−ティングユニットP1,P2またはP3のいずれかで実行しても、並列分散処理の加速化率を低下させることは少ない。
【0061】
並列分散計算装置のコンピュ−ティングユニットは、前述したように、超並列機の他に、パーソナルコンピュータ、ワークステーションから構成することができる。または、複数の超並列機、パーソナルコンピュータクラスタ、ワークステーションクラスタを連結したグリッドマシンにすることができる。これら並列分散計算装置において、そのコンピュ−ティングユニットの数に合わせて、電気・電子ネットワーク回路を部分回路に分割する数を設定する。すなわち、電気・電子ネットワーク回路を部分回路と主回路とに分割するとき、部分回路の数をコンピュ−ティングユニットの数より一つ少なくなるように設定するときは、図7の処理ステップ1027では、各部分回路の計算処理を各コンピュ−ティングユニットに分配する。残された一つのコンピュ−ティングユニットには主回路の計算処理を分配する。各コンピュ−ティングユニット上では、各部分回路の計算処理を並列分散的に同時に実行する。各コンピュ−ティングユニット上で計算処理の後に、残された一つのコンピュ−ティングユニットにデータを送信する。残された一つのコンピュ−ティングユニットでは、データを受信した後に主回路の計算処理を実行する。その計算実行後に、部分回路の計算処理を実行する各コンピュ−ティングユニットに送信する計算手順・通信手順を繰り返す。図7の処理ステップ1028は、制御装置100と並列分散計算装置104の各コンピュ−ティングユニットとの間の通信を制御する。
【0062】
なお、主回路の行列の次元が最小になるように決定されているときは、その計算所要時間は非常に短い。そのため、主回路の計算処理を部分回路の計算処理を実行しているコンピュ−ティングユニット上で実行するものとしても、全体の計算処理を実質的に遅らせることは無い。このような場合には、電気・電子ネットワーク回路を部分回路と主回路とに分割するとき、部分回路の数をコンピュ−ティングユニットの数と同じになるように設定する。処理ステップ1027では、各部分回路の計算処理を各コンピュ−ティングユニットに分配する。各コンピュ−ティングユニット上では、各部分回路の計算処理を並列分散的に同時に実行する。各コンピュ−ティングユニット上で計算処理の後に、コンピュ−ティングユニットのいずれか一つにデータを送信する。データを送信された一つのコンピュ−ティングユニットでは、データを受信した後に主回路の計算処理を実行する。その計算実行後に、主回路の計算処理の結果を各コンピュ−ティングユニットに送信する計算手順・通信手順を繰り返す。
【0063】
また、電気・電子ネットワーク回路の分割の際、コンピュ−ティングユニットの数のα倍の数の部分回路と一つの主回路とに分割するものとしても良い。この場合は、各コンピュ−ティングユニットはα個の部分回路の計算処理を一つの処理単位として分配されることになる。各コンピュ−ティングユニット上では、α個の部分回路の計算処理を並列分散的に同時に実行する。このように、コンピュ−ティングユニットの数のα倍の数の部分回路に分割するときは、分割された部分回路の重み付けを均一化することが簡単になるので、各コンピュ−ティングユニットの負担の均一化がより実行しやすいものとなる。
【0064】
なお、図7に示すグラフ表示のステップ1022から主回路、部分回路分割のステップ1026までの前処理を、制御のためのパソコン100に代えて、部分回路の計算処理を行うコンピュ−ティングユニットのいずれか一つで実行させ、この結果をあらためて部分回路の計算処理を行うコンピュ−ティングユニットに分配するものとしても良い。
【0065】
今、電気・電子ネットワーク回路の全体網を主回路と複数の部分回路に分け、主回路の節の数をNm、部分回路の数をS、各部分回路の節の数をNSであるとして、S個のコンピュ−ティングユニットで並列分散処理する場合の加速化率について説明する。加速化率は(単一コンピュ−ティングユニット上での計算処理時間)を(複数のコンピュ−ティングユニット上での計算処理時間+通信処理時間)で除した値と定義する。ここで、Mは非線形素子と線形素子からなる行列要素の計算量、Bは一つのコンピュ−ティングユニットから全てのコンピュ−ティングユニットにデータを送信または受信する場合の通信の処理負荷である。Pcu(FLOPS)は各コンピュ−ティングユニットの計算処理性能、Pth(bps)はデータ通信ネットワークの通信バンド幅である。
【0066】
単一のコンピュ−ティングユニット上での計算処理時間は、式(2)で与えられる。
【0067】
【数2】
複数のコンピュ−ティングユニット上での計算処理時間+通信処理時間は、次式(3)で与えられる。
【0068】
【数3】
従って、単一コンピュ−ティングユニット上での計算処理時間に対する複数のコンピュ−ティングユニット上での計算所要時間の加速化率は、式(4)で与えられる。
【0069】
【数4】
ここで、主回路の節の数Nmが、部分回路の節の数Nsに対して充分小さい(Nm/NS<<1とする。また、大規模回路では、部分回路の節の数NSは充分に大きいことからNS 3>>M(NS 2)を満たす。式(3)より、加速化率が理想値であるS倍に近づくのは、主回路の節の数Nmが充分小さい場合である。または、主回路を計算処理するコンピュ−ティングユニットの計算処理性能Pcu(FLOPS)が充分高い場合である。さらに、は、データ通信ネットワークの通信バンド幅Pth(bps)が充分大きい場合である。
【0070】
本発明を超並列機上で並列分散処理する高速プロセッサ用ノイズ評価回路に適用した例を述べる。適用例の高速プロセッサ用ノイズ評価回路は、MOSFETの非線形素子と抵抗とキャパシタンスからなる線形素子、並びに、配線上の節から構成されるが、キルヒホッフ方程式G{V(t)}V(t)=I(t)における節の数は、約15000個にもなる。図18は、図8および図9を参照して説明した従来の手法で、この回路の各節に成立するキルヒホッフ方程式の15000×15000次元行の疎行列Gを図形化して示す図である。図で濃く表されている位置ほど行列要素の数が多いことを意味する。
【0071】
本発明では、MOSFETの非線形素子と抵抗とキャパシタンスからなる線形素子、並びに、配線上の節から構成される同じ高速プロセッサ用ノイズ評価回路をMOSFET、抵抗とキャパシタンスはバーテックスのグラフ表示に、節はエッジのグラフ表示に変換する。バーテックスの重付けとして、MOSFET、キャパシタンス、抵抗に対するバーテックスの重付けを10:2:1とした。
【0072】
次に、コンピュ−ティングユニットの数に合わせて部分領域の分割数を設定し、グラフ理論を用いて、コンピュ−ティングユニット数と同じ数の部分領域に分割した。ここで、複数の領域に分割する目的関数として、分割領域間に跨るエッジ数を最小にする。また、拘束条件として、分割領域内のバーテックスの重みを均等化する条件を設定した。次に、主回路と部分回路の二種類以上の回路にグループ化するため、部分領域を跨ぐエッジから構成された主領域を設定する。
【0073】
従って、全領域は、各部分領域から構成されたグループと部分領域を跨ぐエッジのみから構成された主領域に分別される。これら部分領域と主領域に対して、エッジのインデックス番号をつける。部分領域内のエッジにインデックス番号を連続に付け、異なる部分領域内のエッジに継続するようにインデックス番号を連続に付ける。このインデックス番号をコンピュ−ティングユニットの数の部分領域のエッジについて連続に付ける。その後に、部分領域間に跨るエッジから構成された主領域内のエッジについてインデックス番号を継続的に連続的に付ける。
【0074】
さらに、主回路と部分回路の二種類以上の回路にグループ化する。部分領域のエッジとバーテックスのグラフ表示を回路表示に変換するとき、部分領域のバーテックスまたはエッジに対応し、MOSFET、抵抗、キャパシタンスと配線からなる部分回路が形成される。また、主領域のエッジまたはバーテックスのグラフ表示を回路表示に変換するとき、主領域のバーテックスまたはエッジに対応し、MOSFET、抵抗、キャパシタンスと配線からなる主回路が構成される。部分領域と主領域のエッジのそれぞれに付けられたインデックス番号に対応し節の番号をつける。エッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成する。この処理により、キルヒホッフ方程式に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。
【0075】
図19は、高速プロセッサ用ノイズ評価回路に成立するキルヒホッフ方程式の連立方程式を、本発明を適用して得られたブロック対角縁付き行列として図形化した図である。図で濃く表されている位置ほど行列要素の数が多いことを意味する。図は、後述するように、8台のプロセッサで構成される超並列機上での実行を前提として得られたものである。当然のことながら、8領域に分割された部分回路に跨る節の数が最小になり、分割された部分回路内の非線形素子と線形素子からなる行列要素を求める計算量が全ての部分回路でほぼ等しくなるように分割された。
【0076】
データ転送を実行するバスで接続された8台のプロセッサP1,P2,−−−,P8からなる超並列機上での実行手順を示す。キルヒホッフ方程式の連立一次方程式対して、前処理過程により形成されたブロック対角縁付き行列において、ブロック対角成分のブロック行列として、[ib1×ib1],[ib2×ib2],−−−,[ib8×ib8]および[ib9×ib9]が存在する。非対角ブロック成分のブロック行列として、[ib9×ib1],[ib9×ib2],−−−,[ib9×ib8]、並びに、[ib1×ib9],[ib2×ib9],−−−,[ib8×ib9]が存在する。プロセッサP1にはブロック行列[ib1×ib1],[ib1×ib9]および[ib9×ib1]の行列要素を分配し、プロセッサP2にはブロック行列[ib2×ib2],[ib2×ib9]および[ib9×ib2]の行列要素を分配する。他のブロック行列の行列要素も同様にプロセッサP3〜P7に分配し、プロセッサP8にはブロック行列[ib8×ib8],[ib8×ib9]および[ib9×ib8]の行列要素を分配する。
【0077】
ブロック行列[ib1×ib1],[ib1×ib9]および[ib9×ib1]の行列要素に関する消去処理、ブロック行列[ib2×ib2],[ib2×ib9]および[ib9×ib2]の行列要素に関する消去処理、他のブロック行列の行列要素に関する消去処理、および、ブロック行列[ib8×ib8],[ib8×ib9]および[ib9×ib8]の行列要素に関する消去処理は独立に実行することができるため、各プロセッサP1,P2,−−−,P8上で並列分散的に実行することができる。このようにして、行列Gのブロック行列[ib1×ib1],[ib2×ib2],−−−,[ib8×i8]は上三角行列に変換される。この後、これら消去により変更されたデータを各プロセッサP1,P2,−−−,P7から同時にプロセッサP8にデータを転送する。プロセッサP8では、転送されたデータとブロック行列[ib9×ib9]の行列要素を用いて、ブロック行列[ib9×ib9]の行列要素の消去を実行する。
【0078】
この処理手順により、ブロック行列[ib9×ib9]の行列要素は上三角行列に変換され、前進代入法、または、後進代入法を用いて、ブロック行列[ib9×ib9]の節に対する解V9(t)を求めることができる。一方、解V9(t)をプロセッサP8からプロセッサP1,P2,−−−,P7にデータ転送する。各プロセッサP1,P2,−−−,P8では、ブロック行列[ib1×ib1],[ib2×ib2],−−−,[ib8×i8]が上三角行列に変換されていることから、解V9(t)を元に、前進代入法、または、後進代入法を用いて、ブロック行列の[ib1×ib1],[ib2×ib2],−−−,[ib8×ib8]の節に対する解V1(t),−−−,V8(t)を並列処理で同時に求めることができる。
【0079】
図20は、本発明を適用して超並列機上で高速プロセッサ用ノイズ評価回路の並列分散処理を実行したときのプロセッサに対する加速化率を示す。8台のプロセッサで最高4.1倍の加速率を得ることができた。
【0080】
(実施形態2)
次に、生体分子ネットワーク回路に本発明を適用する例を述べる。図21は生体分子ネットワーク回路を模式的に示す図の例である。生体分子ネットワーク回路は、G1,G2,−−−,G4で示す遺伝子19011,19012,−−−,19014、P1,P2,−−−,P4で示す蛋白質19021,19022,−−−,19024、D1,D2で示す低分子化合物19031,19032の生体機能分子とその生体機能分子間の静電的、化学的、拡散的な相互作用19041,19042および19043から構成される。相互作用19041,19042および19043は、相互作用の時定数が短い場合を太線19041、時定数が中程度の場合を実線19042、時定数が長い場合を破線19043で示した。
【0081】
生体分子ネットワーク回路のシミュレーションは生体機能分子濃度の時間変化を解析することを意味する。生体機能分子濃度yiの時間変化を記述する連立一次方程式は、N×N次元の行列G{y(t)}y(t)=x(t)を形成する。ここで、Nは生体機能分子の数である。x(t)は式(1)から決定される列ベクトルである。この生体分子ネットワーク回路に成立する連立一次方程式の行列G{y(t)}y(t)=x(t)を、電気・電子ネットワーク回路に成立する連立一次方程式の行列G{V(t)}V(t)=I(t)と対比して明らかなように、実施形態1で説明した処理が実施形態2でも採用できることは容易に理解できる。
【0082】
この連立一次方程式において、生体機能分子iとj間に相互作用が働けば、行列Gの行列要素が存在する。しかし、生体機能分子間に相互作用がなければ、行列Gの行列要素は存在しない。通常、遺伝子の相互作用を記述するパラメータは各遺伝子に対して5〜10個程度と考えられ、ヒト遺伝子の総数3〜5万に比較して極めて少ない。従って、図21に示す生体分子ネットワーク回路のシミュレーションでは、図22に示すように、生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの行列要素は殆ど零である疎行列になる。
【0083】
生体分子ネットワーク回路シミュレーションにおいて、遺伝子1901、蛋白質1902と薬物1903の低分子化合物とこれら生体機能分子間を連結する相互作用1904からなるネットワーク回路を主回路と部分回路に分割する手段を述べる。
【0084】
遺伝子1901、蛋白質1902と薬物の低分子化合物1903からなる回路表示を、図23に示すように、生体機能分子1901,1902および1903からなる回路表示をバーテックス2101からなるグラフ表示に変換し、相互作用1904からなる回路表示をエッジ2102からなるグラフ表示に変換する。これは、図10から図12で説明した電気・電子ネットワーク回路の回路表示をグラフ表示に変換するのと同様の手順である。生体分子ネットワーク回路が電気・電子ネットワーク回路と異なるのは、電気・電子ネットワーク回路がキルヒホッフの方程式を基礎とするのに対して、生体分子ネットワーク回路は式(1)で説明したレート方程式が基礎となっていることである。すなわち、生体分子ネットワーク回路では、各バーテックス2101が生体機能分子濃度の時間変化を記述する連立一次方程式の変数に対応する。電気・電子ネットワーク回路では、エッジの数が連立一次方程式の次元の数であったのに対し、生体分子ネットワーク回路ではバーテックス2101の数が連立一次方程式の次元の数である。
【0085】
したがって、エッジ2102に含まれるバーテックス2101のインデックスを夫々にi番目とj番目として、これらバーテックスi番目、j番目のインデックスの順番通りに、生体機能分子i,jに対する濃度の時間変化を記述する連立一次方程式の行列を形成する。i,j番目の変数を表す列とi,j番目の生体機能分子に対する方程式を行にすれば、行列Gの行列要素の対角成分(i×i)、(j×j)と非対角成分(i×j)と(j×i)にエッジ2102に対応して相互作用1904を用いた行列要素が発生する。
【0086】
次に、バーテックス2101とエッジ2102の重付けを述べる。電気・電子ネットワーク回路と異なり、生体分子ネットワーク回路では生体機能分子自体には時定数の概念が無いから、エッジ2102に含まれる生体機能分子の相互作用の時定数に対応してエッジの重み付けをする。相互作用の時定数の短い場合は、一方の生体機能分子の濃度が変化すると他方の生体機能分子の濃度は短時間で変化する。相互作用の時定数の長い場合は、一方の生体機能分子濃度の変化は他方の生体機能分子濃度に影響を及ぼしにくい。従って、時定数の短い相互作用に対応したエッジの重付けを時定数の長い相互作用に対応したエッジの重付けに比較して大きく設定する。図23では、これを図21と同様にエッジの線の太さで示した。
【0087】
次に、グラフ理論を用いて複数の領域に分割する方法を述べる。生体分子ネットワーク回路をバーテックスとエッジからなるグラフ表示にすれば、エッジ内に含まれているバーテックス、バーテックスを共通に含み、お互いに重なるエッジの幾何学的な形状を変えないかぎり、遺伝子1901、蛋白質1902と薬物の低分子化合物1903と生体機能分子間の相互作用1904から構成されたネットワーク回路は変わらない。したがって、図24に示すように、部分領域AR1,AR2およびAR3に分割し、各部分領域のみに属するエッジと部分領域間に跨るエッジとに分割する。エッジ22011は部分領域のみに属し、エッジ22012,22013は部分領域間に跨る。参照符号2203を付したのはバーテックスである。これは図13で説明したと同様である。
【0088】
前述の非特許文献2に記述されているように、逐次的にバーテックスを領域間で移動させるK−M法を用いて、目的関数や拘束条件を満たす最適な分割方法を求めることができる。ここで、複数の領域に分割する目的関数として、分割領域間に跨るエッジの重みを最小にする。また、拘束条件として、分割領域内のバーテックスの数を均等化する。目的関数では、分割された部分回路に跨る相互作用の時定数が長いため、部分回路内の生体機能分子濃度の変化が部分回路間の生体機能分子の濃度に影響を及ぼしにくく、部分回路毎に分割し生体機能分子の濃度を解析することができる。拘束条件では、分割された部分回路内の生体機能分子の数が等しくなるように分割しているため、部分回路毎の生体機能分子濃度に対する連立一次方程式の次元の数が等しくなり、計算所要時間を均等化できることは、生体分子ネットワーク回路でも同じである。
【0089】
次に、主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。図24に示すように、全領域は、グラフ理論を用いて複数の領域に分割すると、複数の部分領域AR1,AR2およびAR3の内部にのみ存在するエッジ22011,22013,22015,−−−と、部分領域AR1,AR2およびAR3間を跨ぐエッジ22012および22014から構成される。これから、図25に示すように、各部分領域AR1,AR2およびAR3から構成されたグループと部分領域AR1,AR2およびAR3間を跨ぐエッジ22012および22014に含まれるバーテックス22033および23025から構成された主領域MARに分別する。これら部分領域AR1,AR2およびAR3と主領域MARにある全てのバーテックスに対してインデックス番号をつける。この際、各部分領域AR1,AR2およびAR3内のバーテックスにインデックス番号を連続に付け、次に異なる部分領域内のバーテックスに継続するようにインデックス番号を連続に付ける。このインデックス番号を全ての部分領域のバーテックスについて連続に付け、その後に、主領域MARのバーテックスにインデックス番号を連続的に付ける。図では、インデックス番号をバーテックスに隣接して示した。
【0090】
図25と図14とを対比して分かるように、電気・電子ネットワーク回路ではエッジに着目してインデックス番号が付されたのに対して、生体分子ネットワーク回路ではバーテックスに着目してインデックス番号が付される。これは、先にも述べたように、電気・電子ネットワーク回路がキルヒホッフの方程式を基礎とするのに対して、生体分子ネットワーク回路は式(1)で説明したレート方程式が基礎となっていることによる。
【0091】
次に、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。部分領域のエッジとバーテックスのグラフ表示を回路表示に変換するとき、部分領域のバーテックスまたはエッジに対応し、遺伝子、蛋白質と薬物の低分子化合物と生体機能分子間の相互作用からなる部分回路が形成される。また、主領域のエッジまたはバーテックスのグラフ表示を回路表示に変換するとき、主領域のバーテックスまたはエッジに対応し、遺伝子、蛋白質と薬物の低分子化合物と生体機能分子間の相互作用からなる主回路が構成される。部分領域のバーテックスに付けられたインデックス番号と主領域のバーテックスに付けられたインデックス番号に対応し節の番号をつける。図26に示すように、バーテックスに付けられたインデックス番号の順序で、生体機能素子の濃度に対する変数を列として表し、生体機能素子の濃度に対する方程式を行として連立一次方程式を形成する。生体機能素子濃度に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。これは、部分領域内のバーテックスが同じ部分領域内のエッジ内に含まれるときは、同じ部分回路内の生体機能素子の間に行列要素2401が発生する。また、主領域が導入され、異なる部分領域に跨るエッジが存在しないことから、部分回路に跨る生体機能分子間の相互作用が存在しなくなり、異なる部分回路の生体機能素子間の非対角的な行列要素は存在しない。一方、部分領域と主領域を跨るエッジは、部分回路と主回路に関係する生体機能分子間の相互作用が存在するため、部分回路と主回路の生体機能素子の間に行列要素2402が発生する。また、主回路間の行列要素2403が発生する。このようにして、生体機能素子濃度の時間変化に対する方程式に対する行列Gは、ブロック的な行列要素が対角項に集まり、行列の右隅の縁には主回路、並びに、主回路と部分回路の節の間の行列要素が集まった構造を形成する。これら前処理過程を通して、生体分子ネットワーク回路に対する連立一次方程式の疎行列構造は、複数の部分回路からなるブロック対角行列に主回路からなる縁付きの行列要素が構成され、ブロック対角縁付き行列に変換することができる。
【0092】
ブロック対角縁付き行列になれば、電気・電子ネットワーク回路に対して実施したと同様に、主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配する手段と主回路と複数の部分回路間の通信手順を用いて、生体分子ネットワーク回路シミュレーションの計算所要時間を短縮することができる。
【0093】
【発明の効果】
本発明によれば、並列分散処理の加速化率を向上することができる。
【図面の簡単な説明】
【図1】本発明の適用対象の並列分散計算装置としての超並列機の構成例を示す図。
【図2】本発明の適用対象の並列分散計算装置としての超並列機の他の構成例を示す図。
【図3】本発明の適用対象の並列分散計算装置としての超並列機の他の構成例を示す図。
【図4】ガウス消去法に代表される連立一次方程式の解法の従来例の一つを説明する図。
【図5】並列分散計算装置上で、電気・電子ネットワーク回路のシミュレーションを並列分散処理する場合の従来例の一つの実行手順の例を示す図。
【図6】データ転送を実行するバスで4台のプロセッサが接続されたワークステーション上で、従来の計算手順と通信手順を用いて並列分散処理により疎行列の解を求めた所要時間の加速化率の例を示す図。
【図7】本発明の実施形態1の概略を示す並列分散環境におけるネットワーク回路の高速計算装置の構成例の概念図。
【図8】本発明によるシミュレーションの対象の一例の電気・電子ネットワーク回路を示す図。
【図9】図8に示す回路の各節に成立するキルヒホッフ方程式のN×N次元行列を示す図。
【図10】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の第1段階を説明する図。
【図11】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の第2段階を説明する図。
【図12】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の最終段階を説明する図。
【図13】グラフ表示に変換された全領域をグラフ理論を用いて複数の部分領域に分割した結果を模式的に示す図。
【図14】各部分領域AR1,AR2およびAR3から構成されたグループと各部分領域AR間を跨ぐエッジのみから構成された主領域MARに分別した結果を模式的に示す図。
【図15】図14に示すエッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成したときの行列要素の配列を示す図。
【図16】ブロック対角行列と縁付きの行列要素とから構成されるブロック対角縁付き行列の例を示す図。
【図17】主回路と複数の部分回路に分割し構成した電気・電子ネットワーク回路の並列分散処理の実行手順の例を示す図。
【図18】図8および図9を参照して説明した従来の手法で、キルヒホッフ方程式の連立方程式の15000×15000次元行の疎行列Gの処理を図形化して示す図。
【図19】図18と同じキルヒホッフ方程式の連立方程式を、本発明を適用して得られたブロック対角縁付き行列とした後の疎行列Gの処理を図形化した図。
【図20】本発明を適用して超並列機上で高速プロセッサ用ノイズ評価回路の並列分散処理を実行したときのプロセッサに対する加速化率を示す図。
【図21】本発明を適用する生体分子ネットワーク回路の例を模式的に示す図。
【図22】図21に示す生体分子ネットワーク回路の生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの例を示す図。
【図23】図21の生体分子ネットワーク回路表示をバーテックスおよびエッジからなるグラフ表示に変換した結果を示す図。
【図24】図23のグラフ表示を部分領域AR1,AR2およびAR3に分割し、各部分領域のみに属するエッジと部分領域間に跨るエッジとに分割した例を示す図。
【図25】グラフ理論を用いて複数の部分領域に分割された全領域を各部分領域AR1,AR2およびAR3および主領域MARに分別した例を示す図。
【図26】図25に示すバーテックスに付けられたインデックス番号の順序で、生体機能素子の濃度に対する変数を列として表し、生体機能素子の濃度に対する方程式を行として連立一次方程式を形成したときの行列要素の配列を示す図。
【符号の説明】
100…制御のためのパソコン、101…入力装置、102…処理・制御部、103…出力装置、104…並列分散計算装置、201…コンピューティングプロセッサユニット、202…メモリユニット、203…コンピューティングユニット、204…データ転送ネットワーク、301…パーソナルコンピュータまたはワークステーション、302…インサーネット、401…グリッドマシン、402…高速ネットワーク、403…超並列機、1021…回路表示のステップ、1022…グラフ表示変換のステップ、1023…グラフの重付けのステップ、1024…領域分割のステップ、1025…2領域グループ化のステップ、1026…主回路、部分回路分割のステップ、1027…回路計算分配のステップ、1028…通信制御のステップ、1029…回路計算結果の統合ステップ、501…非線形素子、502…線形素子、503…節、701…バーテックス、702…エッジ、703…重付け、801…バーテックス、901…エッジ、902…主領域でのエッジのインデックス番号、AR…部分領域、MAR…主領域、1001…部分回路間のブロック行列、1002…部分回路と主回路間のブロック行列、1003…主回路間のブロック行列、1101…ib1行ib1列の対角ブロック、1102…ib2行ib2列の対角ブロック、1103…ib3行ib3列の対角ブロック、1004…ibn行ibn列の対角ブロック、1105…ibn行ib1列の非対角ブロック、1106…ibn行ib2列の非対角ブロック、1107…ibn行ib3列の非対角ブロック、1108…ib1行ibn列の非対角ブロック、1109…ib2行ibn列の非対角ブロック、1110…ib3行ibn列の非対角ブロック、1201…ib1行ib1列,ib1行ibn列およびibn行ib1列の対角ブロックの行列要素に関する消去処理、1202…ib2行ib2列,ib2行ib列およびib行ib2列の対角ブロックの行列要素に関する消去処理、1203…ib3行ib3列,ib3行ibn列およびibn行ib3列の対角ブロックの行列要素に関する消去処理、1204…P1,P2およびP3のコンピュ−ティングユニットからP4のコンピュ−ティングユニットへのデータの送信処理、1205…ibn行ibn列の対角ブロックの行列要素に関する消去処理、1206…ブロック行列のibn行ibn列の節に対する解、1207…P4のコンピュ−ティングユニットからP1,P2およびP3のコンピュ−ティングユニットへのデータの送信処理、1208…ブロック行列のib3行ib3列の節に対する解、1209…ブロック行列のib2行ib2列の節に対する解、1210…ブロック行列のib1行ib1列の節に対する解、1601…i1行i1列の行列要素、1602…i2行i1列の行列要素、1603…i1行i2列の行列要素、1604…i2行i2列の行列要素、1605…i3行i2列の行列要素、1606…i2行i3列の行列要素、1607…i3行i3列の行列要素、1608…i4行i3列の行列要素、1609…i3行i4列の行列要素、1701…i1行i1列およびi1行i2列の行列要素に関する消去処理、1702…i2行i1列,i2行i2列およびi2行i3列の行列要素に関する消去処理、1703…i3行i2列,i3行i3列およびi3行i4列の行列要素に関する消去処理、1704…i4行i3列およびi4行i4列の行列要素に関する消去処理、1705…P1からP3へのデータ送信、1706…P3からP2へのデータ送信、1707…P2からP4へのデータ送信、1708…P4からP2へのデータ送信、1901…遺伝子、1902…蛋白質、1903…薬物の低分子化合物、2101…バーテックス、2102…エッジ、2401…部分回路間のブロック行列、2402…部分回路と主回路間のブロック行列、2403…主回路間のブロック行列。
【発明の属する技術分野】
本発明は、並列分散計算装置を用いた電気・電子ネットワーク回路の電流―電圧特性のシミュレーション、または、生体分子ネットワーク回路の遺伝子、蛋白質あるいは薬物濃度の時間変化を解析するシミュレーションの計算処理時間の短縮に有用な並列分散環境におけるネットワーク回路のシミュレーション方法および装置に関する。
【0002】
【従来の技術】
近年、例えば、移動型携帯端末に向けたシリコン・オン・システムのように、大規模なデジタル回路とアナログ回路を同一のシリコン基板上に実装し、高速、低消費電力で多機能な電気・電子ネットワーク回路を実現することを目標とした開発が行われている。これには、シミュレーションを用いて設計期間を短縮し開発工数を削減することが期待される。
【0003】
この種の開発では、並列分散計算装置を用いたシミュレーションが行われる。図1〜図3はこの種の並列分散計算装置としての超並列機の構成例を示す図である。
【0004】
図1は、単位となるコンピューティングユニット203が、計算処理を実行するコンピューティングプロセッサユニット201と計算処理を実行するために必要な入力データ、または、計算処理を実行し得られた出力データを記憶するメモリユニット202とより構成されている状態を示す。また、この単位となるコンピューティングユニット203は、これらの間のデータ転送を実行するバス204および205でメッシュ状に接続されたデータ転送ネットワークで結合されていることを示す。転送ネットワークのバス204の一つに制御のためのパソコン100が接続される。このパソコン100はシミュレーションの対象についてのデータの入力、コンピューティングユニット203への計算の分配および各コンピューティングユニット203間および各コンピューティングユニット203の計算結果の集計等の処理を行う。
【0005】
図2は、コンピューティングユニットがパーソナルコンピュータ、または、ワークステーション301の単一マシンから成り、そのマシン間のデータ転送を実行するインサーネット302で接続されたデータ転送ネットワークから構成される超並列機の構成例を示す図である。ここでも、転送ネットワークのインサーネット302に制御のためのパソコン100が接続される。
【0006】
図3は、コンピューティングユニットが複数の超並列機403とパーソナルコンピュータとワークステーション301をインサーネット302で接続されたグリッドマシン401からなり、複数のグリッドマシン401を間の高速なデータ転送を実行する高速ネットワーク402等で接続されたデータ転送ネットワークから構成される広域分散環境での超並列機の構成例を示す図である。ここでも、転送ネットワークの高速ネットワーク402に制御のためのパソコン100が接続される。
【0007】
このような超並列機によって行われるシミュレーションは、シミュレーションの対象に成立するN×N次元の行列を解くことによって行われる。
【0008】
例えば、電気・電子ネットワーク回路のシミュレーションは、各時刻tにおいて、配線上に設定された節における電圧V(t)と非線形素子や線形素子に流れる電流I(t)の間には、キルヒホッフ方程式の関係が成立する。即ち、連立一次方程式に対するG{V(t)}V(t)=I(t)のN×N次元の行列が形成される。ここで、Nは節の数、Gは時刻tでの節における電圧V(t)により決定される非線形素子や線形素子のコンダクタンスと時刻tでの節における電圧V(t)の積が、時刻tでの節間の非線形素子や線形素子に流れる電流I(t)になることを示している。
【0009】
この連立一次方程式において、節と節の間が、非線形素子や線形素子を通して接続されている場合には、キルヒホッフ方程式の行列Gは行列要素をもっている。しかし、節と節の間が非線形素子や線形素子を通して接続されていない場合や他の節を介して接続されている場合には、キルヒホッフ方程式の行列Gは行列要素をもたない。電気・電子ネットワーク回路では、電界効果型トランジスタやバイポーラトランジスタの非線形素子は三端子をもち、抵抗、インダクタンスやキャパシタンスの線形素子は二端子をもつので、一つの節は素子を介して他の一つ節、または、他の二つの節と接続されている場合が多い。従って、節と節の間を非線形素子または線形素子を介して接続されている場合が少ないため、キルヒホッフ方程式の行列Gの行列要素は殆どが零である疎行列になる。
【0010】
また、ポストゲノム時代では、ヒトゲノム計画において遺伝子のシーケンス解析を用いて得られる3万〜5万の遺伝子情報を、DNAチップやc−DNAマイクロアレイを用いて遺伝子間の相互作用の解析が進められている。また、蛋白質の数は、10万程度であり、糖鎖の有無により蛋白質の分子機能が変化することから、蛋白質の総数は数10万個に上ると考えられている。現在、これら蛋白質のアミノ酸配列の相同性から1万6千のファミリーに分類し、分類されたファミリーの中から代表的な蛋白質をターゲットに、NMRやX線解析を用いた蛋白質構造の立体構造解析が進められている。
【0011】
これら蛋白質の間の相互作用や相関関係を解析するためには、電気泳動法、プロテインチップ、イースト2ハイブリッド法等が用いられる。蛋白質間の相互作用の全体像を探る大規模なロテオーム解析が進められている。これら分子機能を対象にする相互作用解析に対して、生体機能の相互作用を記述するフィジオロームの解析も進められている。遺伝子や蛋白質、さらに、は、細胞や臓器や生体内での薬物の低分子化合物との相互作用、即ち、パスウェイの解析が進められている。これら相互作用の情報がKEGGに代表される公用のデータベースに蓄積されつつある。
【0012】
このようなパスウェイを、電気・電子ネットワーク回路と同様に、生体分子ネットワーク回路と見立てたシミュレーションは、遺伝子、蛋白質、低分子化合物の間の静電的、化学的、拡散的な相互作用を解析し、遺伝子や蛋白質の発現濃度や薬物の低分子化合物の代謝や***後の血中濃度等の時間変化を解析するシミュレーションである。
【0013】
例えば、非特許文献1に記述されているように、これら遺伝子、蛋白質、低分子化合物の生体機能分子の濃度をyiとすると、その時間変化はレート方程式(1)で与えられる。
【0014】
【数1】
ここで、tは時間、Aiは生体機能分子yiの最大濃度変化レート、Sは非線形のトランスファー関数、Wijは生体機能分子iとjの間の相互作用を決定するパラメータ、biは反応遅延パラメータ、Diは生体機能分子yIの減衰レートである。この非線形方程式を線形化すれば、生体機能分子濃度の時間変化を記述する連立一次方程式に対して、N×N次元の行列G{y(t)}y(t)=x(t)を得ることができる。ここで、Nは生体機能分子の数、x(t)は生体機能分子yiの最大濃度変化レートAi、生体機能分子iとjの間の相互作用を決定するパラメータWij、反応遅延パラメータbi、生体機能分子yIの減衰レートDIから決定する列ベクトルである。この連立一次方程式において、生体機能分子iとj間に相互作用が働きWijが有限であれば、行列Gの行列要素が存在する。しかし、生体機能分子間に相互作用Wijがなければ、行列Gの行列要素は存在しない。通常、遺伝子の相互作用を記述するパラメータは各遺伝子に対して5〜10個程度と考えられ、ヒト遺伝子の総数3〜5万に比較して極めて少ない。従って、生体分子ネットワーク回路シミュレーションでは、生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの行列要素は殆ど零である疎行列になる。
【0015】
疎行列の連立一次方程式の解を求めるためには、ガウス消去法に代表される連立一次方程式の解法が用いられるが、行列要素を消去する計算手順が複雑である。図4を参照して、これを簡単に説明する。図4では、行列要素の対角成分1601(i1×i1),1604(i2×i2),1607(i3×i3)が存在し、しかも、行列要素の非対角成分1602(i2×i1),1603(i1×i2),1605(i3×i2),1606(i2×i1),1608(i4×i3)および1609(i3×i4)が存在する。ここで、(i2×i1)はi2行i1列の行列要素、(i1×i2)はi1行i2列の行列要素、(i3×i2)はi3行i2列の行列要素、(i3×i4)はi3行i4列の行列要素、(i4×i3)はi4行i3列の行列要素を、それぞれ、表す。
【0016】
ガウス消去法では、対角成分1601(i1×i1)を用いて非対角成分1602(i2×i1)を消去するが、そのとき、非対角成分1603(i1×i2)により対角成分1604(i2×i2)が変更される。従って、対角成分1604(i2×i2)を用いて非対角成分1605(i3×i2)を消去するには、非対角成分1602(i2×i1)を消去した後に非対角成分1605(i3×i2)を消去しなければならない。このことは、非対角成分1602(i2×i1)を消去した後に、全行i2列の非対角成分の行列要素を消去しなければならないことを示している。また、行列要素として、非対角成分1602(i2×i1),1605(i3×i2),1608(i4×i3)と1603(i1×i2),1606(i2×i3),1609(i3×i4)が存在するとすれば、対角成分1601(i1×i1)の処理の後に非対角成分1602(i2×i1)の消去を行い、1602(i2×i1)の消去の後に非対角成分1605(i3×i2)の消去を行い、非対角成分1605(i3×i2)の消去の後に非対角成分1608(i4×i3)の消去を行わなければならない。このようにして、全i行i1列の非対角成分の行列要素を消去した後に、全i行i2列の非対角成分の行列要素を消去し、全i行i3列の非対角成分の行列要素を消去し、全i行i4列の非対角成分の行列要素を消去する計算手順が発生する。
【0017】
この計算手順を元に、下三角にある行列要素の消去を繰り返すと、行列Gは上三角のみ行列要素をもつ構造に変換される。一旦、上三角行列構造に変換すると、I(t)を元に、行列解V(t)は前進代入法または後進代入法を用いて求めることができる。このように、行列要素を消去する計算手順に複雑な関係が存在するため、計算手順が逐次的になり、並列分散的な計算処理が難しくなる。
【0018】
【非特許文献1】
Genetic Network Analysis−The Millennium Opening Version, Pacific Symposium on Boicomputing 2001 Tutorial, 1月(2001)
【非特許文献2】
Irene Moulitsas and George Karypis,”Multilevel Algorithms forGenerating Coarse Grids for Multigrid Methods”, Supercomputing 2001,[平成14年12月12日検索]、インターネット、< URL:http://www.sc2001.org/papers/pap.pap276.pdf>
【0019】
【発明が解決しようとする課題】
並列分散計算装置上で、電気・電子ネットワーク回路のシミュレーションを並列分散処理する場合の実行手順の例を図5に示す。ここでは、並列分散計算装置として、データ転送を実行するバスで4台のプロセッサP1,P2,P3およびP4を並列に接続されたワークステーション上において、図4に示した行列要素の対角成分(i1×i1),(i2×i2),(i3×i3)および(i4×i4)と、非対角成分(i2×i1),(i3×i2),(i4×i3)と(i1×i2),(i2×i3),(i3×i4)とが存在する疎行列の連立一次方程式を、前述した消去法で解くときに実行される処理手順を示す。なお、図5では省略しているが、データ転送を実行するバスには制御のためのパソコン100が備えられて、以下の制御をするものとする。
【0020】
プロセッサP1上で(i1×i2)と(i1×i1)から形成されたデータ1701をプロセッサP3に転送する。プロセッサP3上で、(i2×i1)を消去し、プロセッサP1から送られたデータ1701を元に(i2×i2)を変更する。次に、プロセッサP3上で(i2×i3)と変更後の(i2×i2)から形成されたデータ1702をP2に転送する。プロセッサP2上で、(i3×i2)を消去しプロセッサP3から送られたデータ1702を元に(i3×i3)を変更する。プロセッサP2上で(i3×i4)と変更後の(i3×i3)から形成されたデータ1703をP4に転送する。プロセッサP4上で、(i4×i3)を消去しプロセッサP2から送られたデータ1703を元に(i4×i4)1704を変更する。このようにして、プロセッサP1での計算処理1701の後にプロセッサP3へのデータ送信1705、プロセッサP1からのデータ受信を待ってプロセッサP3での計算処理1702の後にプロセッサP2へのデータ送信1706、プロセッサP3からのデータ受信を待ってプロセッサP2での計算処理1703の後にプロセッサP4へのデータ送信1707が全ての行列要素に対して繰り返される。
【0021】
図6は、データ転送を実行するバスで4台のプロセッサが接続されたワークステーション上で、従来の計算手順と通信手順を用いて並列分散処理により疎行列の解を求めた所要時間の加速化率の例を示す図である。この例では、1台のプロセッサ上で計算する所要時間に比較し、その加速化率は1.2倍程度である。理想的には4台のプロセッサの並列処理により4倍に向上することが期待されるが、実際の加速率は非常に低く並列分散処理の難しさを示している。
【0022】
このように、疎行列構造に対応して行列要素の複雑な消去手順が必要であり、行列要素を消去するために必要な処理手順の数だけの計算処理単位に分割される。各計算処理が実行されるプロセッサ間でデータの送受信が繰り返される。そのデータの送受信先は、行列要素の処理手順と各計算処理が実行されるプロセッサで決まるため、送受信先を一意的に記述することは難しい。各プロセッサ上では、他のプロセッサからの受信を待って計算処理した後に、他のプロセッサへのデータ送信を実行する。そのため、計算処理が逐次的な処理になり、並列分散処理による計算所要時間の加速化が難しい。さらには、疎行列構造から決まる処理手順の数だけ、プロセッサ間のデータ通信の回数が必要である。他のプロセッサからデータを受け取ってから計算処理を実行するための同期を制御する回数が増える。結果的に、データ通信時間や同期を制御する時間が不必要な単一プロセッサ上での計算処理と比較して、並列分散計算装置上での計算所要時間を短縮することが難しい。
【0023】
【課題を解決するための手段】
本発明は、電気・電子ネットワーク回路のシミュレーションあるいは生体分子ネットワーク回路シミュレーションのように、アナログまたはディジタル動作をする対象に対してグラフ理論を適用したシミュレーションを適用可能とする処理を行い、データ通信時間や同期を制御する時間をできるだけ低減する。グラフ理論自体はよく知られていることであるが、従来は論理回路のレイアウトの素子配列の最適化等に利用されているにすぎず、アナログ動作をする対象に対して適用された例は無い。
【0024】
本発明では、以下の手順によりアナログ動作をする電気・電子ネットワーク回路あるいは生体分子ネットワーク回路に対してグラフ理論を適用したシミュレーションを実施可能とする。
(1)非線形要素、線形要素およびこれら要素間を連結するパスからなるシミュレーション対象の回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換する。
(2)全てのバーテックスおよびエッジに重付けをする。
(3)グラフ理論を用いて複数の領域に分割する。
(4)前記領域をバーテックス間を連係するエッジを部分領域内で閉じているエッジのみからなる部分領域と、部分領域間にまたがるエッジのみからなる主領域とにグループ化する。
(5)グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する。
(6)主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配し計算の実行をさせる。
(7)主回路の計算処理のコンピューティングユニットと複数の部分回路の計算処理のコンピューティングユニットの計算結果を統合して回路のシミュレーション結果を得る。
【0025】
さらに、必要に応じて、非線形素子あるいは時定数の大きい相互作用の計算量を対応付けたバーテックスあるいはエッジの重付けを、線形素子あるいは時定数の小さい相互作用の計算量を対応付けたバーテックスあるいはエッジの重付けより大きく設定すること、あるいは、分割した部分領域間のエッジ数を最小化する目的関数、各部分領域内のエッジ数を均等化する拘束条件、各部分領域のバーテックスの重みを均等化する拘束条件を課すこと、さらに、コンピューティングユニットの数に対して部分回路の数を大きくして等の工夫を加えることにより、コンピューティングユニットの計算処理時間を均等化することもできる。
【0026】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0027】
なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する場合がある。
【0028】
(実施形態1)
図7は、本発明の実施形態1の概略を示す並列分散環境におけるネットワーク回路の高速計算装置の構成例の概念図である。図1〜図3を参照して並列分散環境としての超並列機の構成例を説明したが、100は制御のためのパソコンでありシミュレーションのデータを入力するための入力装置101、入力されたデータから各コンピューティングユニットに回路計算を分配するための処理を実行するための処理・制御部102および処理・制御部102の動作状況あるいは各コンピューティングユニットに分配して計算された結果を統合した結果を表示するための出力装置103とから構成される。
【0029】
処理・制御部102では、入力装置101を介して導入されるシミュレーションの対象のデータを入力し、上述した手順(1)〜(7)により図1〜図3で説明したような並列分散計算装置104の各コンピューティングユニットに回路計算を分配し、各コンピューティングユニットが行った回路計算の結果を統合し、出力装置103に表示する。ここで、データ入力は、種々の方法が可能であり、例えば、コンポーザと呼ばれる回路ネットワークを実装している場合は各素子や素子間の配線がパーツとして用意され、お絵かきのようにその素子と配線とを組み合わせることで回路ネットワークを構成し、その回路ネットワークの幾何学的な情報を数値データとしてファイルに格納することができる。また、各コンピューティングユニットに回路計算を分配するための前処理過程の処理を、コンピューティングユニットの一つに代行させて、この結果を、各コンピューティングユニットに分配するものとすることもできる。
【0030】
以下、処理・制御部102における各コンピューティングユニットへの回路計算の分配および結果の統合についての処理フローを簡単に説明する。
【0031】
1021は回路表示のステップであり、入力装置101を介して導入されるシミュレーションの対象のデータを入力し表示する。1022はグラフ表示変換のステップであり、シミュレーション対象の回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換する。1023はグラフの重付けのステップであり、全てのバーテックスおよびエッジに重付けをする。1024は領域分割のステップであり、グラフ理論を用いて複数の領域に分割する。1025は2領域グループ化のステップであり、前記領域をバーテックス間を連係するエッジを部分領域内で閉じているエッジのみからなる部分領域と、部分領域間にまたがるエッジのみからなる主領域とにグループ化する。1026は主回路、部分回路分割のステップであり、ステップ1025の結果として得られた2領域グループ化に対応して、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する。1027は回路計算分配のステップであり、主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配する。1028は通信制御のステップであり、回路計算分配のステップ1027の結果に応じて、並列分散計算装置の各コンピューティングユニットが対応すべき回路計算の対象を送信する。また、逆に、並列分散計算装置の各コンピューティングユニットが実施した回路計算の結果を受信する。1029は回路計算結果の統合ステップであり、主回路の計算処理のコンピューティングユニットと複数の部分回路の計算処理のコンピューティングユニットの計算結果を統合して回路のシミュレーション結果を得て、出力装置103に送る。
【0032】
図8は、本発明によるシミュレーションの対象の一例の電気・電子ネットワーク回路を示す図である。電気・電子ネットワーク回路は、MOSFET(Metal Oxide Semiconductor Field Effect Transistor)およびバイポーラトランジスタ等の非線形素子501、抵抗R、インダクタンスLおよびキャパシタンスC等の線形素子502、および、これら非線形素子501および線形素子502を連結する配線上の節a,b,c,−−−(参照符号503で代表される)から構成される。図では、簡便のために、これらの素子の一つに代表的に参照符号を付すに止めた。
【0033】
電気・電子ネットワーク回路のシミュレーションでは、各時刻tにおいて、配線上に設定された節における電圧V(t)と非線形素子や線形素子に流れる電流I(t)の間には、キルヒホッフ方程式の関係が成立する。図8に示す回路の各節に成立するキルヒホッフ方程式はG{V(t)}V(t)=I(t)で表示される。ここで、Gは時刻tでの節503における電圧V(t)により決定される非線形素子501および線形素子502のコンダクタンス、V(t)は時刻tでの節503における電圧、I(t)は時刻tでの節503間の非線形素子501および線形素子502に流れる電流である。すなわち、時刻tでの節503間の非線形素子501および線形素子502に流れる電流I(t)は時刻tでの節503におけるコンダクタンスGと時刻tでの節503における電圧V(t)の積であることを示している。
【0034】
図9は、図8に示す回路の各節に成立するキルヒホッフ方程式のN×N次元行列を示す図である。ここで、Nは節の数である。a,b,c,−−−は図8に示す各節であるが、各節の配列順は、行と列の配列順を同じにすれば、任意で良い。黒で塗りつぶして示す各節の交点の間には上述したキルヒホッフ方程式が成立し、各節には行列要素が存在する、0で示す各節の交点の間には上述したキルヒホッフ方程式が成立せず、各節の行列要素は0となる。すなわち、図8に示す回路のコンダクタンスGの行列要素の大半は零の疎行列である。
【0035】
図10−図12は回路をグラフ表示変換するステップ1022の具体的な処理を説明する図であり、ここでは、図8に示す電気・電子ネットワーク回路を例に説明する。
【0036】
まず、非線形素子501および線形素子502からなる回路表示を、図10に示すように、バーテックス701からなるグラフ表示に変換する。7011,7012,7013,−−−,70118は、それぞれ、バーテックスであり、回路表示における各素子VCC,VS,CiN,−−−,RLに対応する。なお、回路表示における各素子のすべてがバーテックスとなされるので、下付きで付した数字の順序には意味が無い。
【0037】
次に、図11に示すように、配線の上の節503からなる回路表示をエッジ702からなるグラフ表示に変換する。例えば、節aからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Aは回路表示の素子VSおよびCiNに対応するバーテックス7012および7013を含む。また、節bからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Bは回路表示の素子CiN,R1,R2およびT1に対応するバーテックス7013,7014,7017,および7016を含む。節jからなる回路表示をエッジからなるグラフ表示に変換したエッジ702−Jは回路表示の素子VCC,VS,R2,RE1,CE1,R4,RE2,CE2およびRLに対応するバーテックス7011,7012,7017,7018,7019,70110,70114,70115および70118を含む。このようにして得られた各エッジ702の各回路素子間ではキルヒホッフ方程式が成立する。即ち、エッジ702の数は、連立一次方程式の次元の数である。
【0038】
また、バーテックス701を囲むエッジ702が二つ重なる場合、そのエッジ702のインデックスを夫々にi番目とj番目とする。これらエッジi番目,j番目のインデックスの順番通りに、節i,jに対するキルヒホッフ方程式の行列を形成する。エッジi番目、j番目の変数となる節を表す列とi番目、j番目の節に対する方程式を行にすれば、行列Gの行列要素の対角成分(i×i),(j×j)と非対角成分(i×j),(j×i)にバーテックス701に対応する非線形素子501と線形素子502を用いた行列要素が生まれる。バーテックス701を囲むエッジ702が三つ重なる場合、そのエッジ702のインデックスを夫々にi番目、j番目およびk番目とする。これらエッジi番目、j番目およびk番目のインデックスの順番通りに、節i,jおよびkに対するキルヒホッフ方程式の行列を形成して、上述したように処理すれば良い。例えば、トランジスタは3端子素子を構成するが、トランジスタ素子をバーテックス701とする場合、3方向の配線に対応するエッジ702がバーテックス701に対して三つ重なることになる。
【0039】
次に、バーテックス701の重付けを説明する。非線形素子501と線形素子502の行列要素の計算量に対応するバーテックスの重み703を付ける。MOSFETやバイポーラトランジスタの非線形素子501では、ある電圧におけるGの行列要素を求めるためには、ニュートンラプソン法等を用いて非線形方程式を解く必要がある。ニュートンラプソン法では、反復的な計算が必要なため、Gの行列要素を求めるために計算所要時間が長くなる。一方、抵抗R、インダクタンスL、キャパシタンスCからなる線形素子502は、電圧に依存せずGの行列要素を決定できるため、その行列要素を求めるための計算所要時間は短い。従って、非線形素子の計算量に対応するバーテックスの重付けを線形素子の計算量に対応するバーテックスの重付けに比較して大きく設定する。このようにして、各バーテックスに掛かる計算量を定量的に表すことができる。図12はこの考え方で、電源回路および抵抗Rに対応するバーテックスの重付けを1、インダクタンスLおよびキャパシタンスCに対応するバーテックスの重付けを2、MOSFETやバイポーラトランジスタの非線形素子に対応するバーテックスの重付けを9として各素子に隣接させて括弧内に表示したものである。
【0040】
次に、エッジ702の重付けを説明する。電気・電子ネットワーク回路のシミュレーションでは、上述したように、計算時間はバーテックスに掛かる計算量で支配されるから、各エッジ702自体の重付けは意味が無い。したがって、エッジ内に含まれる全てのバーテックスの重付けを加算したものをエッジ702の重付けとすることで良い。すなわち、各エッジが連立一次方程式の各式に対応するから、連立一次方程式の各式の演算に要する時間は、これに含まれるバーテックスの重付けの加算値に対応することになる。
【0041】
次に、グラフ理論を用いて複数の領域に分割する手段を述べる。回路表示をバーテックス701とエッジ702からなるグラフ表示に変換すれば、それぞれのエッジ702内に含まれているバーテックス701を失うことなく、共通するバーテックス701を含み、お互いに重なるエッジ702間の幾何学的な関係を変えないかぎり、回路素子の回路図上の配列位置は変わっても、回路表示の非線形素子501および線形素子502と配線上の節503から構成されたネットワーク回路の回路構成は変わらない。そこで、バーテックスを複数の領域に分割することを試みる。例えば、2つの部分領域AR1,AR2に分割するため、一つのバーテックスを一方の部分領域AR1から他方の部分領域AR2に移動する。一つのバーテックスの移動に伴って、そのバーテックスを共通に含み、お互いに重なったエッジの端が一方の部分領域AR1から他方の部分領域AR2に移動する。このとき、エッジ内に含まれている他のバーテックスが部分領域AR2に含まれている場合は、エッジは完全に部分領域AR2に移動したことになる。反対に、エッジ内に含まれている他のバーテックスが部分領域AR1に含まれている場合は、そのエッジは部分領域AR1および部分AR2に跨ることになる。このようにして、部分領域AR1およびAR2のそれぞれに含まれるバーテックスの数と重みおよびエッジの数と重み、さらに部分領域AR1およびAR2に跨るエッジの数と重みを変化させることができる。
【0042】
非特許文献2に記述されているように、逐次的にバーテックスを部分領域間で移動させる分割法(K−M法)を用いて、目的関数や拘束条件を満たす最適な分割パターンを求めることができる。ここで、複数の部分領域に分割する目的関数として、部分領域間に跨るエッジ数を最小にすること、拘束条件1として、部分領域内のエッジ数を均等化すること、拘束条件2として、部分領域内のバーテックスの重みを均等化すること、を満足するものとすれば、連立一次方程式の各式の演算に要する時間を均等化することができる。
【0043】
次に、バーテックスおよびエッジからなるグラフ表示に変換された回路表示を、主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。
【0044】
まず、上述したように、グラフ表示に変換された全領域を、グラフ理論を用いて複数の部分領域に分割する。図13は部分領域に分割した結果を模式的に示す図である。ここでは、図12に示したグラフ表示は関係ない。複数の部分領域AR1,AR2およびAR3が形成されており、各部分領域には、代表的に参照符号801を付したバーテックスとバーテックスを含むエッジ901が存在する。また部分領域間にまたがるエッジ901も存在する。例えば、部分領域AR1にはバーテックス8011および8012を含むエッジ9011が存在する。部分領域間AR1,AR2間にはそれぞれの部分領域のバーテックス8012および8013を含むエッジ9012が存在する。さらに、部分領域間AR2,AR3間にはそれぞれの部分領域のバーテックス8014および8015を含むエッジ9013が存在する。なお、部分領域のバーテックスに参照符号を付すのは省略したが、部分領域間AR1,AR2間にはエッジ9014が、部分領域間AR2,AR3間にはエッジ9015も存在する。
【0045】
次に、図14に示すように、各部分領域AR1,AR2およびAR3から構成されたグループと各部分領域AR間を跨ぐエッジのみから構成された主領域MARに分別する。すなわち、各部分領域のバーテックスには変更は加えないが、各部分領域AR間を跨ぐエッジ9011,9012,9013および9014のみを統合して一つの主領域MARとする。
【0046】
次いで、これら各部分領域ARと主領域MARのエッジに対してインデックス番号をつける。例えば、図14では、部分領域AR1内のエッジにインデックス番号1,2および3を連続に付け、次に隣接した部分領域AR2内のエッジに連続したインデックス番号4,5および6を連続に付け、さらに隣接した部分領域AR3内のエッジに連続したインデックス番号7,8,9および10を連続に付ける。その後に、主領域MAR内の各部分領域AR間に跨るエッジ9011,9012,9013および9014についてインデックス番号11,12,13および14を連続的に付ける。
【0047】
次に、グラフ表示から回路表示への逆変換によるグラフ表示から主回路と部分回路への逆変換について述べる。図13および図14を参照して説明したように、バーテックスおよびエッジからなるグラフ表示に変換された全領域を複数の部分領域と一つの主領域に分割し、このグラフ表示を回路表示に逆変換すると、各部分領域のバーテックスおよびエッジに対応して、非線形素子および線形素子と配線上の節からなる部分回路が形成される。また、同様に、主領域のバーテックスまたはエッジに対応して、非線形素子および線形素子と配線上の節からなる主回路が構成される。すなわち、各部分領域ARおよび主領域MARの各エッジに付けられたインデックス番号に対応して、図12の各エッジに付けられた節の付号(a,b,−−−)を付ければ、グラフ表示が回路表示に逆変換されたことが理解できる。
【0048】
図14に示すエッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成する。キルヒホッフ方程式に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。
【0049】
図15は、上述の考え方で行列を形成したときの行列要素の配列を示す図である。ここで、各部分領域AR内のエッジが同じ部分領域AR内のエッジとのみ重なるときには、同じ部分回路内の節の間にのみ行列要素1001が発生する。すなわち、部分領域AR1の節の間にのみ行列要素10011が発生し、部分領域AR2の節の間にのみ行列要素10012が発生し、部分領域AR3の節の間にのみ行列要素10013が発生する。また、異なる部分領域AR間に跨るエッジのみから構成される主領域MARが導入された結果、異なる部分領域間に跨るエッジが存在しない。このことは、部分回路間に跨る節が存在しなくなり、異なる部分回路の節の間の非対角的な行列要素は存在しないことを意味する。一方、各部分領域ARと主領域MARに跨るエッジの存在は、部分回路と主回路に関係する節の存在を意味する。すなわち、部分回路と主回路の節の間に行列要素10021から10016が発生する。また、主領域MARにのみかかわるエッジの存在により、主回路間の行列要素1003が発生する。このようにして、キルヒホッフ方程式に対する行列Gは、ブロック的な行列要素が対角項に集まり、行列の右側および下側の縁には主回路と部分回路の節の間の行列要素が集まった構造を形成する。
【0050】
このように、本発明では、回路表示をバーテックスおよびエッジからなるグラフ表示に変換し、次いで、グラフ表示に変換された回路表示を、主回路と部分回路にグループ化する前処理を行う。この結果、全回路に対するキルヒホッフ方程式の連立一次方程式の疎行列構造は、複数の部分回路からなるブロック対角行列と主回路からなる縁付きの行列要素とから構成されるブロック対角縁付き行列に変換することができる。
【0051】
ブロック対角縁付き行列の連立一次方程式の解を求める場合は、疎行列の連立一次方程式の解を求める場合に比較し、計算手順と通信手順は容易になる。これを図16および図17を参照して説明する。
【0052】
図16はブロック対角行列と縁付きの行列要素とから構成されるブロック対角縁付き行列の例を示す図である。行列要素のブロック対角成分1101[ib1×ib1],1102[ib2×ib2],1103[ib3×ib3],−−−,1104[ibn×ibn]が存在する。また非対角ブロック成分1105[ibn×ib1],1106[ibn×ib2],1107[ibn×ib3],−−−,1108[ib1×ibn],1109[ib2×ibn],1110[ib3×ibn],−−−が存在する。ここで、例えば、対角ブロック[ib1×ib1]はブロック単位でib1行ib1列の対角ブロックを示し、非対角ブロック[ibn×ib1]はブロック単位でibn行ib1列の非対角ブロックを示す。ブロック対角成分1101、1102,1103および1104は、図15との対応で言えば、行列要素10011,10012,10013,および10014に対応する。また非対角ブロック成分1105〜1110は行列要素10021〜10026に対応する。
【0053】
対角ブロック1101[ib1×ib1]内の行列要素の消去処理では、対角ブロック1001[ib1×ib1]内の対角成分の行列要素を用いる。このとき、非対角ブロックの[ib1×ib2],[ib1×ib3],−−−の行列要素は全て零なので、その行列要素を消去手順によって消去処理する必要は無い。消去処理に伴って変更される必要があるのは、縁に位置する非対角ブロック1008[ib1×ibn]の行列要素である。また、非対角ブロック[ib2×ib1],[ib3×ib1],−−−の行列要素も全て零なので消去処理をする必要はない。一方、消去処理に伴って変更される必要があるのは、縁に位置する非対角ブロック1105[ibn×ib1]の行列要素である。
【0054】
非対角ブロック1105[ibn×ib1]の消去処理は、対角ブロック1101[ib1×ib1]内の対角成分の行列要素を用いる。このとき、非対角ブロックの[ib1×ib2],[ib1×ib3],−−−の行列要素は全て零なので、非対角ブロック1106[ibn×ib2],1107[ib×ib3],−−−の行列要素が変更される必要は無い。消去処理に伴って変更される必要があるのは、対角ブロックの右隅に位置する対角ブロック1004[ibn×ibn]の行列要素である。
【0055】
このように、行列要素の消去手順として関係が生じるのは、ブロック行列1101[ib1×ib1],1108[ib1×ibn],1105[ibn×ib1],および1104[ibn×ibn]の行列要素のみである。即ち、ブロック行列1101[ib1×ib1],1108[ib1×ibn]および1105[ibn×ib1]の行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去を実行する。同様にして、行列要素の消去手順として関係が生じるのは、ブロック行列1102[ib2×ib2],1109[ib2×ibn],1106[ibn×ib2],および1104[ibn×ibn]の行列要素のみである。即ち、ブロック行列1102[ib2×ib2],1109[ib2×ibn]および1106[ibn×ib2]の行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去を実行する。以下、同様に、ブロック行列の対角行列要素と縁に位置する非対角ブロックの行列要素に関する消去処理を行い、その消去により変更されたデータを用いてブロック行列の対角ブロックの右隅に位置する対角ブロックの消去を実行する。
【0056】
ここで、ブロック行列1101[ib1×ib1],1108[ib1×ibn],1105[ibn×ib1]の行列要素に関する消去処理、ブロック行列1102[ib2×ib2],1109[ib2×ibn],1106[ibn×ib2]の行列要素に関する消去処理、さらには、他のブロック行列の対角行列要素と縁に位置する非対角ブロックの行列要素に関する消去処理は、それぞれ、独立に並列分散的に実行することができる。その後、消去により変更されたデータを用いてブロック行列1104[ibn×ibn]の行列要素の消去処理を実行することができる。
【0057】
上述した主回路と複数の部分回路に分割し構成した電気・電子ネットワーク回路の並列分散処理の実行手順の例を図17に示す。図17の例は、図5で説明した並列分散計算装置と同様に、データ転送を実行するバスで4台のコンピュ−ティングユニットP1,P2,P3およびP4を接続された超並列機を考える。
【0058】
キルヒホッフ方程式の連立一次方程式対して、前処理過程により形成されたブロック対角縁付き行列は、上述したように、ブロック対角成分のブロック行列[ib1×ib1],[ib2×ib2],[ib3×ib3],および[ibn×ibn]が、非対角ブロック成分のブロック行列[ibn×ib1],[ibn×ib2],[ibn×ib3],[ib1×ibn],[ib2×ib]および[ib3×ibn]が、それぞれ、存在する。コンピュ−ティングユニットP1にはブロック行列[ib1×ib1],[ib1×ibn]および[ibn×ib1]の行列要素の消去処理1201を分配し、P2にはブロック行列[ib2×ib2],[ib2×ibn]および[ibn×ib2]の行列要素の消去処理1202を分配し、P3にはブロック行列[ib3×ib3],[ib3×ibn]および[ibn×ib3]の行列要素の消去処理1203を分配する。また、P4にはブロック行列[ibn×ibn]の行列要素の消去処理1205を分配する。すなわち、図16との対応で言えば、ブロック行列1101[ib1×ib1],1108[ib1×ibn]および1105[ibn×ib1]の行列要素に関する消去処理をコンピュ−ティングユニットP1に分配し、ブロック行列1102[ib2×ib2],1109[ib2×ibn]および1106[ibn×ib2]の行列要素に関する消去処理をP2に分配し、ブロック行列1103[ib3×ib3],1109[ib3×ibn]および1106[ibn×ib3]の行列要素に関する消去処理をP3に分配する。さらに、ブロック行列1104[ibn×ibn]の行列要素の消去処理をP4に分配する。
【0059】
上述のように、ブロック行列[ib1×ib1],[ib1×ibn]および[ibn×ib1]の行列要素に関する消去処理1201、ブロック行列[ib2×ib2],[ib2×ibn]および[ibn×ib2]の行列要素に関する消去処理1202、ブロック行列[ib3×ib3],[ib3×ibn]および[ibn×ib3]の行列要素に関する消去処理1203は、それぞれ、独立に実行することができるため、各コンピュ−ティングユニットP1,P2およびP3上で並列分散的に実行することができる。この結果、キルヒホッフ方程式に対する行列Gのブロック行列[ib1×ib1],[ib2×ib2]および[ib3×ib3]は上三角行列に変換される。この後に、これら消去により変更されたデータを各コンピュ−ティングユニットP1,P2およびP3から同時にコンピュ−ティングユニットP4にデータの送信処理1204を行う。送信されたデータを用いて、ブロック行列[ibn×ibn]の行列要素の消去処理1205を実行する。この処理手順により、ブロック行列[ibn×ibn]の行列要素は上三角行列に変換される。前進代入法、または、後進代入法を用いて、ブロック行列[ibn×ibn]の節に対する解Vb(t)1206を求めることができる。一方、解Vb(t)1206をコンピュ−ティングユニットP4からコンピュ−ティングユニットP1,P2,P3にデータ送信する処理1207を実行する。各コンピュ−ティングユニットP1,P2およびP3では、ブロック行列[ib1×ib1],[ib2×ib2]および[ib3×ib3]が上三角行列に変換されていることから、解Vb(t)を元に、前進代入法、または、後進代入法を用いて、ブロック行列の[ib1×ib1],[ib2×ib2]および[ib3×ib3]の節に対する解Vb1(t)1208,Vb2(t)1209およびVb3(t)1210を並列処理で同時に求めることができる。
【0060】
このようにして,コンピュ−ティングユニットP1,P2およびP3での計算処理の後にコンピュ−ティングユニットP4へのデータ送信、これを受けてのP4での計算処理の後にP1,P2およびP3へのデータ送信が繰り返される。ここで、各コンピュ−ティングユニットP1,P2およびP3上で実行される消去処理1201,1202および1203は、ブロック行列の次元がほぼ等しくなるように設定されていれば、計算所要時間はほぼ均等に並列分散処理することができる。ブロック行列[ibn×ibn]の行列の次元は分割領域を跨ぐエッジの数と等しい。したがって、分割された部分回路に跨る節の数が最小になるように部分回路が決定されていれば、その計算所要時間は非常に短いため、部分回路の行列要素の消去をコンピュ−ティングユニットP1,P2またはP3のいずれかで実行しても、並列分散処理の加速化率を低下させることは少ない。
【0061】
並列分散計算装置のコンピュ−ティングユニットは、前述したように、超並列機の他に、パーソナルコンピュータ、ワークステーションから構成することができる。または、複数の超並列機、パーソナルコンピュータクラスタ、ワークステーションクラスタを連結したグリッドマシンにすることができる。これら並列分散計算装置において、そのコンピュ−ティングユニットの数に合わせて、電気・電子ネットワーク回路を部分回路に分割する数を設定する。すなわち、電気・電子ネットワーク回路を部分回路と主回路とに分割するとき、部分回路の数をコンピュ−ティングユニットの数より一つ少なくなるように設定するときは、図7の処理ステップ1027では、各部分回路の計算処理を各コンピュ−ティングユニットに分配する。残された一つのコンピュ−ティングユニットには主回路の計算処理を分配する。各コンピュ−ティングユニット上では、各部分回路の計算処理を並列分散的に同時に実行する。各コンピュ−ティングユニット上で計算処理の後に、残された一つのコンピュ−ティングユニットにデータを送信する。残された一つのコンピュ−ティングユニットでは、データを受信した後に主回路の計算処理を実行する。その計算実行後に、部分回路の計算処理を実行する各コンピュ−ティングユニットに送信する計算手順・通信手順を繰り返す。図7の処理ステップ1028は、制御装置100と並列分散計算装置104の各コンピュ−ティングユニットとの間の通信を制御する。
【0062】
なお、主回路の行列の次元が最小になるように決定されているときは、その計算所要時間は非常に短い。そのため、主回路の計算処理を部分回路の計算処理を実行しているコンピュ−ティングユニット上で実行するものとしても、全体の計算処理を実質的に遅らせることは無い。このような場合には、電気・電子ネットワーク回路を部分回路と主回路とに分割するとき、部分回路の数をコンピュ−ティングユニットの数と同じになるように設定する。処理ステップ1027では、各部分回路の計算処理を各コンピュ−ティングユニットに分配する。各コンピュ−ティングユニット上では、各部分回路の計算処理を並列分散的に同時に実行する。各コンピュ−ティングユニット上で計算処理の後に、コンピュ−ティングユニットのいずれか一つにデータを送信する。データを送信された一つのコンピュ−ティングユニットでは、データを受信した後に主回路の計算処理を実行する。その計算実行後に、主回路の計算処理の結果を各コンピュ−ティングユニットに送信する計算手順・通信手順を繰り返す。
【0063】
また、電気・電子ネットワーク回路の分割の際、コンピュ−ティングユニットの数のα倍の数の部分回路と一つの主回路とに分割するものとしても良い。この場合は、各コンピュ−ティングユニットはα個の部分回路の計算処理を一つの処理単位として分配されることになる。各コンピュ−ティングユニット上では、α個の部分回路の計算処理を並列分散的に同時に実行する。このように、コンピュ−ティングユニットの数のα倍の数の部分回路に分割するときは、分割された部分回路の重み付けを均一化することが簡単になるので、各コンピュ−ティングユニットの負担の均一化がより実行しやすいものとなる。
【0064】
なお、図7に示すグラフ表示のステップ1022から主回路、部分回路分割のステップ1026までの前処理を、制御のためのパソコン100に代えて、部分回路の計算処理を行うコンピュ−ティングユニットのいずれか一つで実行させ、この結果をあらためて部分回路の計算処理を行うコンピュ−ティングユニットに分配するものとしても良い。
【0065】
今、電気・電子ネットワーク回路の全体網を主回路と複数の部分回路に分け、主回路の節の数をNm、部分回路の数をS、各部分回路の節の数をNSであるとして、S個のコンピュ−ティングユニットで並列分散処理する場合の加速化率について説明する。加速化率は(単一コンピュ−ティングユニット上での計算処理時間)を(複数のコンピュ−ティングユニット上での計算処理時間+通信処理時間)で除した値と定義する。ここで、Mは非線形素子と線形素子からなる行列要素の計算量、Bは一つのコンピュ−ティングユニットから全てのコンピュ−ティングユニットにデータを送信または受信する場合の通信の処理負荷である。Pcu(FLOPS)は各コンピュ−ティングユニットの計算処理性能、Pth(bps)はデータ通信ネットワークの通信バンド幅である。
【0066】
単一のコンピュ−ティングユニット上での計算処理時間は、式(2)で与えられる。
【0067】
【数2】
複数のコンピュ−ティングユニット上での計算処理時間+通信処理時間は、次式(3)で与えられる。
【0068】
【数3】
従って、単一コンピュ−ティングユニット上での計算処理時間に対する複数のコンピュ−ティングユニット上での計算所要時間の加速化率は、式(4)で与えられる。
【0069】
【数4】
ここで、主回路の節の数Nmが、部分回路の節の数Nsに対して充分小さい(Nm/NS<<1とする。また、大規模回路では、部分回路の節の数NSは充分に大きいことからNS 3>>M(NS 2)を満たす。式(3)より、加速化率が理想値であるS倍に近づくのは、主回路の節の数Nmが充分小さい場合である。または、主回路を計算処理するコンピュ−ティングユニットの計算処理性能Pcu(FLOPS)が充分高い場合である。さらに、は、データ通信ネットワークの通信バンド幅Pth(bps)が充分大きい場合である。
【0070】
本発明を超並列機上で並列分散処理する高速プロセッサ用ノイズ評価回路に適用した例を述べる。適用例の高速プロセッサ用ノイズ評価回路は、MOSFETの非線形素子と抵抗とキャパシタンスからなる線形素子、並びに、配線上の節から構成されるが、キルヒホッフ方程式G{V(t)}V(t)=I(t)における節の数は、約15000個にもなる。図18は、図8および図9を参照して説明した従来の手法で、この回路の各節に成立するキルヒホッフ方程式の15000×15000次元行の疎行列Gを図形化して示す図である。図で濃く表されている位置ほど行列要素の数が多いことを意味する。
【0071】
本発明では、MOSFETの非線形素子と抵抗とキャパシタンスからなる線形素子、並びに、配線上の節から構成される同じ高速プロセッサ用ノイズ評価回路をMOSFET、抵抗とキャパシタンスはバーテックスのグラフ表示に、節はエッジのグラフ表示に変換する。バーテックスの重付けとして、MOSFET、キャパシタンス、抵抗に対するバーテックスの重付けを10:2:1とした。
【0072】
次に、コンピュ−ティングユニットの数に合わせて部分領域の分割数を設定し、グラフ理論を用いて、コンピュ−ティングユニット数と同じ数の部分領域に分割した。ここで、複数の領域に分割する目的関数として、分割領域間に跨るエッジ数を最小にする。また、拘束条件として、分割領域内のバーテックスの重みを均等化する条件を設定した。次に、主回路と部分回路の二種類以上の回路にグループ化するため、部分領域を跨ぐエッジから構成された主領域を設定する。
【0073】
従って、全領域は、各部分領域から構成されたグループと部分領域を跨ぐエッジのみから構成された主領域に分別される。これら部分領域と主領域に対して、エッジのインデックス番号をつける。部分領域内のエッジにインデックス番号を連続に付け、異なる部分領域内のエッジに継続するようにインデックス番号を連続に付ける。このインデックス番号をコンピュ−ティングユニットの数の部分領域のエッジについて連続に付ける。その後に、部分領域間に跨るエッジから構成された主領域内のエッジについてインデックス番号を継続的に連続的に付ける。
【0074】
さらに、主回路と部分回路の二種類以上の回路にグループ化する。部分領域のエッジとバーテックスのグラフ表示を回路表示に変換するとき、部分領域のバーテックスまたはエッジに対応し、MOSFET、抵抗、キャパシタンスと配線からなる部分回路が形成される。また、主領域のエッジまたはバーテックスのグラフ表示を回路表示に変換するとき、主領域のバーテックスまたはエッジに対応し、MOSFET、抵抗、キャパシタンスと配線からなる主回路が構成される。部分領域と主領域のエッジのそれぞれに付けられたインデックス番号に対応し節の番号をつける。エッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成する。この処理により、キルヒホッフ方程式に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。
【0075】
図19は、高速プロセッサ用ノイズ評価回路に成立するキルヒホッフ方程式の連立方程式を、本発明を適用して得られたブロック対角縁付き行列として図形化した図である。図で濃く表されている位置ほど行列要素の数が多いことを意味する。図は、後述するように、8台のプロセッサで構成される超並列機上での実行を前提として得られたものである。当然のことながら、8領域に分割された部分回路に跨る節の数が最小になり、分割された部分回路内の非線形素子と線形素子からなる行列要素を求める計算量が全ての部分回路でほぼ等しくなるように分割された。
【0076】
データ転送を実行するバスで接続された8台のプロセッサP1,P2,−−−,P8からなる超並列機上での実行手順を示す。キルヒホッフ方程式の連立一次方程式対して、前処理過程により形成されたブロック対角縁付き行列において、ブロック対角成分のブロック行列として、[ib1×ib1],[ib2×ib2],−−−,[ib8×ib8]および[ib9×ib9]が存在する。非対角ブロック成分のブロック行列として、[ib9×ib1],[ib9×ib2],−−−,[ib9×ib8]、並びに、[ib1×ib9],[ib2×ib9],−−−,[ib8×ib9]が存在する。プロセッサP1にはブロック行列[ib1×ib1],[ib1×ib9]および[ib9×ib1]の行列要素を分配し、プロセッサP2にはブロック行列[ib2×ib2],[ib2×ib9]および[ib9×ib2]の行列要素を分配する。他のブロック行列の行列要素も同様にプロセッサP3〜P7に分配し、プロセッサP8にはブロック行列[ib8×ib8],[ib8×ib9]および[ib9×ib8]の行列要素を分配する。
【0077】
ブロック行列[ib1×ib1],[ib1×ib9]および[ib9×ib1]の行列要素に関する消去処理、ブロック行列[ib2×ib2],[ib2×ib9]および[ib9×ib2]の行列要素に関する消去処理、他のブロック行列の行列要素に関する消去処理、および、ブロック行列[ib8×ib8],[ib8×ib9]および[ib9×ib8]の行列要素に関する消去処理は独立に実行することができるため、各プロセッサP1,P2,−−−,P8上で並列分散的に実行することができる。このようにして、行列Gのブロック行列[ib1×ib1],[ib2×ib2],−−−,[ib8×i8]は上三角行列に変換される。この後、これら消去により変更されたデータを各プロセッサP1,P2,−−−,P7から同時にプロセッサP8にデータを転送する。プロセッサP8では、転送されたデータとブロック行列[ib9×ib9]の行列要素を用いて、ブロック行列[ib9×ib9]の行列要素の消去を実行する。
【0078】
この処理手順により、ブロック行列[ib9×ib9]の行列要素は上三角行列に変換され、前進代入法、または、後進代入法を用いて、ブロック行列[ib9×ib9]の節に対する解V9(t)を求めることができる。一方、解V9(t)をプロセッサP8からプロセッサP1,P2,−−−,P7にデータ転送する。各プロセッサP1,P2,−−−,P8では、ブロック行列[ib1×ib1],[ib2×ib2],−−−,[ib8×i8]が上三角行列に変換されていることから、解V9(t)を元に、前進代入法、または、後進代入法を用いて、ブロック行列の[ib1×ib1],[ib2×ib2],−−−,[ib8×ib8]の節に対する解V1(t),−−−,V8(t)を並列処理で同時に求めることができる。
【0079】
図20は、本発明を適用して超並列機上で高速プロセッサ用ノイズ評価回路の並列分散処理を実行したときのプロセッサに対する加速化率を示す。8台のプロセッサで最高4.1倍の加速率を得ることができた。
【0080】
(実施形態2)
次に、生体分子ネットワーク回路に本発明を適用する例を述べる。図21は生体分子ネットワーク回路を模式的に示す図の例である。生体分子ネットワーク回路は、G1,G2,−−−,G4で示す遺伝子19011,19012,−−−,19014、P1,P2,−−−,P4で示す蛋白質19021,19022,−−−,19024、D1,D2で示す低分子化合物19031,19032の生体機能分子とその生体機能分子間の静電的、化学的、拡散的な相互作用19041,19042および19043から構成される。相互作用19041,19042および19043は、相互作用の時定数が短い場合を太線19041、時定数が中程度の場合を実線19042、時定数が長い場合を破線19043で示した。
【0081】
生体分子ネットワーク回路のシミュレーションは生体機能分子濃度の時間変化を解析することを意味する。生体機能分子濃度yiの時間変化を記述する連立一次方程式は、N×N次元の行列G{y(t)}y(t)=x(t)を形成する。ここで、Nは生体機能分子の数である。x(t)は式(1)から決定される列ベクトルである。この生体分子ネットワーク回路に成立する連立一次方程式の行列G{y(t)}y(t)=x(t)を、電気・電子ネットワーク回路に成立する連立一次方程式の行列G{V(t)}V(t)=I(t)と対比して明らかなように、実施形態1で説明した処理が実施形態2でも採用できることは容易に理解できる。
【0082】
この連立一次方程式において、生体機能分子iとj間に相互作用が働けば、行列Gの行列要素が存在する。しかし、生体機能分子間に相互作用がなければ、行列Gの行列要素は存在しない。通常、遺伝子の相互作用を記述するパラメータは各遺伝子に対して5〜10個程度と考えられ、ヒト遺伝子の総数3〜5万に比較して極めて少ない。従って、図21に示す生体分子ネットワーク回路のシミュレーションでは、図22に示すように、生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの行列要素は殆ど零である疎行列になる。
【0083】
生体分子ネットワーク回路シミュレーションにおいて、遺伝子1901、蛋白質1902と薬物1903の低分子化合物とこれら生体機能分子間を連結する相互作用1904からなるネットワーク回路を主回路と部分回路に分割する手段を述べる。
【0084】
遺伝子1901、蛋白質1902と薬物の低分子化合物1903からなる回路表示を、図23に示すように、生体機能分子1901,1902および1903からなる回路表示をバーテックス2101からなるグラフ表示に変換し、相互作用1904からなる回路表示をエッジ2102からなるグラフ表示に変換する。これは、図10から図12で説明した電気・電子ネットワーク回路の回路表示をグラフ表示に変換するのと同様の手順である。生体分子ネットワーク回路が電気・電子ネットワーク回路と異なるのは、電気・電子ネットワーク回路がキルヒホッフの方程式を基礎とするのに対して、生体分子ネットワーク回路は式(1)で説明したレート方程式が基礎となっていることである。すなわち、生体分子ネットワーク回路では、各バーテックス2101が生体機能分子濃度の時間変化を記述する連立一次方程式の変数に対応する。電気・電子ネットワーク回路では、エッジの数が連立一次方程式の次元の数であったのに対し、生体分子ネットワーク回路ではバーテックス2101の数が連立一次方程式の次元の数である。
【0085】
したがって、エッジ2102に含まれるバーテックス2101のインデックスを夫々にi番目とj番目として、これらバーテックスi番目、j番目のインデックスの順番通りに、生体機能分子i,jに対する濃度の時間変化を記述する連立一次方程式の行列を形成する。i,j番目の変数を表す列とi,j番目の生体機能分子に対する方程式を行にすれば、行列Gの行列要素の対角成分(i×i)、(j×j)と非対角成分(i×j)と(j×i)にエッジ2102に対応して相互作用1904を用いた行列要素が発生する。
【0086】
次に、バーテックス2101とエッジ2102の重付けを述べる。電気・電子ネットワーク回路と異なり、生体分子ネットワーク回路では生体機能分子自体には時定数の概念が無いから、エッジ2102に含まれる生体機能分子の相互作用の時定数に対応してエッジの重み付けをする。相互作用の時定数の短い場合は、一方の生体機能分子の濃度が変化すると他方の生体機能分子の濃度は短時間で変化する。相互作用の時定数の長い場合は、一方の生体機能分子濃度の変化は他方の生体機能分子濃度に影響を及ぼしにくい。従って、時定数の短い相互作用に対応したエッジの重付けを時定数の長い相互作用に対応したエッジの重付けに比較して大きく設定する。図23では、これを図21と同様にエッジの線の太さで示した。
【0087】
次に、グラフ理論を用いて複数の領域に分割する方法を述べる。生体分子ネットワーク回路をバーテックスとエッジからなるグラフ表示にすれば、エッジ内に含まれているバーテックス、バーテックスを共通に含み、お互いに重なるエッジの幾何学的な形状を変えないかぎり、遺伝子1901、蛋白質1902と薬物の低分子化合物1903と生体機能分子間の相互作用1904から構成されたネットワーク回路は変わらない。したがって、図24に示すように、部分領域AR1,AR2およびAR3に分割し、各部分領域のみに属するエッジと部分領域間に跨るエッジとに分割する。エッジ22011は部分領域のみに属し、エッジ22012,22013は部分領域間に跨る。参照符号2203を付したのはバーテックスである。これは図13で説明したと同様である。
【0088】
前述の非特許文献2に記述されているように、逐次的にバーテックスを領域間で移動させるK−M法を用いて、目的関数や拘束条件を満たす最適な分割方法を求めることができる。ここで、複数の領域に分割する目的関数として、分割領域間に跨るエッジの重みを最小にする。また、拘束条件として、分割領域内のバーテックスの数を均等化する。目的関数では、分割された部分回路に跨る相互作用の時定数が長いため、部分回路内の生体機能分子濃度の変化が部分回路間の生体機能分子の濃度に影響を及ぼしにくく、部分回路毎に分割し生体機能分子の濃度を解析することができる。拘束条件では、分割された部分回路内の生体機能分子の数が等しくなるように分割しているため、部分回路毎の生体機能分子濃度に対する連立一次方程式の次元の数が等しくなり、計算所要時間を均等化できることは、生体分子ネットワーク回路でも同じである。
【0089】
次に、主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。図24に示すように、全領域は、グラフ理論を用いて複数の領域に分割すると、複数の部分領域AR1,AR2およびAR3の内部にのみ存在するエッジ22011,22013,22015,−−−と、部分領域AR1,AR2およびAR3間を跨ぐエッジ22012および22014から構成される。これから、図25に示すように、各部分領域AR1,AR2およびAR3から構成されたグループと部分領域AR1,AR2およびAR3間を跨ぐエッジ22012および22014に含まれるバーテックス22033および23025から構成された主領域MARに分別する。これら部分領域AR1,AR2およびAR3と主領域MARにある全てのバーテックスに対してインデックス番号をつける。この際、各部分領域AR1,AR2およびAR3内のバーテックスにインデックス番号を連続に付け、次に異なる部分領域内のバーテックスに継続するようにインデックス番号を連続に付ける。このインデックス番号を全ての部分領域のバーテックスについて連続に付け、その後に、主領域MARのバーテックスにインデックス番号を連続的に付ける。図では、インデックス番号をバーテックスに隣接して示した。
【0090】
図25と図14とを対比して分かるように、電気・電子ネットワーク回路ではエッジに着目してインデックス番号が付されたのに対して、生体分子ネットワーク回路ではバーテックスに着目してインデックス番号が付される。これは、先にも述べたように、電気・電子ネットワーク回路がキルヒホッフの方程式を基礎とするのに対して、生体分子ネットワーク回路は式(1)で説明したレート方程式が基礎となっていることによる。
【0091】
次に、グラフ表示から回路表示への逆変換により主回路と部分回路の二種類以上の回路にグループ化する手段を述べる。部分領域のエッジとバーテックスのグラフ表示を回路表示に変換するとき、部分領域のバーテックスまたはエッジに対応し、遺伝子、蛋白質と薬物の低分子化合物と生体機能分子間の相互作用からなる部分回路が形成される。また、主領域のエッジまたはバーテックスのグラフ表示を回路表示に変換するとき、主領域のバーテックスまたはエッジに対応し、遺伝子、蛋白質と薬物の低分子化合物と生体機能分子間の相互作用からなる主回路が構成される。部分領域のバーテックスに付けられたインデックス番号と主領域のバーテックスに付けられたインデックス番号に対応し節の番号をつける。図26に示すように、バーテックスに付けられたインデックス番号の順序で、生体機能素子の濃度に対する変数を列として表し、生体機能素子の濃度に対する方程式を行として連立一次方程式を形成する。生体機能素子濃度に対する連立方程式の行列Gはブロック対角帯行列を形成することができる。これは、部分領域内のバーテックスが同じ部分領域内のエッジ内に含まれるときは、同じ部分回路内の生体機能素子の間に行列要素2401が発生する。また、主領域が導入され、異なる部分領域に跨るエッジが存在しないことから、部分回路に跨る生体機能分子間の相互作用が存在しなくなり、異なる部分回路の生体機能素子間の非対角的な行列要素は存在しない。一方、部分領域と主領域を跨るエッジは、部分回路と主回路に関係する生体機能分子間の相互作用が存在するため、部分回路と主回路の生体機能素子の間に行列要素2402が発生する。また、主回路間の行列要素2403が発生する。このようにして、生体機能素子濃度の時間変化に対する方程式に対する行列Gは、ブロック的な行列要素が対角項に集まり、行列の右隅の縁には主回路、並びに、主回路と部分回路の節の間の行列要素が集まった構造を形成する。これら前処理過程を通して、生体分子ネットワーク回路に対する連立一次方程式の疎行列構造は、複数の部分回路からなるブロック対角行列に主回路からなる縁付きの行列要素が構成され、ブロック対角縁付き行列に変換することができる。
【0092】
ブロック対角縁付き行列になれば、電気・電子ネットワーク回路に対して実施したと同様に、主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配する手段と主回路と複数の部分回路間の通信手順を用いて、生体分子ネットワーク回路シミュレーションの計算所要時間を短縮することができる。
【0093】
【発明の効果】
本発明によれば、並列分散処理の加速化率を向上することができる。
【図面の簡単な説明】
【図1】本発明の適用対象の並列分散計算装置としての超並列機の構成例を示す図。
【図2】本発明の適用対象の並列分散計算装置としての超並列機の他の構成例を示す図。
【図3】本発明の適用対象の並列分散計算装置としての超並列機の他の構成例を示す図。
【図4】ガウス消去法に代表される連立一次方程式の解法の従来例の一つを説明する図。
【図5】並列分散計算装置上で、電気・電子ネットワーク回路のシミュレーションを並列分散処理する場合の従来例の一つの実行手順の例を示す図。
【図6】データ転送を実行するバスで4台のプロセッサが接続されたワークステーション上で、従来の計算手順と通信手順を用いて並列分散処理により疎行列の解を求めた所要時間の加速化率の例を示す図。
【図7】本発明の実施形態1の概略を示す並列分散環境におけるネットワーク回路の高速計算装置の構成例の概念図。
【図8】本発明によるシミュレーションの対象の一例の電気・電子ネットワーク回路を示す図。
【図9】図8に示す回路の各節に成立するキルヒホッフ方程式のN×N次元行列を示す図。
【図10】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の第1段階を説明する図。
【図11】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の第2段階を説明する図。
【図12】図8に示す電気・電子ネットワーク回路をグラフ表示変換するステップの具体的な処理の最終段階を説明する図。
【図13】グラフ表示に変換された全領域をグラフ理論を用いて複数の部分領域に分割した結果を模式的に示す図。
【図14】各部分領域AR1,AR2およびAR3から構成されたグループと各部分領域AR間を跨ぐエッジのみから構成された主領域MARに分別した結果を模式的に示す図。
【図15】図14に示すエッジに付けられたインデックス番号の順序で、節に対する変数を列として表し、節に対する方程式を行として連立一次方程式を形成したときの行列要素の配列を示す図。
【図16】ブロック対角行列と縁付きの行列要素とから構成されるブロック対角縁付き行列の例を示す図。
【図17】主回路と複数の部分回路に分割し構成した電気・電子ネットワーク回路の並列分散処理の実行手順の例を示す図。
【図18】図8および図9を参照して説明した従来の手法で、キルヒホッフ方程式の連立方程式の15000×15000次元行の疎行列Gの処理を図形化して示す図。
【図19】図18と同じキルヒホッフ方程式の連立方程式を、本発明を適用して得られたブロック対角縁付き行列とした後の疎行列Gの処理を図形化した図。
【図20】本発明を適用して超並列機上で高速プロセッサ用ノイズ評価回路の並列分散処理を実行したときのプロセッサに対する加速化率を示す図。
【図21】本発明を適用する生体分子ネットワーク回路の例を模式的に示す図。
【図22】図21に示す生体分子ネットワーク回路の生体機能分子濃度の時間変化を記述する連立一次方程式の行列Gの例を示す図。
【図23】図21の生体分子ネットワーク回路表示をバーテックスおよびエッジからなるグラフ表示に変換した結果を示す図。
【図24】図23のグラフ表示を部分領域AR1,AR2およびAR3に分割し、各部分領域のみに属するエッジと部分領域間に跨るエッジとに分割した例を示す図。
【図25】グラフ理論を用いて複数の部分領域に分割された全領域を各部分領域AR1,AR2およびAR3および主領域MARに分別した例を示す図。
【図26】図25に示すバーテックスに付けられたインデックス番号の順序で、生体機能素子の濃度に対する変数を列として表し、生体機能素子の濃度に対する方程式を行として連立一次方程式を形成したときの行列要素の配列を示す図。
【符号の説明】
100…制御のためのパソコン、101…入力装置、102…処理・制御部、103…出力装置、104…並列分散計算装置、201…コンピューティングプロセッサユニット、202…メモリユニット、203…コンピューティングユニット、204…データ転送ネットワーク、301…パーソナルコンピュータまたはワークステーション、302…インサーネット、401…グリッドマシン、402…高速ネットワーク、403…超並列機、1021…回路表示のステップ、1022…グラフ表示変換のステップ、1023…グラフの重付けのステップ、1024…領域分割のステップ、1025…2領域グループ化のステップ、1026…主回路、部分回路分割のステップ、1027…回路計算分配のステップ、1028…通信制御のステップ、1029…回路計算結果の統合ステップ、501…非線形素子、502…線形素子、503…節、701…バーテックス、702…エッジ、703…重付け、801…バーテックス、901…エッジ、902…主領域でのエッジのインデックス番号、AR…部分領域、MAR…主領域、1001…部分回路間のブロック行列、1002…部分回路と主回路間のブロック行列、1003…主回路間のブロック行列、1101…ib1行ib1列の対角ブロック、1102…ib2行ib2列の対角ブロック、1103…ib3行ib3列の対角ブロック、1004…ibn行ibn列の対角ブロック、1105…ibn行ib1列の非対角ブロック、1106…ibn行ib2列の非対角ブロック、1107…ibn行ib3列の非対角ブロック、1108…ib1行ibn列の非対角ブロック、1109…ib2行ibn列の非対角ブロック、1110…ib3行ibn列の非対角ブロック、1201…ib1行ib1列,ib1行ibn列およびibn行ib1列の対角ブロックの行列要素に関する消去処理、1202…ib2行ib2列,ib2行ib列およびib行ib2列の対角ブロックの行列要素に関する消去処理、1203…ib3行ib3列,ib3行ibn列およびibn行ib3列の対角ブロックの行列要素に関する消去処理、1204…P1,P2およびP3のコンピュ−ティングユニットからP4のコンピュ−ティングユニットへのデータの送信処理、1205…ibn行ibn列の対角ブロックの行列要素に関する消去処理、1206…ブロック行列のibn行ibn列の節に対する解、1207…P4のコンピュ−ティングユニットからP1,P2およびP3のコンピュ−ティングユニットへのデータの送信処理、1208…ブロック行列のib3行ib3列の節に対する解、1209…ブロック行列のib2行ib2列の節に対する解、1210…ブロック行列のib1行ib1列の節に対する解、1601…i1行i1列の行列要素、1602…i2行i1列の行列要素、1603…i1行i2列の行列要素、1604…i2行i2列の行列要素、1605…i3行i2列の行列要素、1606…i2行i3列の行列要素、1607…i3行i3列の行列要素、1608…i4行i3列の行列要素、1609…i3行i4列の行列要素、1701…i1行i1列およびi1行i2列の行列要素に関する消去処理、1702…i2行i1列,i2行i2列およびi2行i3列の行列要素に関する消去処理、1703…i3行i2列,i3行i3列およびi3行i4列の行列要素に関する消去処理、1704…i4行i3列およびi4行i4列の行列要素に関する消去処理、1705…P1からP3へのデータ送信、1706…P3からP2へのデータ送信、1707…P2からP4へのデータ送信、1708…P4からP2へのデータ送信、1901…遺伝子、1902…蛋白質、1903…薬物の低分子化合物、2101…バーテックス、2102…エッジ、2401…部分回路間のブロック行列、2402…部分回路と主回路間のブロック行列、2403…主回路間のブロック行列。
Claims (20)
- 計算処理を実行するコンピューティングプロセッサユニットと計算処理を実行するために必要なプログラム、入力データおよび計算処理を実行し得られた出力データを記憶するメモリユニットとよりなる複数のコンピューティングプロセッサユニットと、該複数のコンピューティングプロセッサユニット間のデータ転送を実行するデータ転送ネットワークから構成される超並列機と、および、シミュレーション対象のデータを取り込むとともに前記複数のコンピューティングプロセッサユニットに必要なデータを分配し、且つ、シミュレーション結果を出力する制御のためのコンピュータとを用いたシミュレーションにおいて、複数の素子とこれら素子間を連結するパスからなるネットワーク回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換すること、該グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化することよりなる前処理過程と、前記一つの主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配すること、主回路の計算処理のコンピューティングユニットと複数の部分回路の計算処理のコンピューティングユニットの間でデータを送受信する計算手順とにより実行されることを特徴とするシミュレーション方法。
- 前記ネットワーク回路が電気・電子ネットワーク回路であり、電気・電子ネットワーク回路の回路素子をバーテックスに、隣接する回路素子間のパスをエッジとして構成されるグラフ表示に変換するものである請求項1記載のシミュレーション方法。
- 前記ネットワーク回路が生体分子ネットワーク回路であり、DNA、蛋白質、細胞、臓器、薬物の機能分子をバーテックスに、該機能分子間を連結する静電的、化学的、拡散的な相互作用をエッジとして構成されるグラフ表示に変換するものである請求項1記載のシミュレーション方法。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割する請求項2または3記載のシミュレーション方法。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割するに際し、電気・電子ネットワーク回路の回路素子の線形素子の計算量を対応付けたバーテックスの重みに比較して非線形素子の計算量を対応付けたバーテックスの重みを大きく設定する請求項2記載のシミュレーション方法。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割するに際し、ネットワーク回路が生体分子ネットワークの機能分子間の時定数の小さい相互作用の計算量を対応付けたエッジの重みに比較して時定数の大きい相互作用の計算量を対応付けたエッジの重みを大きく設定する請求項3記載のシミュレーション方法。
- 計算処理を実行するコンピューティングプロセッサユニットと計算処理を実行するために必要なプログラム、入力データおよび計算処理を実行し得られた出力データを記憶するメモリユニットとよりなる複数のコンピューティングプロセッサユニットと、該複数のコンピューティングプロセッサユニット間のデータ転送を実行するデータ転送ネットワークから構成される超並列機と、および、シミュレーション対象のデータを取り込むとともに前記複数のコンピューティングプロセッサユニットに必要なデータを分配し、且つ、シミュレーション結果を出力する制御のためのコンピュータとを用いてシミュレーションを行う装置であって、前記制御のためのコンピュータは、複数の素子とこれら素子間を連結するパスからなるネットワーク回路表示をバーテックスおよびエッジから構成されるグラフ表示に変換すること、該グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化することよりなる前処理過程のためのプログラムと、前記一つの主回路の計算処理と複数の部分回路の計算処理を複数のコンピューティングユニットに分配するためのプログラムとよりなることを特徴とするシミュレーション装置。
- 前記ネットワーク回路が電気・電子ネットワーク回路であり、電気・電子ネットワーク回路の回路素子をバーテックスに、隣接する回路素子間のパスをエッジとして構成されるグラフ表示に変換するものである請求項7記載のシミュレーション装置。
- 前記ネットワーク回路が生体分子ネットワーク回路であり、電気・電子ネットワーク回路のDNA、蛋白質、細胞、臓器、薬物の機能分子をバーテックスに、該機能分子間を連結する静電的、化学的、拡散的な相互作用をエッジとして構成されるグラフ表示に変換するものである請求項7記載のシミュレーション装置。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割する請求項8または9記載のシミュレーション装置。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割するに際し、電気・電子ネットワーク回路の回路素子の線形素子の計算量を対応付けたバーテックスの重みに比較して非線形素子の計算量を対応付けたバーテックスの重みを大きく設定する請求項8記載のシミュレーション装置。
- 前記バーテックスおよびエッジに重み付けをして、前記複数の部分回路の計算処理の負担がほぼ均等になるとともに、前記主回路の計算処理の負担が低減できるように前記複数の領域を分割するに際し、ネットワーク回路が生体分子ネットワークの機能分子間の時定数の小さい相互作用の計算量を対応付けたエッジの重みに比較して時定数の大きい相互作用の計算量を対応付けたエッジの重みを大きく設定する請求項9記載のシミュレーション装置。
- 前記コンピューティングユニットは、パーソナルコンピュータやワークステーションの単一マシンから成り、そのマシン間のデータ転送を実行するインサーネットで接続されたデータ転送ネットワークから構成されるパーソナルコンピュータクラスタやワークステーションクラスタである請求項1ないし6のいずれかに記載のシミュレーション方法。
- 前記コンピューティングユニットは、複数の超並列機、パーソナルコンピュータクラスタとワークステーションクラスタをインサーネットで接続されたグリッドマシンからなり、複数のグリッドマシン間のデータ転送を実行する高速ネットワークで接続されたデータ転送ネットワークから構成される請求項1ないし6のいずれかに記載のシミュレーション方法。
- 前記コンピューティングユニットは、パーソナルコンピュータやワークステーションの単一マシンから成り、そのマシン間のデータ転送を実行するインサーネットで接続されたデータ転送ネットワークから構成されるパーソナルコンピュータクラスタやワークステーションクラスタである請求項7ないし12のいずれかに記載のシミュレーション装置。
- 前記コンピューティングユニットは、複数の超並列機、パーソナルコンピュータクラスタとワークステーションクラスタをインサーネットで接続されたグリッドマシンからなり、複数のグリッドマシン間のデータ転送を実行する高速ネットワークで接続されたデータ転送ネットワークから構成される請求項7ないし12のいずれかに記載のシミュレーション装置。
- 前記グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化するに際して、主領域内と部分領域内のエッジの一連のインデックス番号を主回路と部分回路内の一連の節番号に対応付けて逆変換し、節番号の順番に応じて連立一次方程式の変数を列方向に設定し、節番号の順番に応じて連立一次方程式を行方向に設定し、ブロック対角縁付型の行列構造を形成する請求項1、2、4および5のいずれかに記載のシミュレーション方法。
- 前記前処理過程のためのプログラムが、グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化する処理に際して、主領域内と部分領域内のエッジの一連のインデックス番号を主回路と部分回路内の一連の節番号に対応付けて逆変換し、節番号の順番に応じて連立一次方程式の変数を列方向に設定し、節番号の順番に応じて連立一次方程式を行方向に設定し、ブロック対角縁付型の行列構造を形成するものである請求項7、8、10および11のいずれかに記載のシミュレーション装置。
- 前記グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化するに際して、主領域内と部分領域内のバーテックスの一連のインデックス番号を主回路と部分回路内の一連の節番号に対応付けて逆変換し、節番号の順番に応じて連立一次方程式の変数を列方向に設定し、節番号の順番に応じて連立一次方程式を行方向に設定し、ブロック対角縁付型の行列構造を形成する請求項1、3、4および6のいずれかに記載のシミュレーション方法。
- 前記前処理過程のためのプログラムが、グラフ表示をグラフ理論を用いて複数の領域に分割すること、該分割された複数の領域を一つの主領域と複数の部分領域にグループ化すること、該グループ化されたグラフ表示から回路表示への逆変換により一つの主回路と複数の部分回路にグループ化する処理に際して、主領域内と部分領域内のバーテックスの一連のインデックス番号を主回路と部分回路内の一連の節番号に対応付けて逆変換し、節番号の順番に応じて連立一次方程式の変数を列方向に設定し、節番号の順番に応じて連立一次方程式を行方向に設定し、ブロック対角縁付型の行列構造を形成するものである請求項7、9、10および12のいずれかに記載のシミュレーション装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026913A JP2004240541A (ja) | 2003-02-04 | 2003-02-04 | 並列分散環境におけるネットワーク回路のシミュレーション方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003026913A JP2004240541A (ja) | 2003-02-04 | 2003-02-04 | 並列分散環境におけるネットワーク回路のシミュレーション方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004240541A true JP2004240541A (ja) | 2004-08-26 |
Family
ID=32954786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003026913A Pending JP2004240541A (ja) | 2003-02-04 | 2003-02-04 | 並列分散環境におけるネットワーク回路のシミュレーション方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004240541A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011139829A2 (en) * | 2010-04-28 | 2011-11-10 | Stc. Unm | System and methods for performing medical physics calculations |
JP2013101608A (ja) * | 2011-10-17 | 2013-05-23 | Mizuho Information & Research Institute Inc | 非線形構造解析計算装置、非線形構造解析計算方法及び非線形構造解析計算プログラム |
CN104008229A (zh) * | 2014-04-30 | 2014-08-27 | 北京大学 | 一种街区污染物浓度分布模型建立方法 |
JP2015176295A (ja) * | 2014-03-14 | 2015-10-05 | Kddi株式会社 | データ交換装置およびデータ価値評価装置 |
JP2016009320A (ja) * | 2014-06-24 | 2016-01-18 | 富士電機株式会社 | 電気回路のシミュレーション装置、電気回路のシミュレーション方法、プログラム |
WO2018150878A1 (ja) * | 2017-02-14 | 2018-08-23 | 富士フイルム株式会社 | 生体物質解析方法および装置並びにプログラム |
JP2019149196A (ja) * | 2012-07-06 | 2019-09-05 | ナント ホールディングス アイピー,エルエルシー | ヘルスケア解析ストリーム管理 |
CN111537023A (zh) * | 2020-05-13 | 2020-08-14 | 浙江大学 | 一种工业园区大气污染物扩散模拟与溯源方法 |
-
2003
- 2003-02-04 JP JP2003026913A patent/JP2004240541A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9805170B2 (en) | 2010-04-28 | 2017-10-31 | Stc.Unm | System and methods for performing medical physics calculations |
WO2011139829A3 (en) * | 2010-04-28 | 2012-04-05 | Stc. Unm | System and methods for performing medical physics calculations |
WO2011139829A2 (en) * | 2010-04-28 | 2011-11-10 | Stc. Unm | System and methods for performing medical physics calculations |
JP2013101608A (ja) * | 2011-10-17 | 2013-05-23 | Mizuho Information & Research Institute Inc | 非線形構造解析計算装置、非線形構造解析計算方法及び非線形構造解析計算プログラム |
US10957429B2 (en) | 2012-07-06 | 2021-03-23 | Nant Holdings Ip, Llc | Healthcare analysis stream management |
JP2019149196A (ja) * | 2012-07-06 | 2019-09-05 | ナント ホールディングス アイピー,エルエルシー | ヘルスケア解析ストリーム管理 |
JP2015176295A (ja) * | 2014-03-14 | 2015-10-05 | Kddi株式会社 | データ交換装置およびデータ価値評価装置 |
CN104008229A (zh) * | 2014-04-30 | 2014-08-27 | 北京大学 | 一种街区污染物浓度分布模型建立方法 |
CN104008229B (zh) * | 2014-04-30 | 2017-06-09 | 北京大学 | 一种街区污染物浓度分布模型建立方法 |
JP2016009320A (ja) * | 2014-06-24 | 2016-01-18 | 富士電機株式会社 | 電気回路のシミュレーション装置、電気回路のシミュレーション方法、プログラム |
WO2018150878A1 (ja) * | 2017-02-14 | 2018-08-23 | 富士フイルム株式会社 | 生体物質解析方法および装置並びにプログラム |
JPWO2018150878A1 (ja) * | 2017-02-14 | 2020-01-23 | 富士フイルム株式会社 | 生体物質解析方法および装置並びにプログラム |
CN111537023A (zh) * | 2020-05-13 | 2020-08-14 | 浙江大学 | 一种工业园区大气污染物扩散模拟与溯源方法 |
CN111537023B (zh) * | 2020-05-13 | 2021-05-07 | 浙江大学 | 一种工业园区大气污染物扩散模拟与溯源方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hussain et al. | Trade-off between exploration and exploitation with genetic algorithm using a novel selection operator | |
Alexander et al. | Placement and Routing for Performance‐Oriented FPGA Layout | |
CN106875013B (zh) | 用于多核优化循环神经网络的***和方法 | |
Moore et al. | Bluehive-a field-programable custom computing machine for extreme-scale real-time neural network simulation | |
Junker et al. | VANTED: a system for advanced data analysis and visualization in the context of biological networks | |
Pearson et al. | Implementing spiking neural networks for real-time signal-processing and control applications: A model-validated FPGA approach | |
Leite et al. | Parallel simulated annealing for structural optimization | |
US20020091666A1 (en) | Method and system for modeling biological systems | |
Partzsch et al. | Analyzing the scaling of connectivity in neuromorphic hardware and in models of neural networks | |
JPH08508838A (ja) | 有限要素法の新しい解析法及び解析器 | |
Cockrell et al. | Towards anatomic scale agent-based modeling with a massively parallel spatially explicit general-purpose model of enteric tissue (SEGMEnT_HPC) | |
Dabiri et al. | Replica exchange mcmc hardware with automatic temperature selection and parallel trial | |
JP2004240541A (ja) | 並列分散環境におけるネットワーク回路のシミュレーション方法および装置 | |
US20240020537A1 (en) | Methodology to generate efficient models and architectures for deep learning | |
Jendrsczok et al. | A scalable configurable architecture for the massively parallel GCA model | |
Arjas et al. | Estimation of dynamic SNP-heritability with Bayesian Gaussian process models | |
Madiajagan et al. | Parallel machine learning and deep learning approaches for bioinformatics | |
Ma et al. | PRODIGEN: visualizing the probability landscape of stochastic gene regulatory networks in state and time space | |
Jarrah et al. | Optimized parallel architecture of evolutionary neural network for mass spectrometry data processing | |
Koh et al. | Evaluation of parallel decomposition methods for biomechanical optimizations | |
Fehr | An array-based hardware accelerator for digital logic simulation | |
Wensch et al. | Parallel simulation of axon growth in the nervous system | |
Jacquin et al. | DHOEM: a statistical simulation software for simulating new markers in real SNP marker data | |
Hereld et al. | Framework for interactive million-neuron simulation | |
Torbey | Architectural synthesis for VLSI neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051005 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20051005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090303 |