前回の記事(YASARA:AutoDockGPUの性能評価)では、AutoDockのドッキングがGPUでどれくらい高速化されるのかを調べましたが、今回は、CPU数と計算時間の関係について気になったので調査してみました。
AutoDock計算時間の検証
今回は、AutoDockを利用した基本ドッキング(dock_run.mcr)をCPUスレッド数を変えて実行し、計算時間を測定しました。
①
GPU:1 / CPU:1,2,4,6,8,10,12 /
run数:25
②
GPU:0 / CPU:1,2,4,6,8,10,12 /
run数:5
③
GPU:0 / CPU:1,2,4,6,8,10,12 /
run数:10
※検証には物理コア6(論理コア12)のCPUを使用しています。
※GPUを使用しない場合は計算時間が長くなるため、run数を減らしています。(デフォルトはrun数:25)
実行条件
使用したハードウェア、YASARAのバージョン情報は、前回の記事(YASARA:AutoDockGPUの性能評価 )と同じです。
[H/W]
CPU: AMD Ryzen 5 3600XT(6-Core)
RAM: 32.0 GB
GPU: NVIDIA GeForce RTX 2070 SUPER
OS : Windows 10 Pro(22H2,19045.4412)
[YASARA]
YASARA Structure ver.24.4.10
実行方法
構造ファイルの準備
前回の記事(YASARA:AutoDockGPUの性能評価)と同じ手順で構造ファイルを準備しました。
マクロファイルの準備
付属マクロdock_run.mcrを用いて、以下の点を編集して使用しました。
- ドッキングメゾッドの指定:メゾッドパラメータをAutoDockに変更しました(method='AutoDockLGA')。
- 実行時のプロセッサーの指定:マクロ冒頭にProcessorsコマンドを追記しました。
(例:GPU数を1、CPUスレッド数を6に指定する場合は「Processors CPUThreads=6,GPU=1」と追記) - run数の変更: runsパラメータを適宜変更しました。(例:runs=5)
計算の実行
計算の実行・処理時間の測定についても前回の記事と同じ方法で行いました。今回は計算を2回ずつ行い、平均をとりました。
結果
まとめ
- GPUを使用した場合(①GPU1_run25)、CPU数を増やしても計算速度は変化しませんでした。計算の大半をGPU上で処理しているようです。
- CPUのみを使用した場合(②GPU0_run5、③GPU0_run10)は、CPUスレッド数に応じて計算速度が向上し、②のrun数5の場合はスレッド数6以降、③のrun数10の場合はスレッド数10以降で頭打ちになりました。今回使用したCPUは物理コアが6ですが、③の結果からスレッド数が6より多い場合でも処理速度が向上することがわかりました。