コア数に応じてスピードアップを望めるMD系アプリでは、コア数の多いGPUを使うことで、今までのCPUと比較してさらに速度向上が見込めます。
MD系で日本では特にポピュラーなAmberで、GPU用パッチが公開されていますので、それを試してみました。
パッチ本家サイトに載っているサンプルを試しました。実行環境は次のとおりです。
項目 | CPU環境 | CPU+GPU環境 |
---|---|---|
CPU | Quad-core Intel Xeon E5540 @ 2.53GHz x 2 (8コア全部を使用) | Quad-core Intel Xeon E5540 @ 2.53GHz x 2 (8コアあるが、1コアのみを使用) |
GPU | 使用せず | Tesla C1060 x 1(Multiprocessor 30個 で Core 240個) |
ノード数 | 1 | |
OS | CentOS release 5.3 (Final) | |
コンパイラ | Intel Fortran Compiler 10.1 | gfortran |
Intel C++ Compiler 10.1 | gcc 4.1.2 | |
数値演算ライブラリ | Intel MKL 10.1 | 使用せず |
MPI | OpenMPI 1.2.9 | 使用せず |
CUDA | 使用せず | CUDA release 2.2 |
ソースコードバージョン | AMBER 10 Release | AMBER 10 Release + CUDA Patch v0.1 |
AMBERHOME/test/cuda/ 以下にテスト用サンプルが置いてあるのでそれを真似してインプットを作成しました。
cd $AMBERHOME/test/cuda mkdir liketheweb cd liketheweb cp ../trpcage/* . vi Run_md_trpcage (mdinに次が入るように修正し上書き保存) &cntrl imin=0,irest=1,ntx=5, nstlim=100000,dt=0.002,ntb=0, ntf=2,ntc=2,tol=0.000001, ntpr=1000, ntwx=1000, ntwr=50000, cut=9999.0, rgbmax=15.0, igb=1,ntt=0,nscm=0, /
測定結果は次の通りでした。
構成 | Total CPU time [seconds] | 速度向上率 |
---|---|---|
CPU 8core | 109.83 | 1.00 |
CPU 1core + GPU | 65.06 | 1.69 |
パッチ本家サイトで報告どおりの速度向上が見られました。今回GPU高速化対象となっているのは Amber の中でも PMEMD(“Particle Mesh Ewald Molecular Dynamics”) だけですが、それでも絶対的に高い性能が得られることは大きな魅力です。
(平日9:30~17:30土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)