本研究の柱である以下の3つの高速化要素技法について、具体的なアプリケーションに基づくコード開発を実施した。 (1) cache-awareコード:FDTD法に対する新たなタイリング手法として新たに、(a)スレッドに割り当てる最適なサイズ・形状の直方体タイルを3次元的に組み合わせて得られる直方体とは限らないタイルを用いる方式と、(b)タイルにカラーリングを施すことで同期操作を削減する方式の、2種類のものを実装・評価し、それぞれについてこれまでの直方体タイル方式に対する優位性を確認した。また(a)について自動チューニングの基礎となるパラメータサーベイを行い、2次・3次キャッシュ容量に基づく最適スレッドタイル形状の設定に関する指針を得た。 (2) SIMD化ループ:FDTD法の(1)(a)のタイリングと組み合わせて、格子点ごとの媒質定数の取得操作について、間接参照を排除しつつメモリ参照回数を最小化したSIMD化ループを実装した。またこのループと、構造格子から派生する疎行列とベクトルの乗算ループを対象として、間接参照を排除したループの構成に関する最適なチューニングパラメータを求める指針を得た。 (3) 通信遅延隠蔽・削減: PIC法によるプラズマシミュレーションコードを対象とした、粒子の境界移動通信、電磁場の境界値通信、電流密度の総和計算のそれぞれについて、メニーコアプロセッサ内でのプロセス並列・スレッド並列の構成比と性能の関係を詳細に評価した。その結果、メニーコアプロセッサの1コアに関する通信性能をベースとした、最適な構成比を求めるための指針が得られた。またこの成果を国際会議IPDPS2017に投稿し、採択された。
|