先日、分子動力学 (MD) シミュレーションを Windows OS で実行するより、Linux で実行する方が良いという投稿を見つけました。そこで今回は、MDシミュレーションの計算時間を Windows Subsystem for Linux (WSL) 2 と Windows11 とで比較しました。
環境
- Ryzen5 3600
- RTX2060
- Windows11
- WSL 2 (Ubuntu 20.04)
- CUDA Version: 11.6
CUDA on WSL User Guide に従って環境設定を行った。
手順
NAMDのインストール
NAMDの公式サイトから Linux-x86_64-multicore-CUDA (NVIDIA CUDA acceleration) と Win64-CUDA (NVIDIA CUDA acceleration) をダウンロードして任意のディレクトリに解凍する。
ベンチマークのダウンロード
今回のベンチマークとして ApoA-1 (善玉コレステロールの構成成分) を用いた。
$ wget https://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz
$ tar -xvf apoa1.tar.gz
MDシミュレーションの実行
NAMD の実行ファイル (apoa1.namd) を以下のように変更した。
cellBasisVector1 108.8612 0.0 0.0
cellBasisVector2 0.0 108.8612 0.0
cellBasisVector3 0.0 0.0 77.758
cellOrigin 0.0 0.0 0.0
coordinates apoa1.pdb
temperature 300
seed 74269
switching on
switchdist 10
cutoff 12
pairlistdist 13.5
margin 0
stepspercycle 20
PME on
PMEGridSizeX 108
PMEGridSizeY 108
PMEGridSizeZ 80
structure apoa1.psf
parameters par_all22_prot_lipid.xplor
parameters par_all22_popc.xplor
exclude scaled1-4
1-4scaling 1.0
timestep 1.0
fullElectFrequency 4
numsteps 100000 ;# 100 ps
outputtiming 1000
outputname apoa1-out
WSL 2 で実行する場合
$ NAMD_2.14_Linux-x86_64-multicore-CUDA/namd2 +p4 apoa1/apoa1.namd > apoa1_wsl.log
Windows11 で実行する場合
> NAMD_2.14_Win64-multicore-CUDA/namd2 +p4 apoa1/apoa1.namd > apoa1_win.log
結果
MDシミュレーションの WSL 2 での実行結果と Windows11 での実行結果を比較したところ、WSL 2 の方が Windows11 で実行するよりも2倍以上速かった (N=3、エラーバーは標準偏差を示す)。
MDシミュレーション実行中における GPU の使用率は、WSL 2 も Windows11 も90%以上で推移していたが、CPU の使用率は WSL 2 では40%~50%、Windows11 では20%~30%だった。この CPU 使用率の差が、Linux 版と Windows 版の NAMD のプログラムによる違いによるのか、 Linux と Windows の違いによるのかはわかりません。
まとめ
- ApoA-1 の 100 ps のMDシミュレーションの結果、Windows11 よりも WSL 2 で実行した方が速かった。
- WSL 2 と Windows11 で実行した場合、CPU 使用率に差があった。