2011年4月27日掲載
HPC事業部では弊社システムをお買い上げのお客様へ、ユーザーコードの高速化診断サービスや、高速化サービスを実施しております。加えて、極めて強力な第2世代 Core i7 に搭載された AVX の適用可能性について、ユーザーの多い GROMACS と VASP について並行して検証を行っておりました。この度 VASP の AVX 適用可能性について、興味深い結果が出ましたのでご報告します。
検証環境:
CPU : Intel Core i7 2500 (3.3GHz Quad Core)
Compiler: Intel ComposerXE 12.0
弊社でベンチマークライセンスを所有している VASP の最新版 5.2.11 を用いました。インプットファイルはお客様よりご依頼のありました実材料の計算インプットファイルなので、詳細は明かせませんが、40原子数における DFT:PAW-PBE の計算になります。
まず実行時間のプロファイルを確認すると下記のような結果を得ました。
============================================================================== Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls Ks/call Ks/call name 48.07 7103.77 7103.77 fpassm_ 31.23 11718.76 4614.99 ipassm_ 5.74 12566.89 848.13 156676 0.00 0.00 racc0mu_ 5.17 13331.05 764.17 30512640 0.00 0.00 crrexp_mul_wave_ 2.74 13735.23 404.18 900005 0.00 0.00 hamil_mp_eccp_ 2.62 14121.82 386.59 864166 0.00 0.00 vhamil_ 1.92 14405.89 284.07 fftwav_ 0.29 14448.98 43.09 2446793 0.00 0.00 real_cmplx_cmplx_mul_ 0.22 14482.07 33.09 142995 0.00 0.00 pw_charge_ 0.19 14509.72 27.65 69142480 0.00 0.00 eccp_nl_ ==============================================================================
ここで、計算時間の実に 80% を消費している fpassm と ipassm は、 VASP が標準として同梱している Furtmueller の FFT ルーチンです。この FFT の実装は十分に高速なのですが、VASP では他にも FFTW を使うこともできます。また、その延長で MKL の DFT ルーチンを使うこともできます。弊社の実測では、僅かではあるものの MKL を採用したものに速度優位性がありました。
結論として、VASP を高速化するためには FFT の高速化できなければ有意な結果は得られません。かつ AVX 対応の MKL 以上に高速な FFT ルーチンを別途作成することは極めて困難であろうということから、アルゴリズムのよほど大幅な変更がない限り、現行の VASP を AVX により高速化することは、基本的に MKL に依存することになります。
既にベンチマークにて報告してあります通り、シリアルの計算では圧倒的な優位性をもつ AVX 適用の VASP です。改めて2ソケット版のリリースが待ち遠しい結果となりました。
(平日9:30~17:30土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)