ホーム > HPC・DL・AI > 技術情報 > 技術解説 > GPGPU でTeraChem を動かす

GPGPU でTeraChem を動かす

TeraChem はGPGPUで量子化学計算を行えるソフトで、PetaChem LLC が開発しています。ベータ版を入手したので性能を調べてみました。

テスト環境

項目CPU+GPU での測定で使用した
CPUQuad-core Intel Xeon E5540 @ 2.53GHz x 2 (8 コア全部を使用)
GPUTesla C1060 x 1 ( Multiprocessor 30 個 で Core 240 個)
ノード数1
OSFedora release 10 (Cambridge)
CUDACUDA release 2.3

インストール

ベータ版のtarファイルを展開するとインストーラやユーザーズガイドが入っています。

> tar -xf tcv3.tar
> cd TCInstaller
> ls
LICENSE  NumGPUs  deviceQuery  install  install.log  libs  terachemb3.tar.gz  userguide3.pdf

あとはインストーラを起動するだけです。

> ./install

ここで、TeraChem を動作させるに必要なハードウェア・ソフトウェアが搭載されているかどうか、自動的に調査されます。当初 CUDA 2.2 しかインストールされていなかったため「CUDA 2.3以降を入れろ」とエラーになりました。そこで、CUDA 2.3 を入れたところインストーラが正常に進みました。ライセンス条項に同意して、インストール先ディレクトリを指定するとTeraChemがインストールされ ました。

実行する前に環境変数を設定せよと言われているので忘れずに行いましょう。

bashの場合:
$ export OMP_NUM_THREADS=8
$ export LD_LIBRARY_PATH=インストール先ディレクトリ/libs:${LD_LIBRARY_PATH}

実行するときは次のコマンドで行えます。

$ source インストール先ディレクトリ/SetTCVars.sh     ←bash用しかついていないようです
$ インストール先ディレクトリ/terachem インプットファイル

動作テスト

擬似test397 (OMP_NUM_THREADS=8)

Gaussianのtest397ベンチマークテストを再現させてみました。再現手順としては、test397のインプットをデカルト座標に変換してtest397.xyzとして保存し、TeraChemのインプットファイルを次のように記述しました。

  $ cat start.sp
  # basis set
   basis           3-21g

  # coordinates file
   coordinates     test397.xyz

  # molecule charge
   charge          0

  # SCF method (rhf/blyp/b3lyp/etc...): DFT-BLYP
   method          b3lyp

  # add dispersion correction (DFT-D)
   dftd            no

  # type of the job (energy/gradient/md/minimize/ts): single-point energy
   run             energy

   end

上記の通りインプットは見たまんまでわかりやすい形式になっています。type of the job ではシングルポイント計算以外に gradient 計算、MD計算、minimize計算(構造最適化)、ts計算(遷移状態探索)を指定できます。

なお、Gaussian付属の本来のtest397インプットでは forceキーワードscf=novaraccキーワード が付いていますが、それは再現していません。

上記のインプットで実行してみました。なお、OMP_NUM_THREADS=8 で動かしているので、GPUと同時にCPU8コアも使って計算を行うことになりますが、計算中にtopで見たところほとんどGPU上の計算だけでCPUは使っていない状態でした。

  FINAL ENERGY: -3774.129099 a.u.
  CENTER OF MASS: {-0.004859, 0.014274, -0.002364} ANGS
  DIPOLE MOMENT: {-0.055294, 0.383637, 0.460263} (|D| = 0.601728) DEBYE
  Processing time: 180.46 sec

最終行に出力されているように、180.46 秒で計算が完了しました!

一方、CPUでの計算では、某量子化学計算ソフトに同様のインプットを与えたところ CPU 8コア並列でも 500 秒程度要しているのが現状です。これを考えると、TeraChemのようなGPGPUによる高速化効果は大変魅力的と言えます。

擬似test397 (OMP_NUM_THREADS=1)

並列スレッド数を制御する環境変数 OMP_NUM_THREADS を 1 にして測定してみました。

  FINAL ENERGY: -3774.129099 a.u.
  CENTER OF MASS: {-0.004859, 0.014274, -0.002364} ANGS
  DIPOLE MOMENT: {-0.055294, 0.383637, 0.460262} (|D| = 0.601727) DEBYE
  Processing time: 183.18 sec

計算時間はほとんど変わりませんでした。結果をまとめます。

構成Total CPU time [seconds]
CPU 8core( 参考値 )500 秒程度
CPU 1core + GPU183.18
CPU 8core + GPU180.46

やはり、今回の計算では、CPUスレッド並列処理はほとんど使われていないと考えられます。

  • キャンペーン情報
    現在開催されているお得なキャンペーン情報はこちらから。
    詳細
  • ご購入前のお問合せ
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
  • 見積り依頼
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
Contact

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
03-5446-5531

平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)