JP2007133710A - 連立一次方程式反復解法における前処理方法および行列リオーダリング方法 - Google Patents

連立一次方程式反復解法における前処理方法および行列リオーダリング方法 Download PDF

Info

Publication number
JP2007133710A
JP2007133710A JP2005326855A JP2005326855A JP2007133710A JP 2007133710 A JP2007133710 A JP 2007133710A JP 2005326855 A JP2005326855 A JP 2005326855A JP 2005326855 A JP2005326855 A JP 2005326855A JP 2007133710 A JP2007133710 A JP 2007133710A
Authority
JP
Japan
Prior art keywords
matrix
reordering
vector
preprocessing
calculation
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
Application number
JP2005326855A
Other languages
English (en)
Inventor
Hiroyuki Hirayama
裕之 平山
Mitsuyoshi Igai
光祥 猪貝
Satoshi Osabe
敏 長部
Takeshi Naono
健 直野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005326855A priority Critical patent/JP2007133710A/ja
Publication of JP2007133710A publication Critical patent/JP2007133710A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】同期処理の回数を削減し、ベクトル演算機能を有する並列計算機上で非ゼロパターンが不規則でスパースな係数行列に対する前処理付き反復解法における前処理を高速に実行できる前処理方法およびそれに用いる行列リオーダリング方法を提供する。
【解決手段】ステップS1で圧縮形式の係数行列、定数ベクトルを入力し、ステップS2で前処理の並列化に適した行列に変換するリオーダリング情報を作成し、更にステップS3〜S5で各プロッセッサにおいて独立に前処理を行なう行列の各部分をベクトル演算に適したものに変換するリオーダリング情報を作成する。次に、ステップS6でリオーダリング情報により、行列、定数ベクトルの各成分を並べ替え、リオーダリング及びその関連情報、リオーダリング後の行列、定数ベクトルを出力する。
【選択図】図1

Description

本発明は並列計算機システムを用いた連立一次方程式の前処理付き反復解法における前処理方法およびそれに用いる行列リオーダリング方法に関し、特に2台以上のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で係数行列の非ゼロパターンが不規則でスパースな連立一次方程式の求解を高速に実行するための方法に関する。
物理現象を表現する偏微分方程式の初期値、境界値問題を数値的に解くための代表的な離散化方式の一つとして有限要素法がある。有限要素法により離散化、生成された連立一次方程式の係数行列は一般的にその非ゼロパターンが不規則でスパースな行列になる。このような係数行列をもつ連立一次方程式の求解法としては、反復法が広く用いられている。実用的な問題では行列サイズが非常に大きくなる場合が多く、そうしたケースでは並列計算機がしばしば用いられる。また、行列はそのスパース性を利用してCRS(Compressed Row Storage)形式、JAD(Jagged Diagonal Storage)形式またはその簡易型等の圧縮型データ構造で保持されるのが一般的である(例えばR.Barrett, M.Berry, T.F.Chan, J.Demmel, J.Donato, J.Dongarra, V.Eijkhout, R.Pozo, C Romine, and H.Van der Vorst: “Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods”. SIAM Publications, pp.64-68 (1993) 参照)。
反復法としてはクリロフ部分空間法に収束性を改善するための前処理を施したものが広く用いられている。その前処理の代表的なものとして不完全LU分解がある。これを前処理として用いたクリロフ部分空間法では、前処理、具体的には不完全LU分解後の行列をL,U、ある既知ベクトルをq、未知ベクトルをpとしてLUp=qを解く処理が、解法全体を並列化し解を求めるための計算時間を短縮する上でのボトルネックとなることが知られており、不完全LU分解前処理をいかに効率よく並列化するかが大きな技術課題となっている。
これを解決する方法として従来用いられてきたのが、Hyperplaneオーダリングにより行列の要素を並べ替えることで、LUp=qを解く際の前進消去、後退代入計算におけるベクトル長を長大化し、最内側ループにおける計算を並列に行なうというものである(例えばI.S.Duff and H.A.van der Vorst: ”Preconditioning and parallel preconditioning”. Technical Report TR/PA/98/23, CERFACS, France (1998); S.Ma and Y Saad: ”Distributed ILU(0) and SOR preconditioners for unstructured sparse linear systems. Technical Report 94-027, Army High Performance Computing Research Center, University of Minnesota, Minneapolis, MN (1994).参照)。
図6に従来の行列並べ替えの手順を示す。従来の行列並べ替えでは、圧縮形式の行列および定数ベクトルが入力されると(図6ステップS41)、Hyperplaneオーダリングにより、リオーダリング情報およびリストベクトルが作成される(図6ステップS42)。リオーダリング情報とはもともとの行列における各行をリオーダリング後の何行目に配置するかを示すものである。また、リストベクトルはリオーダリング後の行列における前処理のベクトル計算順序を示すもので、何行目から何行目の行を参照する前進消去および後退代入計算が同時に計算可能かを表している。続いて、作成されたリオーダリング情報にもとづいて圧縮形式の行列、定数ベクトルの並べ替えが行なわれ(図6ステップS43)、リオーダリング情報、リストベクトル、リオーダリング後の圧縮形式の行列、リオーダリング後の定数ベクトルが出力される(図6ステップS44)。
図7に並べ替え後の行列の非ゼロパターンとこれに対応するリストベクトルの例を示す。リオーダリング後の行列31では、行列の対角部分が対角成分のみを有する小行列ブロックで構成される。個々の小行列ブロック部分を参照する不完全LU分解前処理すなわち前進消去、後退代入計算はそれぞれ並列実行可能である。この行列に対応するリストベクトル32には、小行列ブロックの数(並列計算可能な行グループの数)と各小行列ブロックの先頭を示す行番号を記憶する。
図8に従来の行列並べ替えを用いた場合における共有メモリ型並列計算機上での不完全LU分解前処理演算方法の詳細なフローを示す。前進消去計算では、最初の小行列ブロックから順に最後の小行列ブロックまで以下の処理を逐次的に行なう(図8ステップS51)。リストベクトルに記憶された情報から着目している小行列ブロックの行番号の範囲を求め(図8ステップS52)、その行範囲における各行の前進消去計算を並列に行なう(図8ステップS53〜S55)。後退代入計算では、最後の小行列ブロックから逆順に最初の小行列ブロックまで同様の処理を逐次的に行なう(図8ステップS56〜S60)。
ベクトル演算機能を有する並列計算機上で上述の計算を行なう場合には、前進消去、後退代入いずれの場合にも個々の小行列ブロックに相当する部分の計算(図8ステップS53,S54およびS57,S58)を複数のプロセッサに分配した上で、分配後の計算をベクトル演算機能により行なう。この時、1小行列ブロックに相当する計算毎にプロセッサ間の同期をとる必要があり(図8ステップS55,S60)、1回の前処理計算当たり、(小行列ブロックの個数)×2−1回の同期処理を行なわなければならない。連立一次方程式の次元数をNとすると、この小行列ブロックの個数は、2次元解析の場合にはN1/2、3次元解析の場合でもN1/3に比例する大きな数になるため、一般に同期処理のオーバーヘッドが顕在化し、前処理演算の並列化効率は低下してしまう。
R.Barrett, M.Berry, T.F.Chan, J.Demmel, J.Donato, J.Dongarra, V.Eijkhout, R.Pozo, C Romine, and H.Van der Vorst: "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods". SIAM Publications, pp.64-68 (1993)
I.S.Duff and H.A.van der Vorst: "Preconditioning and parallel preconditioning". Technical Report TR/PA/98/23, CERFACS, France (1998) S.Ma and Y Saad: "Distributed ILU(0) and SOR preconditioners for unstructured sparse linear systems. Technical Report 94-027, Army High Performance Computing Research Center, University of Minnesota, Minneapolis, MN (1994)
非ゼロパターンが不規則でスパースな係数行列を持つ連立一次方程式の解法として代表的な不完全LU分解前処理付きクリロフ部分空間法において前処理をベクトル演算機能を有する並列計算機上で高速に実行する方法として、行列をHyperplaneオーダリングにより並べ替えた後に前処理を行なう方法が知られている。
ところが、この方法では並べ替え後の行列においてその対角部分に形成される対角成分のみを有する小行列ブロックのそれぞれに対応する前進消去、後退代入計算毎にプロセッサ間の同期処理が必要となる。このため、1回の前処理計算当たり、(小行列ブロックの個数)×2−1回の同期処理が必要となる。不完全LU分解前処理演算を行なう場合、その処理に要する時間は個々のプロセッサにおける前処理の演算時間とプロセッサ間の同期処理に要する時間とからなるが、上記の通り同期処理に要する時間が大きくなってしまうことから、前処理演算の処理に要するトータルの時間が増加してしまう。つまり並列計算機の特性を十分に生かした高速計算を行なうことができない。
そこで、本発明の目的は、上記の問題を解決し、従来法と同程度の反復解法の収束性を維持しかつ実数演算部分のベクトル演算機能による実行を可能とした上で、同期処理の回数を削減し、ベクトル演算機能を有する並列計算機上で非ゼロパターンが不規則でスパースな係数行列に対する前処理を高速に実行できる前処理方法およびそれに用いる行列リオーダリング方法を提供することにある。
本発明による前処理演算方法は、複数のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で連立一次方程式の解を求めるための前処理付き反復解法における前処理演算方法であって、係数行列を縁付き対角ブロック行列に変換した上でベクトル計算向けリオーダリングにより並べ替えるステップと、並べ替えられた前記係数行列を参照する前処理を前記複数のプロセッサ各々に演算させるよう制御するステップとを有し、前記係数行列に対して縁付き対角ブロック行列への変換とベクトル計算向けリオーダリングの二段階で並べ替えを行なうようにしている。
本発明による行列リオーダリング方法は、複数のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で連立一次方程式の解を求めるための前処理付き反復解法における前処理演算において参照する係数行列を並べ替えるためのリオーダリング方法であって、係数行列を縁付き対角ブロック行列に変換した上でベクトル計算向けリオーダリングにより並べ替えるステップを有し、前記係数行列に対して縁付き対角ブロック行列への変換とベクトル計算向けリオーダリングの二段階で並べ替えを行なうようにしている。
さらに、ベクトル計算向けリオーダリングは、RCM(Reverse Cuthill−McKee)オーダリング後にHyperplaneオーダリングを施すことで行うようにしている。
本発明によれば、複数のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で連立一次方程式の解を求めるための前処理付き反復解法における前処理演算において、一回の前処理に必要となるプロセッサ間の同期処理の回数を大幅に削減できる。また、従来法と同程度の反復解法の収束性を維持しかつ実数演算部分のベクトル演算機能による実行を可能としている。これにより、前処理付き反復解法によって連立一次方程式の解を求める計算において大きな部分を占める前処理演算に要する時間を大幅に削減できる。
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例による行列リオーダリングの制御方法を示すフローチャートである。この図1を参照して行列リオーダリングの方法について説明する。
そのスパース性を利用して圧縮型データ構造で保持された係数行列、と定数ベクトルが入力されると(図1ステップS1)、その情報からNested Dissection(以下、NDと呼ぶ)オーダリング(例えばE.G.Boman and B.Hendrickson:”A Multi-level Algorithm for Reducing the Envelope of Sparse Matrices”, Technical Report SCCM-96-14, Stanford University (1996).参照)により行列を縁付き対角ブロック行列に変換するリオーダリング情報を作成する(図1ステップS2)。NDオーダリングにおいては、計算に使用する並列計算機のプロセッサ数をNpeとすると段数log2(Npe)のNDを施す。例えばプロセッサ数が4のときには、2段のNDを施すことになる。次のステップの説明に入る前に、行列にNDオーダリングを施したときの行列の構造と、これを不完全LU分解したときに得られる下三角行列Lの構造について図2、図3を用いて説明する。
図2はプロセッサ数が4のときに作成されるリオーダリング情報により行列の並べ替えを行なった場合の行列の構造を示したものである。行列の対角部分にはプロセッサ数と同数の対角ブロック1,2,4,5が形成される。各対角ブロック部分を参照する不完全LU分解前処理すなわち前進消去、後退代入計算は互いに独立に実行可能である。また、対角ブロック1,2及びこれらを縁取る非ゼロ要素の領域(以下では縁取りブロックと呼ぶ)3の部分を一つの対角ブロック、対角ブロック4,5及び縁取りブロック6の部分を一つの対角ブロックと見るこの二つの対角ブロック部分を参照する前処理も互いに独立に実行可能である。
図3は図2の行列を不完全LU分解した際に求められる下三角行列Lの構造を示したものである。前進消去計算Ly=qにおいては、対角ブロック11,12,14,15を参照する計算は互いに独立に実行可能であり、4プロセッサで並列に計算することができる。対角ブロック11,12を参照する計算がともに終了した時点で縁取りブロック13を参照する計算が実行可能となる。同様に、縁取りブロック16を参照する計算も対角ブロック14,15を参照する計算がともに終了した時点で実行可能となる。縁取りブロック13と16を参照する計算も互いに独立に実行可能であり、2プロセッサで並列に計算することができる。縁取りブロック13、16を参照する計算が終了した時点で縁取りブロック17を参照する計算が実行可能となり、このブロックを参照する計算が終わると行列全体の前進消去計算が完了する。大規模行列に対してNested Dissectionオーダリングを用いている場合、対角ブロック11,12,13,14に属する行が行列の大部分を占め、また各対角ブロックのサイズがほぼ均一になる。しかも、プロセッサ間の同期処理は高々Nested Dissectionの段数log2(Npe)回行なえばよいため、同期処理のオーバーヘッドも小さい。したがって、高い並列化効率(ほぼプロセッサ台数倍の並列化加速率)が得られる。
後退代入計算の場合も、上述の前進消去計算と同様にして、高い並列化効率が得られる。
次に、図1のステップS3以降について説明する。図1ステップS2においてNDオーダリングにより行列を縁付き対角ブロック行列に変換するリオーダリング情報を作成したら、続いて、リオーダリング情報により並べ替えを行なった行列のあるブロック(対角ブロックまたは縁取りブロック)に着目して、当該ブロックを参照する前進消去、後退代入計算がベクトル演算可能となるように、並べ替えの範囲を当該ブロックに限定した更なるリオーダリングを施し、その部分リオーダリング情報と、リオーダリング後の行列において前処理のベクトル計算順序を示す部分リストベクトルを作成する(図1ステップS3)。NDオーダリング自体は、もともと大規模疎行列の直接解法において演算量を削減するための手法として考案されたものであり、反復解法の前処理に適用する場合の解の収束性やベクトル化を考慮したオーダリングではないため、各ブロックを参照する前進消去、後退代入計算を、並列計算機のベクトル演算機能を活用して高速に行なうためには、図1ステップS3のようなリオーダリングを付加する事が必要になる。
ベクトル化のためのリオーダリングとしてはHyperplaneオーダリングが広く用いられているが、不完全LU分解前処理にHyperplaneオーダリングを用いた場合のクリロフ部分空間法の収束性は、リオーダリング前の行列における元々の番号付けに大きく影響される。この行列における元々の番号付けとして、差分法により離散化、生成された連立一次方程式の場合、いわゆるナチュラルオーダリングがクリロフ部分空間法の収束性の点で優れていることが知られている。
そこで、図1ステップS3におけるベクトル化向けリオーダリングでは、有限要素法により離散化、生成された連立一次方程式の場合にナチュラルオーダリングと収束性の点で同等の効果をもつRCMオーダリング(例えばM.Benzi, D.B.Szyld and A.van Duin;“Orderings for incomplete factorization preconditioning of nonsymmetric problems”.SIAM J. Scientific Computing,20,pp.1652-1670 (1999).参照)をまず行なってクリロフ部分空間法の収束性改善を図った上で、Hyperplaneオーダリングを適用するようにした。これにより、並列化のためにNDオーダリングを適用したことによるクリロフ部分空間法の収束性劣化を抑えた上で前処理をベクトル化することが可能である。
図1ステップS3の処理は、すべてのブロックに対して処理が完了するまで繰り返す(図1ステップS4)。
続いて、行列の各ブロックに対して求めた部分リオーダリング情報、部分リストベクトルから全体行列に対するリオーダリング情報、前処理のベクトル計算順序を示すリストベクトルを合成する。また、これと同時に、各ブロックの先頭行を指し示すリストベクトルのインデクスを記憶するインデクスリストを作成する(図1ステップS5)。
最後に、全体行列に対するリオーダリング情報により圧縮型データ構造で保持された行列と定数ベクトルの成分を実際に並べ替え(図1ステップS6)、ブロックの先頭行インデクスリスト、リオーダリング情報、前処理のベクトル計算順序を示すリストベクトル、リオーダリング後の圧縮型データ構造で保持された行列、リオーダリング後の定数ベクトルを出力する(図1ステップS7)。
図4に本実施例にもとづいて作成したブロックの先頭行インデクスリスト、前処理のベクトル計算順序を示すリストベクトルおよびリオーダリング後の行列の一例を示す。ただし、リオーダリング後の行列については、説明のわかりやすさを考慮して行列の一部分のみを拡大して示した。リーオーダリング後の行列21は、全体の構造としては図2で示したように縁付き対角ブロック行列になるが、各対角ブロックの中を見ると図7の行列31と同様に行列の対角部分が対角成分のみを有する小行列ブロックで構成されている。これは縁取りブロックの対角部分でも同様である。この対角成分のみを有する各小行列ブロックを参照する前処理(前進消去、後退代入)がベクトル演算可能な処理の単位になる。行列21に対応するリストベクトル22には、行列全体の中に含まれる対角成分のみを有する小行列ブロックの数(ベクトル演算可能なループの数)と各小行列ブロックの先頭を示す行番号が記憶されている。ブロックの先頭行インデクスリスト23には、図3における11〜17の各ブロックの先頭行番号を指し示しているリストベクトル22上のインデクスが記憶されている。
図5に本実施例にもとづいて作成したデータを用いた不完全LU分解前処理を共有メモリ型並列計算機上で実行する場合の演算方法の詳細なフローを示す。
まず初めに、前進消去計算においてブロックの先頭行インデクスリスト23に記憶されたインデクスを参照する順序を示すリストNCを定義する(図5ステップS11)。プロセッサ数Npeが4のときには、前進消去計算において、図3の対角ブロック11,12,14,15を参照する計算を最初に行い、続いて縁取りブロック13,16を参照する計算、最後に縁取りブロック17を参照する計算を行なう。したがって、各ブロック11〜17をそれぞれ通し番号1〜7で表すとすると、各ブロックの参照順序は1,2,4,5,3,6,7となる。この情報を記憶するのがリストNCである。続いてNDの段数NE(=log2(Npe))を求め、リストNCを参照する際に用いるインデクスicを初期化する(図5ステップS12)。
次に、前進消去計算を、並列実行可能なプロセッサ数により、NE+1段階の処理に分けて行なう。以下では、Npe台のプロセッサで並列実行可能な前進消去計算の最初の処理を第NE段の処理、Npe/2台のプロセッサでプロセッサで並列実行可能な次の処理を第NE−1段の処理、以下同様にして最後の1プロセッサで実行する処理を第0段の処理と呼ぶ。前進消去計算では第NE段の処理から降順に計算を進め(図5ステップS13)、当該段目の処理を分担する各プロセッサに対して(図5ステップS14)、そのプロセッサが参照するブロックをリストNCから特定し(図5ステップS15)、当該ブロックに含まれている小行列ブロックの先頭行が記憶されているリストベクトル22の範囲を先頭行インデクスリスト23から求める(図5ステップS16)。
次に当該ブロックに含まれている小行列ブロックの昇順に(図5ステップS17)、当該小行列ブロックの行列における行番号の範囲をリストベクトル22から求め(図5ステップS18)、その行範囲にある各行の前進消去計算をベクトル演算により行なう(図5ステップS19,S20)。各プロセッサにおける当該段目の前進消去計算が終了したら、プロセッサ間の同期処理を行い(図5ステップS21)、インデクスicをアップデートする(図5ステップS22)。
続いて、後退代入計算を行なう。インデクスicを再初期化(図5ステップS23)後、後退代入計算では第0段の処理から昇順に計算を進め(図5ステップS24)、当該段目の処理を分担する各プロセッサに対して(図5ステップS25)、そのプロセッサが参照するブロックをリストNCから特定し(図5ステップS26)、当該ブロックに含まれている小行列ブロックの先頭行が記憶されているリストベクトル22の範囲を先頭行インデクスリスト23から求める(図5ステップS27)。ただし、リストベクトル22の最後の部分に格納された情報に対応する小行列ブロックでは後退代入計算が不要のため、この小行列ブロックは処理の対象から除く(図5ステップS28)。
次に当該ブロックに含まれている小行列ブロックの降順に(図5ステップS29)、当該小行列ブロックの行列における行番号の範囲をリストベクトル22から求め(図5ステップS30)、その行範囲にある各行の後退代入計算をベクトル演算により行なう(図5ステップS31,S32)。各プロセッサにおける当該段目の後退代入計算が終了したら、プロセッサ間の同期処理を行い(図5ステップS33)、インデクスicをアップデートする(図5ステップS34)。
以上で不完全LU分解の前処理演算が終了するが、プロセッサ間の同期処理(図5ステップS21,S33)は一回の前処理当たりlog2(Npe)×2回行なうだけでよい。このため、同期処理のオーバーヘッドは従来方式の場合に比べ大幅に削減され、前処理演算の並列化効率が向上する。
以上では、本発明による前処理演算を共有メモリ型並列計算機上で実現する方法を示したが、本発明の方法では前処理を複数のプロセッサに分散して独立に実行させるため、本発明の方法を分散メモリ型並列計算機にも同様に適用できることは明らかである。
以上説明したように、本発明によれば、前処理付き反復解法によって連立一次方程式の解を求める計算において一回の前処理に必要となるプロセッサ間の同期処理の回数を削減でき、前処理演算に要する時間を大幅に削減できるので、並列計算機システムを用いた連立一次方程式の求解処理の処理速度向上に有効であり、この分野での実施が見込まれる。
本発明の一実施例による行列リオーダリング方法を示すフローチャートである。 図1のNDオーダリングにより並べ替えられた後の行列の構造の例を示す図である。 図2の行列を不完全LU分解した際に求められる下三角行列Lの構造を示す図である。 図1にもとづいて作成したブロックの先頭行インデクスリスト、前処理のベクトル計算順序を示すリストベクトルおよびリオーダリング後の行列の一例を示す図である。 図1にもとづいて作成したデータを用いた共有メモリ型並列計算機上での不完全LU分解前処理演算方法の詳細を示すフローチャートである。 従来法による行列リオーダリング方法を示すフローチャートである。 従来法にもとづいて作成した前処理のベクトル計算順序を示すリストベクトルおよびリオーダリング後の行列の一例を示す図である。 従来法にもとづいて作成したデータを用いた共有メモリ型並列計算機上での不完全LU分解前処理演算方法の詳細を示すフローチャートである。
符号の説明
1,2:対角ブロック、3:縁取りブロック、4,5:対角ブロック、6,7:縁取りブロック、11,12:下三角行列の対角ブロック、13:下三角行列の縁取りブロック、14,15:下三角行列の対角ブロック,16,17:下三角行列の縁取りブロック、21:本発明によるリオーダリング後の係数行列、22:前処理のベクトル計算順序を示すリストベクトル、23:ブロックの先頭行インデクスリスト、31:従来法によるリオーダリング後の係数行列、32:前処理のベクトル計算順序を示すリストベクトル、S1〜S7:本発明の一実施例による行列リオーダリングの処理単位、S11〜S34:本発明の一実施例による共有メモリ型並列計算機上での不完全LU分解前処理演算の処理単位、S41〜S44:従来法による行列リオーダリングの処理単位、S51〜S60:従来法による共有メモリ型並列計算機上での不完全LU分解前処理演算の処理単位。

Claims (3)

  1. 複数のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で連立一次方程式の解を求めるための前処理付き反復解法における前処理演算方法であって、係数行列を縁付き対角ブロック行列に変換した上でベクトル計算向けリオーダリングにより並べ替えるステップと、並べ替えられた前記係数行列の各ブロックに対応する部分の前処理を前記並列計算機の複数のプロセッサで並列に行わせるよう制御するステップとを有し、前記係数行列に対して縁付き対角ブロック行列への変換とベクトル計算向けリオーダリングの二段階で並べ替えを行ない、リオーダリング情報と並列計算を制御するインデクスリストと前処理のベクトル計算順序を示すリストベクトルとリオーダリング後の係数行列および右辺定数ベクトルの情報を出力することを特徴とする前処理演算方法。
  2. 複数のプロセッサからなり個々のプロセッサがベクトル演算機能を有する並列計算機上で連立一次方程式の解を求めるための前処理付き反復解法における前処理演算において参照する係数行列を並べ替えるためのリオーダリング方法であって、係数行列を縁付き対角ブロック行列に変換した上でベクトル計算向けリオーダリングにより並べ替えるステップを有し、前記係数行列に対して縁付き対角ブロック行列への変換とベクトル計算向けリオーダリングの二段階で並べ替えを行ない、リオーダリング情報と並列計算を制御するインデクスリストと前処理のベクトル計算順序を示すリストベクトルとリオーダリング後の係数行列および右辺定数ベクトルの情報を出力することを特徴とする行列リオーダリング方法。
  3. 前記ベクトル計算向けリオーダリングは、RCM(Reverse Cuthill−McKee)オーダリング後にHyperplaneオーダリングを施すことで行うようにしたことを特徴とする請求項2記載の行列リオーダリング方法。
JP2005326855A 2005-11-11 2005-11-11 連立一次方程式反復解法における前処理方法および行列リオーダリング方法 Pending JP2007133710A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005326855A JP2007133710A (ja) 2005-11-11 2005-11-11 連立一次方程式反復解法における前処理方法および行列リオーダリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005326855A JP2007133710A (ja) 2005-11-11 2005-11-11 連立一次方程式反復解法における前処理方法および行列リオーダリング方法

Publications (1)

Publication Number Publication Date
JP2007133710A true JP2007133710A (ja) 2007-05-31

Family

ID=38155308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005326855A Pending JP2007133710A (ja) 2005-11-11 2005-11-11 連立一次方程式反復解法における前処理方法および行列リオーダリング方法

Country Status (1)

Country Link
JP (1) JP2007133710A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101598A (ja) * 2011-10-17 2013-05-23 Mizuho Information & Research Institute Inc 挙動解析システム、挙動解析方法及び挙動解析プログラム
JP2018506757A (ja) * 2015-12-22 2018-03-08 合肥工▲業▼大学HeFei University of Technology 改善された位置変位法に基づく行列の三角分解の求解モジュールおよび方法
WO2024007652A1 (zh) * 2022-07-06 2024-01-11 芯和半导体科技(上海)股份有限公司 一种大型稀疏矩阵加速求解方法、系统及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101598A (ja) * 2011-10-17 2013-05-23 Mizuho Information & Research Institute Inc 挙動解析システム、挙動解析方法及び挙動解析プログラム
JP2018506757A (ja) * 2015-12-22 2018-03-08 合肥工▲業▼大学HeFei University of Technology 改善された位置変位法に基づく行列の三角分解の求解モジュールおよび方法
WO2024007652A1 (zh) * 2022-07-06 2024-01-11 芯和半导体科技(上海)股份有限公司 一种大型稀疏矩阵加速求解方法、系统及存储介质

Similar Documents

Publication Publication Date Title
JP7329533B2 (ja) 演算を加速するための方法および加速器装置
US8959135B2 (en) Data structure for tiling and packetizing a sparse matrix
JP2956800B2 (ja) 連立一次方程式に関する計算装置
US20210173787A1 (en) Accelerator and system for accelerating operations
US8762655B2 (en) Optimizing output vector data generation using a formatted matrix data structure
US20180321912A1 (en) Data accumulation apparatus and method, and digital signal processing device
US10713022B2 (en) Systems and methods for stencil amplification
Schütt et al. GPU‐Accelerated Sparse Matrix–Matrix Multiplication for Linear Scaling Density Functional Theory
US20170206089A1 (en) Information processing apparatus and computational method
WO2021080873A1 (en) Structured pruning for machine learning model
JPWO2019216277A1 (ja) 情報処理装置、演算装置、及び情報処理方法
CN114722994A (zh) 在硬件中实现全连接神经网络层
JP2007133710A (ja) 連立一次方程式反復解法における前処理方法および行列リオーダリング方法
Yang An easily implemented, block-based fast marching method with superior sequential and parallel performance
JP2020080048A (ja) 並列処理装置およびプログラム
JP2018206078A (ja) 並列処理装置、並列演算方法、及び並列演算プログラム
JP5429164B2 (ja) 有限オートマトン生成システム
JPH10303307A (ja) 配置方式
KR102372869B1 (ko) 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법
CN114691302A (zh) 一种面向大数据处理的动态缓存替换方法及设备
CN113887714A (zh) 用于在硬件中运行动态循环神经网络的方法和系统
CN113255269B (zh) 一种性能驱动的多fpga雅克比模版计算最优部署方法及系统
Chen et al. ConvStencil: Transform Stencil Computation to Matrix Multiplication on Tensor Cores
CN110648287A (zh) 盒式滤波器并行高效计算方法
Soh et al. Dynamic Tensor Linearization and Time Slicing for Efficient Factorization of Infinite Data Streams