辺要素有限要素法による時間調和渦電流解析や高周波電磁場解析で得られる複素対称線形方程式の求解においては, 共役直交共役勾配 (COCG) 法などの反復法の収束性が悪いことが知られている. また, 解析する対象が大規模や複雑になるにつれ収束性はさらに悪化する. よって, 電磁場解析を高効率で行うためには, 大規模な複素対称線形方程式に有効な反復法が必要となる. ここで, 実対称線形方程式に対して多倍長精度演算による反復法の収束性改善が報告されている. 特に倍精度変数を2つ用いた倍々精度演算による研究が広く行われており, 最新計算機アーキテクチャに対する最適化などの報告もされている. しかし, 複素数問題に対する研究例は少なく, 電磁場解析に対しても有効であるかは自明ではない.
そこで本研究は複素対称線形方程式向けの高性能な反復法ソルバー開発を目的として, 倍々精度複素数演算および倍々精度と倍精度の混合精度演算を実装し, 開発システムや既存の多倍長精度演算方式の基本的な計算性能を評価したのち, 混合精度演算を含め多倍長精度演算を用いたCOCG法による複素対称線形方程式の求解システムを開発した.
今回の開発システムの中で使われる倍々精度演算はKnuthやDekkerのアルゴリズムを用いてエラーフリーな計算に基づいている. 倍々精度演算を利用するものとしてよく使われるものとしてQDライブラリなどといったものがあるが, これは実数における倍精度と倍々精度などの混合精度演算は実装されており, 演算子がオーバーロードされている. しかし, complexクラステンプレートを利用する複素数では演算子のオーバーロード実装が十分ではなく, 効率的なコーディングが難しい問題がある. そこで今回は, 倍精度複素数と倍々精度複素数の混合精度演算を実装し, それに基づく混合精度COCG法を提案・実装をし, 性能評価を行った.
まず, 高精度演算の基本的な性能評価として, dot積演算にかかる時間を測定した. 高精度演算手法として, 開発システムの他にQDライブラリによる倍々精度・疑似八倍精度演算, C言語におけるlibquadmathによる四倍精度演算を用いて性能評価や比較を行った. その結果, 今回用いた環境においては倍精度に比べて, 開発システムの倍々精度演算で約6.9倍, QDライブラリの倍々精度演算で約8.1倍, libquadmathの四倍精度で約47倍, QDライブラリの疑似八倍精度演算で約76倍の計算時間がかかることが分かった. 次に, COCG法の性能評価として, 対象となる電磁場解析問題に今回はハイパーサーミアの簡易モデルに関する行列を用いた. 開発システムをこの問題に適用したところ, 倍精度演算に比べCOCG法の反復回数を約2/3に減らすことに成功し, 計算時間も約1.5倍の増加で抑えることが出来た. また, QDライブラリの疑似八倍精度を用いるとさらに収束性は改善したが, 計算時間は倍精度と比べ30~70倍ほどに増加し, 倍々精度数の精度で十分であるといえる. さらに, 前処理のパラメータ選択において, 混合精度演算を含めた高精度演算を用いることでパラメータの影響を抑えることに成功し, ロバスト性の高い手法になっていると言える.
今回は大規模な複素対称線形方程式の求解を高速化することを目的として, 倍々精度及び混合精度の複素数演算を実装しその基本的な計算速度を調査したのち, 係数行列と前処理行列を倍精度とする混合精度COCG法を提案・実装した. その結果倍精度演算に比べ反復法の収束性を改善させ, 大幅な計算時間の増加も抑えることに成功した. さらに開発システムは倍精度演算に比べパラメータフリーな実装になっている. 以上から本システムの有効性を示した.
今後は, より大規模・複雑な問題に対して適用することで, 提案方式の有効性検証を進めていく. また, Intel AVX命令などを用いた高性能計算技術を活用することで, さらなる高速化の実現を目指す. さらに, 他の反復法や前処理法においても混合精度演算の有効性評価を行っていく.
抄録全体を表示