記憶域I/O性能と計算時間
最近SSDを買ったわけですが、そのHDDを大きく上回る性能が、果たして計算時間に影響を与えるのか。
ベンチマークは、Benzene (C6H6)のMO-CEPA1/aug-cc-pVDZによる1点計算で、ORCA 2.7.0 beta (Windows 32bit binary)で実施しました(シングルスレッド)。入力はこんな感じ↓
! SP MO-CEPA/1 aug-cc-pVDZ RIJCOSX
* xyz 0 1
(benzeneのxyz座標)
*
結果はこんな感じ↓
| Overall | SCF iter. | MDCI module | |
| HDD (7200rpm,500GB) | 50.453 min | 3.014 min | 47.431 min |
| SSD RAID0 (128GBx2) | 25.539 min | 3.020 min | 22.507 min |
というわけで、記憶域以外全く同じ条件で実施して、計算内容によってはこれくらいの差が出ます。CEPA/1の計算では、大量の積分の処理でメモリ⇔HDD間のI/Oも大量に行われているようです。ORCAのMDCIモジュールでは、その辺の処理法で複数の選択肢が用意されていて、I/O処理が律速になる領域ではon the flyで処理するAO-CEPAの方が計算時間を短縮できたり。
Linuxで4 process並列、基底関数としてcc-pVDZを使う場合、重原子20コ辺りが1日で計算を終わらせる境界線になる感じですね(計算環境に大きく依存)。Linux機もHDDをSSDに置き換えれば、半分以下の計算時間になるかもしれません。
ちなみに、HDDとSSD/RAID0のベンチマーク結果は以下の通り。
[CrystalDiskMark 2.2]
HDD (Test Size : 100 MB)
Sequential Read : 73.626 MB/s
Sequential Write : 71.604 MB/s
Random Read 512KB : 38.955 MB/s
Random Write 512KB : 42.206 MB/s
Random Read 4KB : 0.598 MB/s
Random Write 4KB : 1.400 MB/s
SSD soft-RAID0 (Test Size : 100 MB)
Sequential Read : 349.176 MB/s
Sequential Write : 376.201 MB/s
Random Read 512KB : 269.179 MB/s
Random Write 512KB : 224.794 MB/s
Random Read 4KB : 24.128 MB/s
Random Write 4KB : 11.456 MB/s
同じ計算をLinux機(8GB RAM, HDDx4(RAID0))で実行すると、PAL4でOverall=4.730 min。先の結果より5.4倍速いです。I/Oが激しい部分が全体的に並列化(4倍)以上の効率で動いています。
CPUのクロック比(2.33:3.00)を忘れてました。加味するとリーズナブルな値ですね(4倍をちょっと上回るところですが)。