JP5672902B2 - ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 - Google Patents
ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 Download PDFInfo
- Publication number
- JP5672902B2 JP5672902B2 JP2010216136A JP2010216136A JP5672902B2 JP 5672902 B2 JP5672902 B2 JP 5672902B2 JP 2010216136 A JP2010216136 A JP 2010216136A JP 2010216136 A JP2010216136 A JP 2010216136A JP 5672902 B2 JP5672902 B2 JP 5672902B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- divided
- component
- nodes
- dividing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 90
- 239000011159 matrix material Substances 0.000 claims description 66
- 238000000354 decomposition reaction Methods 0.000 claims description 51
- 241000287463 Phalacrocorax Species 0.000 claims 1
- 238000004381 surface treatment Methods 0.000 claims 1
- 230000008030 elimination Effects 0.000 description 47
- 238000003379 elimination reaction Methods 0.000 description 47
- 238000002224 dissection Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 12
- 239000000470 constituent Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 241001229889 Metis Species 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/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)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
代表的なorderingにnested dissection がある。nested dissection とは、空間を2つの分割領域とこれらの分割領域を分割する分割面に分割して番号付けする方法である。nested dissectionについては、非特許文献1を参照されたい。さらに、スパース行列をグラフで表現して、グラフを構成ノード数がほぼ等しい2つの部分グラフに分割し、分割するために取り除くノード数が最小となるように分割をする。この2分割を、再帰的に繰り返し、もうこれ以上分割できないところまで分割して得られるorderingは一般化されたnested dissection によるorderingと呼ばれる。
上記では、LDL^T分解について述べたが、この分解は、修正コレスキー分解と呼ばれ、コレスキー分解(LL^T分解)とほぼ同じアルゴリズムが適用できる。したがって、以下の説明では、コレスキー分解について言及するが、同様のアルゴリズムが修正コレスキー分解にも適用できる。
・定理
コレスキー分解LL^T=Aにおいて、数値的なキャンセルを除くと、aki≠0、かつ、k>iであれば、ノードiは、elimination treeにおけるノードkの子ノードである。
(非特許文献1参照)
スパース行列の直接解法に使われる基本技術の詳細は、非特許文献1を参照されたい。
2次元の正方形領域での問題を考える。この領域での問題を表現する偏微分方程式を離散化してスパースな正値対称行列を得る場合を考える。このとき、離散化された格子点は、領域の中で、隣接する格子点と結合されている。
番号付けは、分割で生成した2つの領域の内の一つの領域を構成する格子点の集合に対して連続に番号を割り当てる。次に、もう一つの領域を構成する格子点の集合に対して引き続いて番号を連続に割り振る。最後に、2分割で取り除いた格子点に引き続き番号を割り振る。
{φ(i+1)+φ(i−1)−2φ(i)}/h2=0
となる。ここで、hは、隣り合う格子点間の距離である。これを行列で表すと、
以下に、再帰呼び出しの手続きでの番号付けの方法を記述する。
以下のプログラムコードにおいて、関数partition は領域の分割を行う手続きで、領域を分割できるかを判定して、できるときは、seta,setb に2分割した領域を、cutsurfaceに分割面を返す。setは、今分割したい格子点の集合である。
call numbering(set)
recursive procedure numbering(set)
call partition(set,seta,setb,cutsurface,icon)
if(partition is done)then ! numbering を呼ばれた順に番号付けは連番で行う。
call numbering(seta) ! setaを番号付けする。
call numbering(setb) ! setbを引き続き番号付けする。
call numbering(cutsurface) ! cutsurfaceを番号付けする。
else
call numbering(set)
endif
return
end
なお、partitionのアルゴリズムについては、非特許文献2を参照されたい。
これらを、一般の連結する領域に対して適用するために、離散化した格子点の結合関係をグラフで表現し、グラフを分割する面を構成するノード数が最小で、分割した部分グラフを構成する構成要素ノードの数が均等になるように分割することを繰り返して、一般化されたnested dissection orderingを構成することが考えられている。この場合も同様に、elimination treeは2分木になる。
elimination treeの構成要素ノードに対応する行列の列で、引き続くノード番号の構成要素ノードに関して、ノード番号の大きい方のnonzeroパターンがノード番号の小さい列と等しい列を結合する。また、枝を構成する構成要素ノードを調べてnonzero パターンが比較的に似ていて、結合してもzeroの割合が大きく増えない場合は結合する。この結果、コレスキー分解すると、結合した列ベクトルの行で、nonzero 要素を持つ行の数は増える。つまり、この行を圧縮して格納するのに必要な領域にzeroが含まれることになる。こうしてnonzeroパターンが似ていて列を結合してできたブロックをpanel と呼ぶ。
panelには、index listが対応して設けられる。index listは、panelのデータがスパース行列の列の中の何行目に当るかを保持する。panelは、panelに保持される列に共通にzeroである要素以外のnonzero要素のデータしか保持しないので、index listは保持されているnonzero要素が列の中の何行目かを示すのである。なお、panelは、保持される列に共通にzeroとなる要素を保持しないものであるので、nonzero要素として保持されていても、実際の数値はzeroとなることがある。
elimination treeの親の構成要素ノードでnonzero 要素のパターンが一致するものを結合したものを、各列のnonzero 要素のみ圧縮して格納する。これはpanel となる。次の親ノードとはnonzeroパターンは一致しないが、包含関係にある。すなわち、次の親ノードにおいてnonzeroである要素に対応する行は、分解の処理における更新処理において更新され、nonzero要素となるので、次の親ノードのnonzeroパターンは、panel内に反映されることになる。このような関係を包含関係と呼んでいる。このような次の親ノードをpanelに結合すると、不要な0 をpanel に含むようになる。図3の例の場合、panelの下方に不要なzeroが生じており、この場合のインデクスは、panelと、結合された親ノードとで共通でない部分が大きい。
分枝するノードから分かれる枝の先につながるノードは、nested dissection では分割された領域を構成するノードに対応する。
図4のような直方体がいくつかの分割の結果、生成されたとする。真ん中の部分は直方体を2分して取り除く面を構成するノードの集合を表す。分割前はこれら3つの部分はつながっている。また、分割前の表面は、他の領域と接していると仮定する。
領域の分割をさらに進めてもう分割できないところまで続けたものを結合すると、この構造が繰り返される。
1)ある程度の深さまででグラフの再帰的分割をやめる(取り除く分割面を構成するノード数が、ノードの結合を行うことを考えたときのスーパーノードのブロック幅の大きさ程度となったら分割をやめる)。最後の深さレベルを持つ2分割で生成された領域群のおのおのの領域を構成する構成要素ノードに番号を振るとき、2つに分割する面(分割面)の構成要素ノードからの距離が遠いものから順番に番号を振る方法。
2)もう一つは、生成された分割領域に接する分割面をすべて考えたとき、これらのnested dissection を生成するときに取り除く全ての分割面との距離が遠くなるような構成要素ノードから順番に番号を振る方法。
方式2の方は、多くの列を結合しなくても性能の引き出しが可能なメモリアクセスが高速である場合に適している。
図6〜図10は、ノードの隣接ノードを表すデータ構造を表す図である。このデータは、分割面を構成する構成要素ノードの集合、つまり最後に分割されたグラフの構成要素ノードの集合、分割面を表す集合から2つに枝分かれする構造を再帰的に表した木構造(離散化空間を分割した場合の各領域を示す領域ノードをtree構造で示したもの)、各集合に番号を振って識別するとき使う集合の構成ノード数からなる。
図6は、各構成要素ノードに隣接する構成要素ノードを表す。
nodeinfは、分割面か分割された領域を識別する番号を、構成要素ノードのノード番号に対応させて格納する。構成要素ノードごとに、構成ノードポインター(チェイン構造で構成要素を表現する) 、領域識別番号、新番号、処理済flagを持つ。これらの要素をすべてのノード数分の配列の形で持つ。
領域を分割するときに、領域から分割面を取り除き、共通部分のない2つの領域を生成する。elimination treeにおいて、この2つの領域から分割面の構成要素ノードを経由せずに、他方の領域の構成要素ノードに向かうedgeはない。このような、分割を再帰的に繰り返し、ある深さで止める。ある深さで分割を止めるとは、再帰的分割において、取り除く分割面を構成するノード数が、ノードの結合を行うことを考えたときのスーパーノードのブロック幅の大きさ程度となった深さで分割をやめることを示す。
図9の番号付けは、treeをdepth first searchの順番で番号を振った。図9において、root領域ノードの番号は15で、レベル0である。レベル3の領域ノード1、2に接続されるparent領域ノードは、レベル2の3である。レベル3の領域ノード4、5のparent領域ノードは、6である。レベル2の領域ノード3、6のparentノードは、レベル1の領域ノード7である。同様に、領域ノード8、9のparentが領域ノード10、領域ノード11,12のparentが領域ノード13、領域ノード10、13のparentが領域ノード14である。root領域ノード15は、領域ノード7、14のparentである。逆に、領域ノード1、2は、領域ノード3のchildであり、領域ノード4、5は、領域ノード6のchildであり、領域ノード3、6は、領域ノード7のchildであり、領域ノード7、14は、root領域ノード15のchildである。また、領域ノード1に対する領域ノード2は、brotherである。以下同様である。
stacksf およびstcknodeを用意する。スタックには、1次元配列を利用する。方式1では全処理について、それぞれstacksfとstacknodeを一つずつ設ける。方式2では、stacksfは、全処理について1つであるが、stacknode は、分割領域ごとに確保して利用する。
スパース行列をグラフ(elimination tree)に表現して、それを再帰的に分割するが、ノード(列)を結合してスーパーノードを作るときのブロック幅の上限から、これ以上分割するか制御する。これは、分割面を構成するノードを結合して適当な大きさのスーパーノードを構成できるようにするためである。
方式1の処理手順:
生成された、領域ノードからなるtreeの最大深さレベルをS としたとき、2**(S+1)-1個の領域ノードがある。
root領域ノードからdepth first searchで、順番に処理する。処理しようとするノードがleafノード(子ノードを持たないノード)のとき、その親ノードは分割面を表す。
leafノードの親ノードである分割面を構成する構成要素ノードのチェインをたどり、構成要素ノードをスタック(stacksf) に積む。
このstacksf から構成要素ノードを一つずつ取り出して、取り出した構成要素ノードの隣接ノードをスキャンする。隣接ノードが現在対象としている分割領域に属する要素ノードであり、かつ、まだstacknode に積まれていないノードであれば、処理済のflagを設定して、stacknode に積む。
分割面を構成する構成要素ノードを表すチェインをたどり、相対番号を1から振る。全体での番号は、いままでに番号を振った総数+相対番号になる。これをノードごとに設定する。
生成された領域ノードからなるtreeの最大の深さをS とすれば、leafノードはm=2**S個ある。そこで2**S個のstacknode を各leafノードに対して確保し利用する。
そして、treeをdepth first searchでleafへ下るpathをたどる途中で分割面を通過するときに、つぎの処理を行う。
depth-first searchで、leafノードに到達したら、stacknode の底から順番に構成要素ノードを取り出す。その構成要素ノードの隣接ノードをスキャンして、このleafノードの構成要素ノードであって、未処理のものについて、処理済のflagをonに設定して、stacknode に積む。この処理を繰り返してstacknode から取り出すノードがなくなったら、stacknode の一番上から下へと順番にノードを取り出して、構成ノードに相対番号を1から振る。
分割面を表す構成要素ノードを表すチェインをたどり、相対番号を1から振る。全体での番号は、いままでに番号を振った総数+相対番号になる。これをノードごとに設定する。
図12においては、スパース行列をグラフ(elimination tree)で表現して、再帰的に2分割する。分割のレベルごとにすべての分割面を構成するノード総数の最低値が、スーパーノードのブロック数程度になったか否かを判断して分割を止める。その後、2分木の作成、分割面、分割領域の構成要素ノードのチェインの作成、どの分割面、分割領域に属するかの識別番号の設定を行う。
図13及び図14では、elimination treeの構成要素ノードの集合であって、分割面、分割領域を表す領域ノードのtreeをrootからdepth-first searchの順にたどって番号付けする。このtreeは2分木で、leaf ノードの深さレベルは、同じ。brother はあれば必ず1つとなる。
図15においては、分割面を構成する構成要素ノードの集合から遠い構成要素ノードから、領域ノードの構成するtreeのleafに対応する分割領域の構成要素ノードに番号を振る。
ステップS51において、counterに今まで番号付けした総ノード数を代入する。ステップS52において、現在処理している分割面の構成要素ノードを、1つずつチェインをたどって取り出し、取り出された構成要素ノードの新番号として、counter=counter+1を格納する。ステップS53において、stacknodeが空か否かを判断し、Noの場合には、ステップS52に戻り、Yesの場合には、サブルーチンを抜ける。
領域ノードの集合を表すtreeをrootからdepth-first searchの順にたどって番号付けする。depth first searchでleaf方向にtreeをchild 関係でたどるとき、分割面を表すノードを通過する。このとき、分割面の構成要素ノードの隣接ノードで分割領域に属する構成要素ノードを対応する分割領域のstacknode に積む。そして、分割領域の構成要素ノードをbreadth first searchで番号付けする出発集合とする。分割面の構成要素の番号付けは、方式1と同じ。この領域ノードからなるtreeは2分木で、leaf nodeの深さレベルは同じで、brother はあれば必ず1つとなる。
図17及び図18において、まず、ステップS55で、curparentに、領域ノードからなるtreeのrootノードを設定する。また、curparentのchildをcurchildに設定する。このとき、curparentの他のchildをbrotherに設定する。ステップS56において、curchildがnullか、すなわち、存在しないか否かを判断する。ステップS56の判断がNoの場合には、ステップS57において、curparentをまだ通過していない、すなわち、まだ処理していない場合には、サブルーチン(後述)において、この領域ノードを表す分割面の構成要素ノードの隣接ノードが分割領域に属するとき、stacknodeに当該領域の構成要素ノードを積み、通過済みのflagを立てる。
マルチコアCPU10は、1つのCPUノードの内部にCPUコア(L1キャッシュも内臓)12を複数封入したもので、各コアからL2キャッシュおよびバスインタフェース11を共通に使う。論理的には、各CPUコアが1つのCPUとして動作するように見える。
3次元の立方体でラプラス方程式を有限差分で離散化して得られる方程式を各次元を60分割した。つまり60^3個の変数が現れる場合を用いた。1つのレベルのnested dissectionで、各次元を2分割して境界面を取り除くと、8つの小さな立方体が生成される。これを3レベル行った。生成された8^3個の小さな(ほぼ)立方体について、境界面から遠い順に番号付けを行うことでorderingを得る。
スレッド数 1 2 4 8 16 32 64 128
3レベル 74.667 40.874 28.432 15.606 10.955 7.42 6.407 6.133
ND 359.599 198.51 179.318 105.55 78.111 61.029 45.925 40.959
計算機は共用メモリ型スカラ並列計算機M9000 (128cores, SPARC64VII quad core CPU 2.52GHz)を使用し、この計算機上でスパースな正値対称行列の連立1次方程式を以下のorderingでスパース行列のLDL^T分解によって解いた性能を示している。スパース行列の次数は60^3であった。単位は秒(sec)である。
“3レベル”は、本実施形態で示したものを使用し、“ND”は、一般化されたnested dissection ordering(METIS 4.0でサポートされているもの)を利用した。
11 L2キャッシュ及びバスインタフェース
12 L1キャッシュ及びCPUコア
13 相互結合網(バス)
14 メモリモジュール
Claims (5)
- 共有メモリ型スカラ並列計算機によってスパースな正値対称行列をコレスキー分解あるいは修正コレスキー分解する際のordering生成方法であって、
分割手段が、スパース行列を表現したグラフを構成する構成要素ノードの集合を、2分割する分割面を取り除いて、2つの分割領域と前記分割面とに分割する分割処理を行い、
番号付け手段が、前記2つの分割領域のうち一方の分割領域に属する構成要素ノードについて、前記分割面に属する構成要素ノードに接続された前記一方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、他方の分割領域に属する構成要素ノードについても、前記分割面に属する構成要素ノードに接続された前記他方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、最後に前記分割面に属する構成要素ノードに番号付けする番号付け処理を行い、
前記分割手段は、前記分割面に含まれる構成要素ノードの数が、構成要素ノードのデータをキャッシュに保持するために結合される列の数になるまで、前記一方の分割領域と前記他方の分割領域の各々についてスパース行列を表現したグラフを生成し、生成したグラフに対して再帰的に前記分割処理を行い、前記番号付け手段は、再帰的な前記分割処理により生成される2つの分割領域と分割面とに対して、再帰的に前記番号付け処理を行うことを特徴とするordering生成方法。 - 前記番号付け手段は、前記再帰的な分割処理を最後まで行って得られた2つの分割領域に属する構成要素ノードについて、生成された全ての前記分割面に属する構成要素ノードから遠い構成要素ノードから順次番号を付すことを特徴とする請求項1に記載のordering生成方法。
- 前記番号付け手段は、前記分割面に属する構成要素ノードに接続された前記一方の分割領域の構成要素ノードまたは前記他方の分割領域の構成要素ノードからの接続関係をたどりながら、構成要素ノードをスタックに積み上げ、全ての構成要素ノードを積み上げ終わった後、スタックの上から構成要素ノードを取り出して、順次番号を付すことを特徴とする請求項1または2に記載のordering生成方法。
- スパースな正値対称行列をコレスキー分解あるいは修正コレスキー分解する際のordering生成方法を共有メモリ型スカラ並列計算機に実現させるプログラムであって、
前記プログラムは、
スパース行列を表現したグラフを構成する構成要素ノードの集合を、2分割する分割面を取り除いて、2つの分割領域と前記分割面とに分割する分割処理と、
前記2つの分割領域のうち一方の分割領域に属する構成要素ノードについて、前記分割面に属する構成要素ノードに接続された前記一方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、他方の分割領域に属する構成要素ノードについても、前記分割面に属する構成要素ノードに接続された前記他方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、最後に前記分割面に属する構成要素ノードに番号付けする番号付け処理と、
を前記共有メモリ型スカラ並列計算機に実行させ、
前記共有メモリ型スカラ並列計算機は、前記分割面に含まれる構成要素ノードの数が、構成要素ノードのデータをキャッシュに保持するために結合される列の数になるまで、前記一方の分割領域と前記他方の分割領域の各々についてスパース行列を表現したグラフを生成し、生成したグラフに対して再帰的に前記分割処理を行い、再帰的な前記分割処理により生成される2つの分割領域と分割面とに対して、再帰的に前記番号付け処理を行うことを特徴とするプログラム。 - スパースな正値対称行列をコレスキー分解あるいは修正コレスキー分解する際のordering生成方法を実行する共有メモリ型スカラ並列計算機であって、
スパース行列を表現したグラフを構成する構成要素ノードの集合を、2分割する分割面を取り除いて、2つの分割領域と前記分割面とに分割する分割処理を行う分割手段と、
前記2つの分割領域のうち一方の分割領域に属する構成要素ノードについて、前記分割面に属する構成要素ノードに接続された前記一方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、他方の分割領域に属する構成要素ノードについても、前記分割面に属する構成要素ノードに接続された前記他方の分割領域の構成要素ノードからの接続関係をたどりながら、前記分割面から遠い構成要素ノードから順次番号を付し、最後に前記分割面に属する構成要素ノードに番号付けする番号付け処理を行う番号付け手段と、
を備え、
前記分割手段は、前記分割面に含まれる構成要素ノードの数が、構成要素ノードのデータをキャッシュに保持するために結合される列の数になるまで、前記一方の分割領域と前記他方の分割領域の各々についてスパース行列を表現したグラフを生成し、生成したグラフに対して再帰的に前記分割処理を行い、前記番号付け手段は、再帰的な前記分割処理により生成される2つの分割領域と分割面とに対して、再帰的に前記番号付け処理を行うことを特徴とする共有メモリ型スカラ並列計算機。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010216136A JP5672902B2 (ja) | 2010-09-27 | 2010-09-27 | ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 |
US13/165,272 US8805912B2 (en) | 2010-09-27 | 2011-06-21 | Ordering generating method and storage medium, and shared memory scalar parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010216136A JP5672902B2 (ja) | 2010-09-27 | 2010-09-27 | ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012073681A JP2012073681A (ja) | 2012-04-12 |
JP5672902B2 true JP5672902B2 (ja) | 2015-02-18 |
Family
ID=45871743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010216136A Expired - Fee Related JP5672902B2 (ja) | 2010-09-27 | 2010-09-27 | ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8805912B2 (ja) |
JP (1) | JP5672902B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9116747B2 (en) * | 2012-06-20 | 2015-08-25 | Sas Institute Inc. | Sparse threaded deterministic lock-free cholesky and LDLT factorizations |
JP6083300B2 (ja) | 2013-03-29 | 2017-02-22 | 富士通株式会社 | プログラム、並列演算方法および情報処理装置 |
JP6384331B2 (ja) * | 2015-01-08 | 2018-09-05 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
CN106062732B (zh) * | 2015-02-06 | 2019-03-01 | 华为技术有限公司 | 数据处理系统、计算节点和数据处理的方法 |
US10003613B2 (en) * | 2015-12-18 | 2018-06-19 | International Business Machines Corporation | Security inspection of massive virtual hosts for immutable infrastructure and infrastructure as code |
US10540398B2 (en) * | 2017-04-24 | 2020-01-21 | Oracle International Corporation | Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it |
CN111651371B (zh) | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470368B1 (en) * | 1999-05-21 | 2002-10-22 | Sun Microsystems, Inc. | Using tiling to improve performance in a sparse symmetric direct matrix solver |
EP2058740A1 (en) | 2006-08-30 | 2009-05-13 | Fujitsu Limited | High-speed calculation process method of combination equation based on finite element method and boundary element method |
JP2008299641A (ja) | 2007-05-31 | 2008-12-11 | Mitsubishi Electric Corp | 連立一次方程式の並列求解方法およびノード順序付け方法 |
JP2009025962A (ja) * | 2007-07-18 | 2009-02-05 | Hitachi Ltd | 連立一次方程式求解方法及び装置 |
US8204925B2 (en) * | 2008-05-22 | 2012-06-19 | National Instruments Corporation | Controlling or analyzing a process by solving a system of linear equations in real-time |
JP5458621B2 (ja) | 2009-03-19 | 2014-04-02 | 富士通株式会社 | スパースな正値対称行列の連立1次方程式の計算方法、装置、プログラム |
-
2010
- 2010-09-27 JP JP2010216136A patent/JP5672902B2/ja not_active Expired - Fee Related
-
2011
- 2011-06-21 US US13/165,272 patent/US8805912B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8805912B2 (en) | 2014-08-12 |
US20120078991A1 (en) | 2012-03-29 |
JP2012073681A (ja) | 2012-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5672902B2 (ja) | ordering生成方法、プログラム及び共有メモリ型スカラ並列計算機 | |
Grigori et al. | Communication avoiding ILU0 preconditioner | |
US20180046714A1 (en) | Data visualization system | |
Moisan et al. | Parallel discrepancy-based search | |
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
JP4778558B2 (ja) | 有限要素法と境界要素法による結合方程式の高速演算処理方法 | |
CN111915011B (zh) | 一种单振幅量子计算模拟方法 | |
US20170262411A1 (en) | Calculator and matrix factorization method | |
US8583719B2 (en) | Method and apparatus for arithmetic operation by simultaneous linear equations of sparse symmetric positive definite matrix | |
Zhou et al. | Efficient Critical Paths Search Algorithm using Mergeable Heap | |
Grigori et al. | Brief announcement: Lower bounds on communication for sparse Cholesky factorization of a model problem | |
Vasilchikov | On optimization and parallelization of the little algorithm for solving the travelling salesman problem | |
Tas et al. | Greed is good: Parallel algorithms for bipartite-graph partial coloring on multicore architectures | |
Laslier et al. | How quickly can we sample a uniform domino tiling of the 2 L * 2L 2 L× 2 L square via Glauber dynamics? | |
Carr et al. | Distributed hierarchical contour trees | |
Yang | An easily implemented, block-based fast marching method with superior sequential and parallel performance | |
Shibla et al. | Improving efficiency of DBSCAN by parallelizing kd-tree using spark | |
Ma et al. | Parallel exact inference on multicore using mapreduce | |
Conway | The design of efficient dynamic programming and transfer matrix enumeration algorithms | |
van der Graaff | Dynamic programming on nice tree decompositions | |
Uçar | Partitioning, matching, and ordering: Combinatorial scientific computing with matrices and tensors | |
Hsieh et al. | A faster implementation of a parallel tree contraction scheme and its application on distance-hereditary graphs | |
Alotto et al. | A deterministic multiobjective optimizer | |
Liyang et al. | Parallel Implementation of DBSCAN Algorithm Based on Spark | |
Brown et al. | Solving large sparse linear systems using asynchronous multisplitting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130702 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140611 |
|
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: 20141202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5672902 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |