JP6090602B2 - 連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム - Google Patents
連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム Download PDFInfo
- Publication number
- JP6090602B2 JP6090602B2 JP2014554493A JP2014554493A JP6090602B2 JP 6090602 B2 JP6090602 B2 JP 6090602B2 JP 2014554493 A JP2014554493 A JP 2014554493A JP 2014554493 A JP2014554493 A JP 2014554493A JP 6090602 B2 JP6090602 B2 JP 6090602B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- vector
- calculation
- solution
- simultaneous linear
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
本発明は、連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラムに関し、特に複数の演算器で並列処理をする連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラムに関するものである。
近年、例えば有限要素法を用いたシミュレーション装置等のいわゆる工業数学の手法を応用した装置においては、コンピュータを用いて大規模な連立1次方程式を解く必要が生じることが多くなっている。
このような大規模連立1次方程式の求解を行う方法は、まとめれば直接法と反復法とに分類される。
直接法は、連立1次方程式の未知数を一つずつ求めていく方法であり、代表的な直接法としては、いわゆるLU分解を利用したものが挙げられる。一方で、反復法は、漸化式を用いて、暫定解ベクトルを真の解へと漸近させていく方法である。直接法では、決まった計算ステップによって確実に解に到達できるのに対して、反復法では、解に到達するまでの計算量が予測できないという側面がある。
しかしながら、本発明者の検討によれば、例えば有限要素法を用いたシミュレーション方法で現れる連立1次方程式を含め、工業数学の手法を応用した分野で求解対象となる大規模の連立1次方程式Ax=bにおける係数行列Aは疎行列であることが多いが、その場合、直接法が係数行列の次元数の二乗に比例するメモリを必要とするのに対して、反復法は係数行列の次元数の一乗に比例するメモリしか必要としない。従って、非常に大規模な連立方程式を扱う場合において、反復法の使用が有利であり、現実的には反復法しか使えない場合がほとんどであると考えられる。
このような、反復法として用いられるものには、いわゆるクリノフ部分空間法に属する反復法が挙げられる。クリノフ部分空間法に属する反復法としては、共役勾配法、共役残差法、双共役勾配法、二乗共役勾配法、一般化共役残差法、一般化最小残差法、及びMRTR法等が挙げられる。かかるクリノフ部分空間法は、他の反復法と比較してはるかに少ない反復回数で解に漸近するという有意性を有する。
更に、M−1≒A−1の成立する前処理行列M−1を漸化式の中に取り入れることで、クリノフ部分空間法に属する反復法の必要反復回数が減る傾向があるため、前処理行列M−1が漸化式の中に取り入れられることがある。前処理行列M−1を漸化式の中に取り入れる手法としては、いわゆる不完全LU分解によって、A≒LUが成立する下三角行列Lと上三角行列Uを計算して、(LU)−1、即ちU−1L−1を前処理行列として用いる手法が挙げられる。
ここで、不完全LU分解というのは、Aの非零要素が存在する場所にしか、LとUとが非零要素を持たないという制約の下で、A≒LUが成立するようL及びUを求める計算手法のことである。
また、前処理行列としてU−1L−1を用いるというのは、U−1やL−1を実際に求めてそれらの積を用いることを意味しない。というのは、U及びLは疎行列であるが、U−1及びL−1は密行列となるため、U−1及びL−1を実際に求めようとすると計算量や必要メモリ量が膨大となり、反復法を用いるメリットがなくなってしまうからである。そこで、実際には、U及びLを計算しておき、それらを以下の手法で用いることになる。具体的には、漸化式の中で行われる操作は、前処理行列をベクトルに作用させる操作であり、これは結局、L−1をベクトルに作用させた後、この結果にU−1を作用させる操作となる。つまり、L−1をベクトルに作用させる操作は、Lを係数行列とする1次方程式を前進代入法によって求める操作で実現し、U−1をベクトルに作用させる操作は、Uを係数行列とする1次方程式を後退代入法によって求める操作で実現することが可能である。
ここで、本発明者の更なる検討によれば、不完全LU分解で得られたL及びUを用いて、前処理行列としてU−1L−1を使用するという手法は、反復回数の削減に非常に効果的であるものの、並列計算に向かないという傾向を有する。
というのは、漸化式の中にLを係数行列とする1次方程式を前進代入法によって求める操作が入っているが、前進代入法はベクトルの成分を上から順番に確定させていくプロセスであるため、ベクトル内の複数の場所を並列に計算することが非常に難しい傾向があるからである。併せて、漸化式の中にUを係数行列とする1次方程式を後退代入法によって求める操作も入っているが、後退代入法はベクトルの成分を下から順番に確定させていくプロセスであるため、ベクトル内の複数の場所を並列に計算することが非常に難しい傾向があるからである。つまり、前処理行列としてU−1L−1を使用する手法は、前進代入及び後退代入というベクトル内の計算順序の制約が厳しい演算プロセスを含むため、いわゆるベクトルコンピューティングの手法による並列計算の適用が非常に困難な傾向が強い。
そのため、前処理行列としてU−1L−1を使用するという手法は、演算処理の並列化による高速化が困難であるという課題を有するものであり、特に近年、マルチコアCPU(Central Processing Unit)やGPU(Graphics Processing Unit)による並列計算が待望されている現状を鑑みると、これは非常に大きな解決すべき課題であるといえる。
本発明は、以上の検討を経てなされたもので、簡便な構成で、並列計算による高速な連立1次方程式の解法を実現できる連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラムを提供することを目的とする。
以上の目的を達成すべく、本発明の第1の局面においては、クリノフ部分空間法に属する反復法を用いた連立1次方程式の解法を実現する連立1次方程式の解の算出装置であって、複数の演算器を備え、前記連立1次方程式の解に漸近していくベクトル列xk(kは0を含む自然数)は、その次数に応じた複数の成分からなり、前記ベクトル列xkを前記解に漸近させていく反復計算において、前記ベクトル列xkを前記複数の成分に対応した互いに異なる複数の領域に分割すると共に、前記複数の演算器の各々に対して、前記互いに異なる複数の領域に対応した演算処理を並行して実行させるに際して、前記反復計算において用いられる前処理行列が、対角行列として与えられ、前記反復計算において、前記対角行列を前記反復計算で用いられる対応したベクトル列に作用させる際に、前記対角行列の第n(nは自然数)成分と前記対応したベクトル列の第n成分との積の演算処理を並行して実行する算出装置である。
かかる構成においては、反復計算において用いられる前処理行列が対角行列であるため、前処理行列をベクトルに作用させる計算操作において前進代入や後退代入を使用する必要性はなくなる。また、対角行列である前処理行列の対角成分を並べて作成したベクトル(以下、前処理用ベクトルという)を用意しておけば、前処理行列を被作用ベクトルに作用させるという演算プロセスは、前処理用ベクトルと被作用ベクトルとの対応する成分毎の積を計算して、それを並べたものを計算結果のベクトルとすることで実現できることになる。ここで、前処理用ベクトルと被作用ベクトルとの成分毎の積の計算は、成分毎に独立して実行することができるため、簡便なベクトルコンピューティングの手法で並列計算ができる。ここでいう「簡便なベクトルコンピューティングの手法」とは、計算対象となるベクトルを複数の領域に分割して、その相異なる領域の計算を、異なる演算器が並行して行う計算手法のことである。また、演算器とは、四則演算が可能で電力で動作する論理回路である。
前記複数の演算器が、同一のマルチコアCPUの中に設けられた複数のコア同士の組み合わせ、同一のGPUの中に設けられた複数のコア同士の組み合わせ、複数のCPU同士の組み合わせ、複数のGPU同士の組み合わせ、CPU及びGPUの組み合わせ、又は複数のコンピュータ同士の組み合わせであることを第2の局面とする。
かかる構成においては、共にメモリの共有が可能である同一CPUの中の複数コアを使用する構成、及び同一GPUの中の複数コアを使用する構成は、データ転送の時間を短縮し易いため、高速演算に有利であるといえる。一方で、複数のCPU及び複数のGPU、更には複数のコンピュータを用いて並列演算を行う構成も考えられる。かかる場合は、より大規模な連立方程式を扱えるようになるという利点や、より並列度を上げることができるようになるという利点がある。もちろん、これらは、必要とされる性能や、実際に確保できる演算器の種類や台数に応じて、自由度高く組み合わせることができるものである。
また、本発明は、かかる第1又は第2の局面に加え、前記反復法が、対角行列M−1を前記前処理行列とする前処理付共役勾配法であって、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、前記ベクトル列xk、ベクトル列rk及びpk、並びにスカラー列αk及びβkを準備して、数式(数1)で示される漸化式を用いることで、前記ベクトル列xkを前記解ベクトルxに漸近させていくことを第3の局面とする。
かかる構成においては、共役勾配法を用いるものであるため、一回の反復計算の中の計算量が減少するものである。
また、本発明は、かかる第1又は第2の局面に加え、前記反復法が、対角行列M−1を前記前処理行列とする前処理付MRTR法であって、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、前記ベクトル列xk、ベクトル列yk、rk、uk及びpk、並びにスカラー列ζk、ηk及びγkを準備して、数式(数2)で示される漸化式を用いることで、前記ベクトル列xkを前記解ベクトルxに漸近させていくことを第4の局面とする。
かかる構成においては、MRTR法を用いるものであるため、共役勾配法と比較して一回の反復計算の中の計算量が多くなるが、共役勾配法よりも少ない反復回数で解に到達できることが多くなる。また、Aが非対称行列である場合、共役勾配法では解への漸近が保障されないのに対して、MRTR法であればAが非対称行列であっても正定値行列でさえあれば、解への漸近が保障されている。更に、いわゆる丸め誤差が蓄積しにくく、収束性に優れたものといえる。
また、本発明は、かかる第1から4のいずれかの局面に加え、前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aの対角成分の絶対値が全て0.9以上1.1以下となるように前記対角行列M−1が定められていることを第5の局面とする。
かかる構成においては、前処理行列として、行列積M−1Aの対角成分の絶対値が全て1の近傍、理想的には0.9以上1.1以下となるような対角行列M−1を用いているため、前処理に必要な計算量が削減されるものである。例えば、行列積M−1Aの対角成分の絶対値が全て1になるような対角行列M−1は、Aの対角成分の逆数を対角成分として並べていけば作成されることになる。
また、本発明は、かかる第1から第4のいずれかの局面に加え、前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように前記対角行列M−1が定められていることを第6の局面とする。
かかる構成においては、前処理行列として、行列積M−1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるような対角行列M−1を用いているため、前処理に必要な計算量が削減されるものである。例えば、Aを構成する行ベクトルのノルムの逆数を対角成分として並べていけば、行列積M−1Aを構成する行ベクトルのノルムが全て1になるような対角行列M−1を作成されることになる。
また、本発明は、かかる第1から第4のいずれかの局面に加え、前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M1 −1Aの対角成分の絶対値が全て0.9以上1.1以下となるように前記対角行列M1 −1を定め、行列積M2 −1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように対角行列M2 −1を定め、かつ、任意の複素数mを用いてmM1 −1+(1−m)M2 −1を計算し、これを前記前処理行列として用いることを第7の局面とする。
かかる構成においては、前処理行列M−1として、行列積M1 −1Aの対角成分の絶対値が全て0.9以上1.1以下となるように定めた対角行列M1 −1、行列積M2 −1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように定めた対角行列M2 −1、及び任意の複素数mを用いて規定されるmM1 −1+(1−m)M2 −1を用いるため、前処理に必要な計算量が削減されるものである。
また、本発明は、別の局面において、第1から第7のいずれかの局面における前記算出装置を使用して、前記対角行列である前記前処理行列を用いて前記ベクトル列xkを前記連立1次方程式の前記解に漸近させていく前記反復計算を実行させる際に、前記複数の演算器の各々に対して前記ベクトル列xkにおける前記次数に対応して前記並列の演算処理を実行させるプログラムである。
かかる構成のプログラムをコンピュータ上で実行させることにより、簡便な構成で、並列計算しながら高速に連立1次方程式の解が求まる。
また、本発明は、更に別の局面において、第1から第7のいずれかの局面における前記算出装置を使用して、前記対角行列である前記前処理行列を用いて前記ベクトル列xkを前記連立1次方程式の前記解に漸近させていく前記反復計算を実行させる際に、前記複数の演算器の各々に対して前記ベクトル列xkにおける前記次数に対応して前記並列の演算処理を実行させる算出方法である。
かかる構成の算出方法により、簡便な構成で、並列計算しながら高速に連立1次方程式の解が求まる。
本発明の第1の局面における構成によれば、クリノフ部分空間法に属する反復法を用いた連立1次方程式の解法を実現する連立1次方程式の解の算出装置であって、複数の演算器を備え、連立1次方程式の解に漸近していくベクトル列xk(kは0を含む自然数)が、その次数に応じた複数の成分からなり、ベクトル列xkを解に漸近させていく反復計算において、ベクトル列xkを複数の成分に対応した互いに異なる複数の領域に分割すると共に、複数の演算器の各々に対して、互いに異なる複数の領域に対応した演算処理を並行して実行させるに際して、反復計算において用いられる前処理行列が、対角行列として与えられ、反復計算において、対角行列を反復計算で用いられる対応したベクトル列に作用させる際に、対角行列の第n(nは自然数)成分と対応したベクトル列の第n成分との積の演算処理を並行して実行するため、簡便な構成で、並列計算により連立1次方程式の解を高速に算出することができる。
また、本発明の第2の局面における構成によれば、複数の演算器が、同一のマルチコアCPUの中に設けられた複数のコア同士の組み合わせ、同一のGPUの中に設けられた複数のコア同士の組み合わせ、複数のCPU同士の組み合わせ、複数のGPU同士の組み合わせ、CPU及びGPUの組み合わせ、又は複数のコンピュータ同士の組み合わせであることにより、共にメモリの共有が可能である同一CPUの中の複数コアを使用する場合、及び同一GPUの中の複数コアを使用する場合には、データ転送の時間を短縮できて、高速演算を実現できる。また、複数のCPU及び複数のGPU、更には複数のコンピュータを用いて並列演算を行う場合には、より大規模な連立方程式を扱うことができると共に、より並列度を上げることができる。
また、本発明の第3局面における構成によれば、反復法が、対角行列M−1を前処理行列とする前処理付共役勾配法であって、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、ベクトル列xk、ベクトル列rk及びpk、並びにスカラー列αk及びβkを準備して、前述の数式(数1)で示される漸化式を用いることで、ベクトル列xkを解ベクトルxに漸近させていくことにより、一回の反復計算の中の計算量を減少することができる。
また、本発明の第4の局面における構成によれば、反復法が、対角行列M−1を前処理行列とする前処理付MRTR法であって、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、ベクトル列xk、ベクトル列yk、rk、uk及びpk、並びにスカラー列ζk、ηk及びγkを準備して、前述した数式(数2)で示される漸化式を用いることで、ベクトル列xkを解ベクトルxに漸近させていくことにより、共役勾配法と比較して一回の反復計算の中の計算量が多くなるが、共役勾配法よりも少ない反復回数で解に到達できる。また、Aが非対称行列である場合、共役勾配法では解への漸近が保障されないのに対して、MRTR法であればAが非対称行列であっても正定値行列でさえあれば、解への漸近を保障することができる。更に、いわゆる丸め誤差が蓄積しにくく、解への収束性を向上することができる。
また、本発明の第5の局面における構成によれば、前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aの対角成分の絶対値が全て0.9以上1.1以下となるように対角行列M−1が定められていることにより、前処理に必要な計算量を削減することができる。
また、本発明の第6の局面における構成によれば、前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように対角行列M−1が定められていることにより、前処理に必要な計算量を削減することができる。
また、本発明の別な局面における構成によれば、第1から第7のいずれかの局面における算出装置を使用して、対角行列である前処理行列を用いてベクトル列xkを連立1次方程式の解に漸近させていく反復計算を実行させる際に、複数の演算器の各々に対してベクトル列xkにおける次数に対応して並列の演算処理を実行させるプログラムであるため、かかる構成のプログラムをコンピュータ上で実行させることにより、簡便な構成で、並列計算しながら高速に連立1次方程式の解を算出することができる。
また、本発明の更に別の局面における構成によれば、第1から第7のいずれかの局面における算出装置を使用して、対角行列である前処理行列を用いてベクトル列xkを連立1次方程式の解に漸近させていく反復計算を実行させる際に、複数の演算器の各々に対してベクトル列xkにおける次数に対応して並列の演算処理を実行させる算出方法であることにより、簡便な構成で、並列計算しながら高速に連立1次方程式の解を算出することができる。
以下、図面を適宜参照して、本発明の実施形態における連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラムにつき、詳細に説明する。
[算出装置の構成]
まず、本実施形態における連立1次方程式の解の算出装置につき、その各種変形例を含め、図1から図4を参照して、詳細に説明する。
まず、本実施形態における連立1次方程式の解の算出装置につき、その各種変形例を含め、図1から図4を参照して、詳細に説明する。
図1は、本実施形態の連立1次方程式の解の算出装置の構成を示すブロック図である。また、図2は、本実施形態の変形例における連立1次方程式の解の算出装置の構成を示すブロック図である。図3は、本実施形態の別の変形例における連立1次方程式の解の算出装置の構成を示すブロック図である。また、図4は、本実施形態の更に別の変形例における連立1次方程式の解の算出装置の構成を示すブロック図である。
図1に示すように、本実施形態における連立1次方程式の解の算出装置は、コンピュータ10を有する。
コンピュータ10は、コア21〜24を内蔵するCPU20と、CPU20に電気的に接続する通信バス30と、通信バス30に電気的に接続するメモリ40と、を備える。
コア21〜24は、各々、連立1次方程式の解の算出を実行するにあたり、並列の演算処理を実行自在な演算器である。ここでは、複数のコアとして、商用品の一例として計4個のコア21〜24を示すが、その総数は限定的なものではなく、原理的には複数個設けられていればよい。
メモリ40は、コア21〜24に連立1次方程式の解の算出を実行させるにあたり、並列の演算処理を実行させるアルゴリズムを有するプログラムを格納しており、通信バス30を介して、CPU20内のコア21〜24に電気的に接続している。ここでは、メモリ40を1個のみ示すが、その総数は限定的なものではなく、複数個設けられていてもよい。また、メモリ40は、典型的には不揮発性のメモリである。
このように、本実施形態におけるコア21〜24を内蔵するCPU20を備えたコンピュータ10を用いた算出装置では、同一CPU20の中の複数のコア21〜24を複数の演算器として用いて連立1次方程式の解の算出を並行して実行させることが可能になると共に、メモリ40の共有が可能となり、通信バス30を介したデータ転送の時間を短縮することができるため、高速演算に有利であるといえる。
[各種変形例における算出装置の構成]
[各種変形例における算出装置の構成]
ここで、本実施形態における連立1次方程式の解の算出装置においては、連立1次方程式の解の算出を実行する際に、その複数の演算器に並列の演算処理を行わせるものであるから、種々の変形例が考えられる。
かかる連立1次方程式の解の算出装置の変形例としては、図2から図4に示すものが挙げられる。
まず、図2に示すように、本実施形態の変形例における連立1次方程式の解の算出装置は、コンピュータ50を有する。
コンピュータ50は、コア61〜76を内蔵するGPU60と、GPU60に電気的に接続する通信バス80と、通信バス80に電気的に接続するメモリ90と、を備える。
GPU60においても、コア61〜76は、各々、連立1次方程式の解の算出を実行するにあたり、並列の演算処理を実行自在な演算器である。ここでは、複数のコアとして、商用品の一例として計16個のコア61〜76を示すが、その総数は限定的なものではなく、原理的には複数個設けられていればよい。
メモリ90は、コア61〜76に連立1次方程式の解の算出を実行させるにあたり、並列の演算処理を実行させるアルゴリズムを有するプログラムを格納しており、通信バス80を介して、GPU60内のコア61〜76に電気的に接続している。ここでは、メモリ90を1個のみ示すが、その総数は限定的なものではなく、複数個設けられていてもよい。また、メモリ90は、典型的には不揮発性のメモリである。
このように、本変形例におけるコア61〜76を内蔵するGPU60を備えたコンピュータ50を用いた算出装置においても、同一GPU60の中の複数のコア61〜76を複数の演算器として用いて連立1次方程式の解の算出を並行して実行させることが可能になると共に、メモリ90の共有が可能となり、通信バス80を介したデータ転送の時間を短縮することができるため、高速演算に有利であるといえる。更に、一般に、GPUが内蔵するコアの数は、CPUが内蔵するコアの数よりも多いため、本変形例におけるGPU60を備えた算出装置は、図1に示す本実施形態におけるCPU20を備えた算出装置よりも高価にはなるが、並列して行い得る演算処理の数をより増やすことが可能となり、高速演算にはより有利であるといえる。
次に、図3に示すように、本実施形態の別の変形例における連立1次方程式の解の算出装置は、コンピュータ110、120、130及び140を連携させたコンピュータ群100を有する。
コンピュータ110は、図示を省略する複数のコアを内蔵するCPU111と、CPU111に、図示を省略する通信バスを介して、電気的に接続するメモリ112と、を備える。CPU111の構成は、図1に示す本実施形態におけるCPU20のものと同様である。但し、本変形例では、複数のコンピュータを演算器として用いるものであるため、CPU111が内蔵するコアの数は1個であってもよい。
コンピュータ120は、図示を省略する複数のコアを内蔵するCPU121と、CPU121に、図示を省略する通信バスを介して、電気的に接続するメモリ122と、を備える。かかるコンピュータ120の構成は、コンピュータ110のものと同様である。
コンピュータ130は、図示を省略する複数のコアを内蔵するGPU131と、GPU131に、図示を省略する通信バスを介して、電気的に接続するメモリ132と、を備える。GPU131の構成は、図2に示す変形例におけるGPU60のものと同様である。かかる構成は、GPU141と、GPU141に、図示を省略する通信バスを介して、電気的に接続するメモリ142と、を備えたコンピュータ140についても同様である。
これらのコンピュータ110、120、130及び140は、各々、連立1次方程式の解の算出を実行するにあたり、並列の演算処理を実行自在な演算器である。ここでは、複数のコンピュータとして、一例として計4個のコンピュータ110、120、130及び140を示すが、その総数は限定的なものではなく、原理的には複数個設けられていればよい。また、かかる複数のコンピュータは、CPUのみを内蔵するコンピュータのみから構成されていてもよいし、GPUのみを内蔵するコンピュータのみから構成されていてもよい。
メモリ112及び122の構成は、図1に示す本実施形態におけるメモリ40のものと同様であり、メモリ132及び142の構成は、図2に示す変形例におけるメモリ90のものと同様である。ここで、コンピュータ110、120、130及び140に連立1次方程式の解の算出を実行させるにあたり、並列の演算処理を実行させるアルゴリズムを有するプログラムを格納しておくメモリは、典型的にはメモリ112、122、132及び142のいずれかに設定しておけばよい。かかる場合には、そのプログラムを格納したコンピュータが、マスター側となって残余のコンピュータをスレーブ側として制御し、コンピュータ110、120、130及び140が協働して、それら全体で並列の演算処理を実行すればよい。
コンピュータ110、120、130及び140は、通信網150に電気的に接続され、それを介して、互いに必要な信号を送受信する。通信網150は、典型的には、LAN(Local Area Network)、インターネット網、又はそれらの組み合わせから構成される。通信網150に図示を省略するメモリが電気的に接続される場合には、そのメモリ内に、連立1次方程式の解を算出するために並列の演算処理を実行させるアルゴリズムを有するプログラムを格納しておいてもよい。
このように、本変形例におけるコンピュータ110、120、130及び140を連携させたコンピュータ群100を用いた算出装置においては、通信網150に電気的に接続した複数のコンピュータ110、120、130及び140を複数の演算器として用いて連立1次方程式の解の算出を並行して実行させることが可能になる。更に、その各演算器の演算処理能力が格段に増強されると共に、より拡張的に演算器の並列度を上げることが可能になるため、より大規模な連立1次方程式の解の算出を扱うことが可能になる。
次に、図4に示すように、本実施形態の更に別の変形例における連立1次方程式の解の算出装置は、コンピュータ200を有する。
コンピュータ200は、CPU211及び221と、GPU231及び241と、CPU211及び221並びにGPU231及び241に電気的に接続する通信バス250と、通信バス250に電気的に接続するメモリ260と、を備える。
CPU211及び221の構成は、図1に示す本実施形態におけるCPU20のものと同様である。但し、本変形例では、複数のCPU等を演算器として用いるものであるため、CPU211及び221が内蔵するコアの数は1個であってもよい。
GPU231及び241の構成は、図2に示す変形例におけるGPU60のものと同様である。
コンピュータ200においては、CPU211及び221並びにGPU231及び241は、各々、連立1次方程式の解の算出を実行するにあたり、並列の演算処理を実行自在な演算器である。ここでは、複数の演算器として、一例として各々2個のCPU及びGPUを示すが、その個数は限定的なものではなく、原理的にはトータルで複数個設けられていればよい。また、かかるコンピュータ200は、CPUのみを内蔵していてもよいし、GPUのみを内蔵していてもよい。
メモリ260は、CPU211及び221並びにGPU231及び241に連立1次方程式の解の算出を実行させるにあたり、並列の演算処理を実行させるアルゴリズムを有するプログラムを格納しており、通信バス250を介して、CPU211及び221並びにGPU231及び241に電気的に接続している。かかるメモリ260の構成は、図1に示す本実施形態におけるメモリ40、又は図2に示す変形例におけるメモリ90と同様である。
このように、本変形例における同一のコンピュータ200の中のCPU211及び221並びにGPU231及び241を内蔵したコンピュータ200を用いた算出装置においては、複数のCPU211及び221並びにGPU231及び241を複数の演算器として用いて連立1次方程式の解の算出を並行して実行させることが可能になる。更に、その各演算器の演算処理能力が、外部の通信網を利用することがない態様で格段に増強されることが可能になるため、より大規模な連立1次方程式の解の算出を扱うことが可能になる。但し、本変形例では、CPU211及び221並びにGPU231及び241を動作させるOS(Operation System)の構成が煩雑なるため、商用品としての選択自由度には限界がある。
[算出装置に適用されるプログラムの内容]
次に、各種変形例を含む本実施形態における連立1次方程式の解の算出装置に適用されるプログラムにつき、詳細に説明する。かかるプログラムは、各種変形例を含む本実施形態における連立1次方程式の解の算出装置のメモリに格納された後、必要に応じて読み出されて実行されるものである。また、本実施形態における連立1次方程式の解の算出方法は、かかるプログラムを実行することにより、各種変形例を含む本実施形態における連立1次方程式の解の算出装置を用いてなされるものである。
次に、各種変形例を含む本実施形態における連立1次方程式の解の算出装置に適用されるプログラムにつき、詳細に説明する。かかるプログラムは、各種変形例を含む本実施形態における連立1次方程式の解の算出装置のメモリに格納された後、必要に応じて読み出されて実行されるものである。また、本実施形態における連立1次方程式の解の算出方法は、かかるプログラムを実行することにより、各種変形例を含む本実施形態における連立1次方程式の解の算出装置を用いてなされるものである。
本実施形態における連立1次方程式の解の算出装置が、以上説明した同一CPU20の中の複数のコア21〜24、同一GPU60の中の複数のコア61〜76、通信網150に電気的に接続した複数のコンピュータ110、120、130及び140、及び同一のコンピュータ200の中のCPU211及び221並びにGPU231及び241を複数の演算器として用いて、連立1次方程式の解の算出を並行して実行させるための算出処理で用いる解法は、クリノフ部分空間法に属する反復法である。
具体的には、クリノフ部分空間法に属する反復法においては、ベクトル列xk(kは0を含む自然数)を求解方程式である連立1次方程式の解に漸近させていく反復計算において、前処理行列が用いられる。
ここで、各種変形例を含む本実施形態では、複数の演算器に連立1次方程式の解の算出を並行して実行させるために、反復計算において用いられる前処理行列が、対角行列に設定される。
このように、前処理行列が対角行列に設定されることにより、ベクトル列xkを、その次数に応じた複数の成分に対応して、互いに異なる複数の領域に分割すると共に、複数の演算器の各々に対して、互いに異なる複数の領域に対応した演算処理を並行して実行させることが可能となる。
以下、求解方程式である連立1次方程式をAx=bと表現して、前処理行列及びそれを用いたアルゴリズムにつき説明を進めることとする。ここで、xが求解対象となる未知ベクトルで、Aは既知(値の確定した)の係数行列、及びbは既知(値の確定した)のベクトルである。
前処理行列として使用できるM−1としては、以下のようなものを挙げることができる。
まず、行列積M−1Aの対角成分の絶対値が全て1の近傍、理想的には0.9以上1.1以下となるような対角行列M−1である。例えば、Aの対角成分の逆数を対角成分として並べていけば、行列積M−1Aの対角成分の絶対値が全て1になるような対角行列M−1を作成することができる。
次に、行列積M−1Aを構成する行ベクトルのノルムが全て1の近傍、理想的には0.9以上1.1以下となるような対角行列M−1である。例えば、Aを構成する行ベクトルのノルムの逆数を対角成分として並べていけば、行列積M−1Aを構成する行ベクトルのノルムが全て1になるような対角行列M−1を作成することができる。
次に前処理行列として使用できる別のM−1として、先に挙げた2つの例から合成される、以下のようなものを挙げることができる。即ち、行列積M1 −1Aの対角成分の絶対値が全て0.9以上1.1以下となるように対角行列M1 −1を定め、行列積M2 −1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように対角行列M2 −1を定め、任意の複素数mを用いてM−1=mM1 −1+(1−m)M2 −1として作成したM−1である。
以上、前処理行列として使用できる対角行列M−1の例をいくつか挙げたが、いずれが優れているかに関しては、与えられた1次方程式に依存するため一概にはいえない。しかし、いずれを用いた場合にも、前処理を全く行わないのと比較すれば、かなり大きな反復回数削減効果を得ることができるものである。
但し、前処理行列として不完全LU分解の結果を用いる従来の手法と比較すると、各種変形例を含む本実施形態における対角行列を前処理行列とする手法は、解に到達するまでの反復回数が多く必要となることが多い。即ち、反復回数の削減という観点では、対角行列を前処理行列とする手法は、不完全LU分解を用いる従来の手法に劣ることが多い。
しかしながら、不完全LU分解を用いる従来の手法と比較して、対角行列を前処理行列とする手法では、前処理に必要な計算量が削減されるため、反復回数が多くなっても解に到達するまでの計算量の合計はそれほど多くならないか、又は削減される。更に、対角行列を前処理行列とする手法によって反復計算の並列化が効率的にできるようになるため、解に到達するまでの計算時間そのものは大幅に短縮されることになる。
対角行列を前処理行列として使用する反復法のアルゴリズムとしては、原理的には、クリノフ部分空間法に属する手法を任意に選択して、ベクトル列xkを求解方程式である連立1次方程式Ax=bの解に漸近させていく反復計算を実行する際に、ベクトル列xkをその次数に応じた複数の成分に対応した互いに異なる複数の領域に分割すると共に、複数の演算器の各々に対して、かかる互いに異なる複数の領域に対応した演算処理を並行して実行させればよい。
ここで、クリノフ部分空間法に属する手法としては、共役勾配法、共役残差法、双共役勾配法、二乗共役勾配法、一般化共役残差法、一般化最小残差法、及びMRTR法等をその例として挙げることができる。
その中で、特に、一回の反復計算の中の計算量が少ない共役勾配法は好適な手法として挙げることができる。共役勾配法は、ベクトル列xk、rk、pk及びスカラー列αk、βkを準備して、数式(数3)で示される漸化式を用いてベクトル列xkを解ベクトルに漸近させていく手法である。ここで、数式(数3)において、前処理行列としての対角行列M−1をベクトル列に作用させる際には、xk+1の式の右辺のαkpkの項がαk等の式から計算されるため、例えば、ηkを計算する際のM−1rkに着目するときにベクトル列rkの次数がn(自然数)であるとすれば、M−1rkの第1成分は、M−1の対角第1成分とrkの第1成分との積、M−1rkの第2成分は、M−1の対角第2成分とrkの第2成分との積、M−1rkの第3成分は、M−1の対角第3成分とrkの第3成分との積…M−1rkの第n成分は、M−1の対角第n成分とrkの第n成分との積として、求められる。また、例えば、複数の演算器の数がnであれば、かかるn個の積の計算は、n個の演算器の各々が1つの積の計算を実行することが最も並列化の高い演算処理となる。また、この際、例えば、複数の演算器の数がn個よりも少なければ、同一の演算ルーチンのループの中で、複数の演算器の内で複数回の積の演算をするものが出てくることになる。なお、数式(数3)において、x0の値は、ベクトル列の初期値として与えられる。
また、使用する反復法のアルゴリズムの別の例としてMRTR法を挙げることもできる。MRTR法は、ベクトル列xk、yk、rk、uk、zk、pk及びスカラー列ζk、ηk、γkを準備して、数式(数4)で示される漸化式を用いて、ベクトル列xkを解ベクトルに漸近させていく手法である。ここで、数式(数4)において、前処理行列としての対角行列M−1をベクトル列に作用させる際には、xk+1の式の右辺のζkpkの項がM−1Auk等の式から計算されるため、例えば、M−1Aukに着目するときに行列Aがn次の正方行列でベクトル列ukの次数がnであるとすれば(nは自然数)、M−1Aukの第1成分は、M−1の対角第1成分とAuk第1成分との積、M−1Aukの第2成分は、M−1の対角第2成分とAukの第2成分との積、M−1Aukの第3成分は、M−1の対角第3成分とAukの第3成分との積…M−1Aukの第n成分は、M−1の対角第n成分とAukの第n成分との積として、求められる。また、例えば、複数の演算器の数がnであれば、かかるn個の積の計算は、n個の演算器の各々が1つの積の計算を実行することが最も並列化の高い演算処理となる。また、この際、例えば、複数の演算器の数がn個よりも少なければ、同一の演算ルーチンのループの中で、複数の演算器の内で複数回の積の演算をするものが出てくることになる。なお、数式(数4)において、x0及びr0の値は、ベクトル列の初期値として与えられる。
かかるMRTR法は、共役勾配法と比較して一回の反復計算の中の計算量が多いが、共役勾配法よりも少ない反復回数で解に到達できることが多い。また、Aが非対称行列である場合、共役勾配法では解への漸近が保障されないのに対して、MRTR法であればAが非対称行列であっても正定値行列でさえあれば、解への漸近が保障されている。共役勾配法とMRTR法とのいずれが有利であるかは、演算処理をしようとする対象に依存する。
数式(数4)で示される漸化式を用いた場合にも、一回の反復計算の中の計算量を減少させることはできる。しかしながら、各種変形例を含む本実施形態においてMRTR法を使用するにあたっては、数式(数5)で示される漸化式を用いるのが更に好ましい。ここで、数式(数5)において、前処理行列としての対角行列M−1をベクトル列に作用させる際には、xk+1の式の右辺のζkpkの項がM−1Auk等の式から計算されるため、例えば、M−1Aukに着目するときに行列Aがn次の正方行列でベクトル列ukの次数がnであるとすれば(nは自然数)、M−1Aukの第1成分は、M−1の対角第1成分とAuk第1成分との積、M−1Aukの第2成分は、M−1の対角第2成分とAukの第2成分との積、M−1Aukの第3成分は、M−1の対角第3成分とAukの第3成分との積…M−1Aukの第n成分は、M−1の対角第n成分とAukの第n成分との積として、求められる。また、例えば、複数の演算器の数がnであれば、かかるn個の積の計算は、n個の演算器の各々が1つの積の計算を実行することが最も並列化の高い演算処理となる。また、この際、例えば、複数の演算器の数がn個よりも少なければ、同一の演算ルーチンのループの中で、複数の演算器の内で複数回の積の演算をするものが出てくることになる。なお、数式(数5)において、x0及びr0の値は、ベクトル列の初期値として与えられる。
ここで、数式(数4)で示される漸化式と比較すると、数式(数5)で示される漸化式にはベクトル列zkが含まれないと共に、uk+1を求める式が異なる。ベクトル列zk以外の部分に関しては、これらの漸化式は数学的に同値であって、一方から他方を互いに演繹できるが、コンピュータを用いて実際の数値計算に適用した場合には、いわゆる丸め誤差の蓄積に対するふるまいが異なる。
結論としては、数式(数5)で示される漸化式を用いた方が、丸め誤差が蓄積しにくく、収束性が優れる。両者を比較すると、数式(数5)で示される漸化式は、ベクトル列ukを毎回本来の定義式uk=M−1rkで再定義するのに対して、数式(数4)で示される漸化式はそれを避けて単純なzk+1との1次結合によってuk+1を演繹している。結局、数式(数4)で示される漸化式はM−1の作用を一回避けるかわりに、反復計算による丸め誤差の蓄積を甘受しているといえる。M−1の作用、つまり前処理として、不完全LU分解によって得たL、Uを使用する場合には、M−1の作用の計算量が多いため、最初の漸化式を用いてこれを1回避けることにメリットがあるが、各種変形例を含む本実施形態のように、M−1の作用が前処理ベクトルとの間の単純な成分毎積計算である場合には、わざわざこれを1回避けることと引き換えに、丸め誤差の蓄積を甘受するメリットはない。従って、各種変形例を含む本実施形態の中でMRTR法を使用する場合には、数式(数5)で示される漸化式を用いることが好ましいことになる。
(算出例1)
以下、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの求解演算結果について説明する。
(算出例1)
以下、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの求解演算結果について説明する。
図5は、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの求解演算結果を、比較例と共に示す図であり、横軸が反復回数で、縦軸が残差である。
本算出例において、残差は、|b−Axk|/|b|で定義される量であり、xkがどの程度解から乖離しているかを示している。一般的には、残差の大きさが1×10−8程度になったところで計算を打ち切る。反復計算のアルゴリズムとしては、共役勾配法を用いた。
図5においては、前処理を行わなかった場合のデータをA、前処理行列として不完全LU分解から得られたU−1L−1を使用した場合のデータをB、数式(数3)の漸化式を用いて、前処理行列として行列積M−1Aを構成する行ベクトルのノルムが全て1になるように定められた対角行列M−1を使用した場合のデータをCとして、各々示している。
図5に示すように、データBと比較するとデータCは、解に到達するまでに2.5倍程度の反復回数を必要としている。
しかしながら、前処理行列をベクトルに作用させるときの計算量が大きく異なるため、データBと比較すると、データCは、1回の反復計算の中の計算量が1/2.5程度になっている。従って、解に到達するまでに必要なデータCの計算量は、データBのものと実質的に同じである。
ここで、前処理行列をベクトルに作用させる計算ステップにおいて、データBを得る場合に対応する計算アルゴリズムでは並列化が困難であるのに対して、データCを得る場合に対応する計算アルゴリズムでは高効率の並列化が容易である。よって、並列計算を行った状態では、データBを得る場合に比較して、データCを得る場合には、はるかに計算時間が短くなる。
一方で、データAで示す前処理なしの場合には、解に到達するまでの反復回数が多くなり過ぎる。もちろん、前処理なしにすれば並列計算が容易であるし、一回の反復計算の中での計算量も少なくなるが、データCの場合に比較すると、一回の反復計算の中での計算量は9割程度(1割減る程度)であり、並列計算における並列化効率もデータCの場合を得る場合と変わらない。
よって、総合的に考えれば、以上の3者の中では、反復計算のアルゴリズムが共役勾配法の場合に、数式(数3)の漸化式を用いて、前処理行列として行列積M−1Aを構成する行ベクトルのノルムが全て1になるように定められた対角行列M−1を使用し、かつ、前処理行列をベクトルに作用させる計算ステップで並列計算を実行するデータCに対応した場合が、3者の中では最も高速に計算ができる手法といえる。
(算出例2)
次に、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの別の求解演算結果について説明する。
(算出例2)
次に、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの別の求解演算結果について説明する。
図6は、本実施形態における連立1次方程式の解の算出装置を用いて行った有限要素法によるシミュレーションの別の求解演算結果を、比較例と共に示す図であり、横軸が反復回数で、縦軸が残差である。
本算出例においては、反復計算のアルゴリズムとしてはMRTR法を用いた。なお、残差は、算出例1と同じく、|b−Axk|/|b|で定義される量である。
図6において、比較例として示したデータは、前処理行列として不完全LU分解から得られたU−1L−1を使用した場合の結果である。また、算出例及び別の算出例として示した各々のデータは、いずれも前処理行列として行列積M−1Aを構成する行ベクトルのノルムが全て1になるように定められた対角行列M−1を使用した場合であるが、使用している漸化式が異なり、前者では、数式(数4)で前述した漸化式を用い、後者では、数式(数5)で前述した漸化式を用いた。
図6に示すように、算出例における反復回数は、比較例における反復回数よりも減少されているが、算出例では、図中で解に到達していない。一方で、別の算出例におけるものは、反復回数が一番少なくなり、図中で解に実質的に到達していると評価できる。
よって、反復計算のアルゴリズムとしてMRTR法を用いた場合に、数式(数5)の漸化式を用いて、前処理行列として行列積M−1Aを構成する行ベクトルのノルムが全て1になるように定められた対角行列M−1を使用し、かつ、前処理行列をベクトルに作用させる計算ステップで並列計算を実行する場合が、3者の中では最も高速に計算ができる手法といえる。
以上の各種変形例を含む本実施形態における連立1次方程式の解の算出装置、それに用いられる算出方法、及びそれに適用されるプログラムの構成によれば、簡便な構成で、並列計算により連立1次方程式の解を高速に算出することができる。
なお、本発明は、構成要素の形状、配置、個数等は前述の実施形態に限定されるものではなく、かかる構成要素を同等の作用効果を奏するものに適宜置換する等、発明の要旨を逸脱しない範囲で適宜変更可能であることはもちろんである。
以上のように、本発明においては、簡便な構成で、並列計算による高速な連立1次方程式の解法を実現できる連立1次方程式の解の算出装置及び算出方法、並びにそれに適用するプログラムを提供することができるものであるため、その汎用普遍的な性格から広範にシミュレーション装置等の工業数学を応用した分野に適用され得るものと期待される。
Claims (9)
- クリノフ部分空間法に属する反復法を用いた連立1次方程式の解法を実現する連立1次方程式の解の算出装置であって、
複数の演算器を備え、
前記連立1次方程式の解に漸近していくベクトル列xk(kは0を含む自然数)は、その次数に応じた複数の成分からなり、
前記ベクトル列xkを前記解に漸近させていく反復計算において、前記ベクトル列xkを前記複数の成分に対応した互いに異なる複数の領域に分割すると共に、前記複数の演算器の各々に対して、前記互いに異なる複数の領域に対応した演算処理を並行して実行させるに際して、
前記反復計算において用いられる前処理行列が、対角行列として与えられ、
前記反復計算において、前記対角行列を前記反復計算で用いられる対応したベクトル列に作用させる際に、前記対角行列の第n(nは自然数)成分と前記対応したベクトル列の第n成分との積の演算処理を並行して実行する算出装置。 - 前記複数の演算器が、同一のマルチコアCPUの中に設けられた複数のコア同士の組み合わせ、同一のGPUの中に設けられた複数のコア同士の組み合わせ、複数のCPU同士の組み合わせ、複数のGPU同士の組み合わせ、CPU及びGPUの組み合わせ、又は複数のコンピュータ同士の組み合わせである請求項1に記載の算出装置。
- 前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aの対角成分の絶対値が全て0.9以上1.1以下となるように前記対角行列M−1が定められている請求項1から4のいずれかに記載の算出装置。
- 前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M−1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように前記対角行列M−1が定められている請求項1から4のいずれかに記載の算出装置。
- 前記前処理行列を対角行列M−1として、既知の行列A、既知のベクトルbからなる連立1次方程式Ax=bの解ベクトルxを求めるときに、行列積M1 −1Aの対角成分の絶対値が全て0.9以上1.1以下となるように前記対角行列M1 −1を定め、行列積M2 −1Aを構成する行ベクトルのノルムが全て0.9以上1.1以下となるように対角行列M2 −1を定め、かつ、任意の複素数mを用いてmM1 −1+(1−m)M2 −1を計算し、これを前記前処理行列として用いる請求項1から4のいずれかに記載の算出装置。
- 前記請求項1から7のいずれかに記載の前記算出装置を使用して、前記対角行列である前記前処理行列を用いて前記ベクトル列xkを前記連立1次方程式の前記解に漸近させていく前記反復計算を実行させる際に、前記複数の演算器の各々に対して、前記ベクトル列xkにおける前記互いに異なる複数の領域に対応した演算処理を、並行して実行させるプログラム。
- 前記請求項1から7のいずれかに記載の前記算出装置を使用して、前記対角行列である前記前処理行列を用いて前記ベクトル列xkを前記連立1次方程式の前記解に漸近させていく前記反復計算を実行させる際に、前記複数の演算器の各々に対して、前記ベクトル列xkにおける前記互いに異なる複数の領域に対応した演算処理を、並行して実行させる算出方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012287694 | 2012-12-28 | ||
| JP2012287694 | 2012-12-28 | ||
| PCT/JP2013/084659 WO2014104093A1 (ja) | 2012-12-28 | 2013-12-25 | 連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2014104093A1 JPWO2014104093A1 (ja) | 2017-01-12 |
| JP6090602B2 true JP6090602B2 (ja) | 2017-03-08 |
Family
ID=51021171
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014554493A Active JP6090602B2 (ja) | 2012-12-28 | 2013-12-25 | 連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US9727529B2 (ja) |
| JP (1) | JP6090602B2 (ja) |
| WO (1) | WO2014104093A1 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10318665B2 (en) | 2014-12-15 | 2019-06-11 | Schneider Electric Software, Llc | Variable equivalency on connection in a process simulation |
| CN104615584B (zh) * | 2015-02-06 | 2017-12-22 | 中国人民解放军国防科学技术大学 | 面向gpdsp的大规模三角线性方程组求解向量化计算的方法 |
| SE2050455A1 (en) * | 2020-04-21 | 2021-10-22 | Ekstroem Joakim | Efficient implementation of computation of a receiver operating characteristic (roc) curve |
| CN111984921B (zh) * | 2020-08-27 | 2024-04-19 | 华中科技大学 | 一种存内数值计算加速器及存内数值计算方法 |
| CN114998091B (zh) * | 2022-06-22 | 2024-04-26 | 湘潭大学 | 无网格法无矩阵对角预处理pcg求解及gpu加速方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2956800B2 (ja) * | 1991-09-19 | 1999-10-04 | 株式会社日立製作所 | 連立一次方程式に関する計算装置 |
| US6154716A (en) * | 1998-07-29 | 2000-11-28 | Lucent Technologies - Inc. | System and method for simulating electronic circuits |
| US7103537B2 (en) * | 2000-10-13 | 2006-09-05 | Science Applications International Corporation | System and method for linear prediction |
-
2013
- 2013-12-25 JP JP2014554493A patent/JP6090602B2/ja active Active
- 2013-12-25 WO PCT/JP2013/084659 patent/WO2014104093A1/ja not_active Ceased
-
2015
- 2015-06-24 US US14/748,420 patent/US9727529B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US9727529B2 (en) | 2017-08-08 |
| JPWO2014104093A1 (ja) | 2017-01-12 |
| US20150293883A1 (en) | 2015-10-15 |
| WO2014104093A1 (ja) | 2014-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6090602B2 (ja) | 連立1次方程式の解の算出装置及び算出方法、並びにそれに適用されるプログラム | |
| CN107239829B (zh) | 一种优化人工神经网络的方法 | |
| EP2608084B1 (en) | Heterogeneous parallel systems for accelerating simulations based on discrete grid numerical methods | |
| Ji et al. | Parallelizing word2vec in multi-core and many-core architectures | |
| Adlerborn et al. | A parallel QZ algorithm for distributed memory HPC systems | |
| CN109416755B (zh) | 人工智能并行处理方法、装置、可读存储介质、及终端 | |
| Menczer et al. | Two-dimensional quantum lattice models via mode optimized hybrid CPU-GPU density matrix renormalization group method | |
| CN105260342A (zh) | 一种对称正定线性方程组的求解方法与系统 | |
| de Sturler | A performance model for Krylov subspace methods on mesh-based parallel computers | |
| Houtgast et al. | Power-efficiency analysis of accelerated BWA-MEM implementations on heterogeneous computing platforms | |
| US10013393B2 (en) | Parallel computer system, parallel computing method, and program storage medium | |
| JP5954385B2 (ja) | 情報処理装置、情報処理方法、及び、コンピュータ・プログラム | |
| Ramamonjisoa et al. | Simulation of asynchronous iterative algorithms using simgrid | |
| Polat et al. | GPU‐accelerated and mixed norm regularized online extreme learning machine | |
| Ma et al. | Accelerating SVD computation on FPGAs for DSP systems | |
| Hidayetoğlu et al. | MLFMA memory reduction techniques for solving large-scale problems | |
| Anzt et al. | An error correction solver for linear systems: Evaluation of mixed precision implementations | |
| De Luca et al. | A parallel, adaptive multi-point model order reduction algorithm | |
| Shang et al. | Many-core acceleration of the first-principles all-electron quantum perturbation calculations | |
| Zhang et al. | A highly efficient communication avoiding LU algorithm for methods of moments | |
| Sengupta et al. | Graphreduce: Large-scale graph analytics on accelerator-based hpc systems | |
| Wang et al. | An efficient architecture for floating-point eigenvalue decomposition | |
| Maratea et al. | A GPU-parallel algorithm for fast hybrid BFS-DFS graph traversal | |
| CN120849770B (zh) | 用于执行归约计算的方法、计算装置、介质和程序产品 | |
| Naik et al. | Implementing the gauss seidel algorithm for solving eigenvalues of symmetric matrices with CUDA |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170111 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170124 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6090602 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |