高速・高安定型マトリクスソルバライブラリ Super Matrix Solver

      境界要素法専用ソルバ
      Super Matrix Solver SMS-BEM

SMS-BEM の特長

■Hybrid-Solver(前処理(直接法)+反復法)である
■直接法に比べ高速:数倍~40倍程度
■メモリ消費が少ない:所要メモリ係数行列Aのサイズの1.1~1.3倍
■計算時間が係数行列Aのサイズの2乗で増加:直接法では3乗に比例
■Out-of-Core計算が可能:効率的にDiskI/Oをコントロール
■計算精度を調整可能:反復法であるため、収束判定条件を設定できる
■前処理結果を保存可能:係数行列が同じで右辺ベクトルのみ変化する場合、計算時間を短縮可能
■共有メモリ環境での並列処理(OpenMP)に対応


SMS-BEMのアルゴリズム

SMS-BEMの概略仕様

項目 内容 備考

対象とする係数行列

境界要素法(BEM)で作成される密行列

 

要素のデータ型

実数(倍精度)、複素数

 

解法

前処理+反復法

 

データ引渡し方式

(1)係数行列、右辺ベクトルなどを引数として与え引き渡す方法。結果も引数で返す。
(2)一旦ファイルに吐き出された、係数行列、右辺ベクトルなどを、読み込む方法。結果もファイルで返す。

(1)1万4千元以下程度の小・中規模問題用 (2)1万4千元以上程度の大規模問題用(2GBのメモリ、実数データ)

設定可能パラメータ

1)収束判定条件 (2)反復回数 
(3)本ソルバにallocateの可能なメモリ量(Out-of-Coreの場合)

本解法は反復解法をベースとする解法であるため、(1)、(2)の設定が必要。収束判定条件は相対残差L2ノルムで設定

その他の条件

引数として引き渡す場合、係数行列Aは一次元配列で与える。元の係数行列Aのi行、j成分が、一次元配列のk成分と次ぎの関係になるように吐き出します。
k=(i-1)*n+j (nは未知数の数)
ファイルから読み込む場合、Fortran unformatted形式で、元の係数行列Aを1行づつファイルに書き出し作成する。

第一行の各成分、続いて第二行成分、第三行成分、・・・

提供方式

DLL形式(WINDOWS)、スタティックライブラリー形式(UNIX、LINUX)

ソースコードは開示しません

メモリ推定式

In-Coreで計算する場合、係数行列のサイズの0.1-0.3倍のメモリが追加で必要。係数行列のサイズをSとした場合、全所要メモリは1.1S~1.3S程度
Out-of-Coreで計算する場合、ユーザがメモリ使用量を指定可能で、少ない(例えば係数行列の1/10以下)メモリでも計算可能。利用可能メモリ量の指定が大きい程計算速度が速くなる。また、利用可能メモリ量の指定を小さくすると、問題によっては収束し難くなる場合がある。

 

計算時間

In-Core計算の場合、係数行列のサイズ(未知数Nの二乗)に比例して増加

 

SMS-BEM の性能例 - BEMによる電磁場解析の例(未知数6千元)

直接法 SMS-BEM (Version 1) 性能比(【1】/【2】)
計算時間[秒](【1】) 計算時間[秒](【2】) 収束判定条件(L2ノルム相対残差)
1404 50.14 1.00E-07 28
69.3 1.00E-10 20
97.19 1.00E-13 14

SX-Aurora TSUBASA版 Super Matrix Solver BEM

Super Matrix Solverをベクトルマシン向けにチューニング

密行列向けソルバ「SMS-BEM」はXeon CPUと比較して16.1~18.1倍の高速化を実現

Super Matrix Solver-BEMの速度比較(未知数:13,182)

※マシンスペック SX-Aurora TSUBASA:SX-Aurora TSUBASA A300-4 Type10B/1VE 8コア

Linux:Intel(R) Xeon(R) Silver 4108 CPU @ 1.80GHz 2CPU×16コア

SX-Aurora TSUBASAシリーズ - アプリケーションのご紹介

詳細資料

カタログ/資料ダウンロードページに下記の資料がございますので、ダウンロードしてご利用ください。
■SMS-BEM製品情報(PDFファイル/358KB)

バージョンアップによる計算スピード向上

●前処理アルゴリズムの改良、コンパイラ・オプションの変更、ソースコードの最適化により、Version 1に比べて 50% 以上のスピード向上を実現しました。


Version 2の性能向上例

Data 計算時間[秒] 性能向上度[%]
元数 Ver. 1 Ver. 2(1CPU) Ver. 2(2CPU) Ver. 2(1CPU)
/Ver. 1
Real 6000 51.1 30.3 26.9 68.7
13182 295.5 152.4 136.5 93.9
Complex 3681 26.8 15.1 10.6 78.2

[テスト環境]   CPU: Xeon 3.06GHz, OS: Windows XP, EPS=1E-12)

共有メモリ環境での並列処理に対応

前処理プロセスの並列処理(Open MP)化により、Dual Core CPUなどの共有メモリ環境においては、より高速に計算を実行可能です。


6000元(実数)の問題を解いた場合の例

CPU数 経過時間[秒] 台数効果
前処理 反復計算 合計 前処理 反復計算 合計
1 17.36 14.30 31.66 1.00 1.00 1.00
2 9.63 14.31 23.94 1.80 1.00 1.32
4 5.80 14.31 20.11 2.99 1.00 1.57

[テスト環境]   CPU: Xeon 3.06GHz, OS: Windows XP, EPS=1E-12)

稼働環境

  Windows Linux SX-Aurora
TSUBASA
32ビット 64ビット 32ビット 64ビット 64ビット
Version 2 × ×

 ○:対応済み、×:非対応、-:未対応

FAQ & TIPS

>> SMS-BEM FAQ & TIPSページ

(注)本資料は性能を保証するものではありません。また仕様は無断で変更される場合があります。