最大限にGPU計算機能を発揮する用途として分子動力学の代表的なアプリケーションである
NAMDがありますが、この
GPU対応システムを株式会社オーティビーでは全国販売しております. 

分子動力学NAMDにおけるCUDAのベンチマーク結果イメージ 分子動力学NAMDにおけるCUDAのベンチマーク結果イメージ

※上のアニメは計算結果を基にして可視化ツールで生成しております.

NAMDは分子動力学シミュレーションを行なうためのソフトウェアです.Charm++ parallel objectにもとづき,大規模な生体分子システムについて高性能なシミュレーションを行なえるように設計されています.
また,NAMDではNVIDIA GPUを計算デバイスとして使用する計算がサポートされており,さまざまな機能が追加されています.GPUを使った計算を行なうことでCPUのみの場合に比べて大幅に高速化を行なえることがあり,計算によっては従来のCPUクラスタをより小規模なGPUクラスタに置き換えられる可能性もあります.

 

ベンチマーク

NAMDパッケージを配布しているTheoretical and Computational Biophysics GroupのWebサイトで公開されているシミュレーションのデータを使用し,GPUを使ったベンチマークの実測を行いました.
ここではApoA1ベンチマーク(92,224 atoms), ATPaseベンチマーク(327,506 atoms)の結果を紹介します.どちらの計算も周期境界条件で,計算にはPMEが使用されます.
マシンは1ノードのみと,2ノードで構成されているクラスタを使いました.NAMDでは複数CPUコアがGPUデバイスを共有することが可能なため,GPU 1枚に対して使用するCPUコア数を変えた計算を,1ノードと2ノードの場合について行いました.
また,NAMDではバイナリ形式と自分の環境に合わせてコンパイルできるソースコードの両方が配布されていますが,今回はバイナリ形式で配布されているものを使った結果を示します.バイナリとしてはCPUのみの計算ではLinux-x86_64のInfiniband対応のものを,CPU+GPUの計算ではLinux-x86_64のSMP,Infiniband対応のものを使用しました.
GPUを使用した計算を行なう場合に良いパフォーマンスを得るためにはEnergiesOutputの値は100以上にすることが推奨されているため,実行時の設定ファイルの中のEnergiesOutputを100にして計算しています.

計算環境 (当社による実測値です)
NAMD version NAMD 2.9
CPU Intel core i7 960 @ 3.20GHz 4core
GPU NVIDIA GeForce GTX 480 (1.5GB Memory)
Network Mellanox Infiniband QDR
OS CentOS 6.2
MPI mvapich 2.0 - 1.8
NVCC 4.2
CUDA Driver version 4.2

NAMDにおけるCUDAのベンチマーク結果(APOA1)

NAMDにおけるCUDAのベンチマーク結果(ATPase)


各グラフでは,横軸に使ったCPUコア数(2ノードの場合は全ノードの合計),縦軸に1ステップあたりの時間(計算中に標準出力に表示される情報)をとって整理しています.

ApoA1ベンチマークで1ノードでのCPUコア数を変えた場合の結果では,CPUのみではコア数にほぼ比例して計算時間も減少しており,CPU4コアでCPU1コアの約3
.8倍の計算速度の向上になっています.
GPUを使った計算では,CPUのみで計算する場合に比べて大きく速度が向上しています.たとえば,CPU1コア+GPUをCPU1コアと比較すると9倍程度高速になっており,CPU4コアと比較しても2倍以上高速になっています.また,GPUを使用する場合でも複数CPUコアを使用することで計算速度が向上させていることがわかります.GPUを使った場合にはCPU
コア数に比例するような速度向上の傾向は得られませんが,ここではCPU4コア+1GPUの場合がCPU4コアより4倍程度高速化されるという結果になっています.そのため,このマシン構成であれば,1GPU+4CPUと同等の性能を出すのに4台のマシンが必要であると言えます.
また,今回はLinux-x86_64のSMP,CUDA,Infinibandに対応したバイナリを使用して計算を行なっていますが,1ノードのみを利用する場合はmulticore-CUDAのバイナリを使用する方がよい性能が得られました.CPU1コア+GPU,2コア+GPUでは大きな違いが現れませんが,CPU4コア+GPUを使った場合に大きな違いが現れ,CPU1コアと比べて約6.4倍程度の高速化になりました.上のグラフとの結果の違いは,後述するようにSMPアーキテクチャに対応するバイナリでは通信に1コアが使用されるためだと思われます.


ApoA1ベンチマークの2ノードの場合も,1ノードでの結果と同様の傾向を示しています.
CPU8コアの場合の速度はCPU1コアで計算したときの約7.6倍となります.
また,CPU+GPUで計算させた場合には2ノードの場合にはCPU4コア+GPU
(各ノードでCPU2コア+1GPU)が最も高速となりました.CPU8コアとCPU4コア+GPUでの計算時間を比較すると,CPU4コア+1GPUの方が4.3倍程度高速になっています.
ここには示していませんが,実際には全ノードでCPU6コア+GPUの場合が少しだけ高速になります.これはSMPアーキテクチャ対応のバイナリを使用しているためにCPU1コア分が通信用に確保されることから,1ノードあたりに搭載されているCPU4コアに対して計算にCPU3コア,通信にCPU1コアを使用するのが最も最適な計算になるためだと思われます.
一方,CPUの場合にはSMPアーキテクチャが指定されていないバイナリを使用しているので通信用にコアが使用されず,CPUコア数に比例して速度も向上していると考えられます.

327,506原子のATPaseベンチマークでは,1ノードの場合,2ノードの場合ともにApoA1とほぼ同じような傾向が得られました.CPU8コアのみとCPU8コア+GPUを比較すると,CPU8コア+GPUの方が4倍程度高速になり,ApoA1とほぼ同程度の速度向上となっています.また,ここには記載していませんが,原子数が約100万となるSTMVベンチマークも行ないました.GeForce GTX480に搭載されているメモリ量が1.5GBのため,1GPUで計算しようとするとメモリ不足となりますが,2GPU+8CPUコアを使うことで計算が行うことが可能で,2ノード8CPUコアで計算した場合に比べて5倍程度高速になりました.


 

 
ハードウェア:
 
スタンドアローンPC  (OTB製可搬式CUBEサーバ等Multi-GPU対応)
 
MPIクラスター (OTB製
 
 
システム構築: OTBで行います.
   
  お見積はOTB社のWEBページからご希望PCモデルをご選択し"NAMD"と付記しご送信下さい.


 

 

   (C)Copyright OTB Transnational Inc. 2014 All rights reserved.