本研究の目的は、高速多重極法によって高速化された境界積分方程式法(境界要素法)をさらに加速するために、潜在能力の高いグラフィック・プロセッシング・ユニット(GPU)を利用したマルチスレッド並列計算手法を構築することである。このような手法を用いれば、数百万自由度規模の大規模波動解析をデスクトップ計算機で安価に実現することが可能となり有意義である。また、本研究はスカラー波動問題(Helmholtz方程式)を対象とするが、各種の波動問題に応用することも困難ではない。 本年度は、低周波領域に対する高速多重極法について、中でも計算負荷の高いM2L計算(多重極モーメントを局所展開係数へ変換する計算)をマルチスレッド型計算機であるGPUによって効率的に処理可能な計算スキームを提案した。そして、その計算コードをNvidia社のGPU上でCUDA言語(当該GPU用のC言語の拡張)を用いて実装した。計算スキームは先行研究であるブラックボックス高速多重極法の研究成果を基とした。基本的には、GPUを利用した計算において陥り易いメモリ帯域の問題を回避するために、M2L計算に現れる多数のループ(階層レベル、ターゲットセル、ソースセル、行、列などに関するループ)の順序を変更し、各種データ(M2L行列など)のブロッキング(各プロセッサでのデータの再利用;プロセッサ間でのデータの共有)を積極的に行った。また、本計算に必須である倍精度演算を新たに考慮した。 開発したコードのテスト結果において、境界要素が計算領域全体に分布している場合、すなわち、階層構造である8分木が一様な深さを持つ場合には、マルチコアCPUのみを利用して得られた計算結果と比較すると、GPUの利用によって約10倍高速に計算を実行することができた。他方、境界要素が計算領域において偏って分布している場合、すなわち、8分木が一様とならずに8分木ノードが偏在する場合、本計算スキームが要とするデータのブロッキングが効率的に行えず、結果として高い計算性能を得ることができない場合があることがわかった。このように境界要素が偏在する場合は特殊と言うよりもむしろ一般的な状況であるため、今後改良する必要がある。
|