« GAMESSのSCS-MP2 | メイン | プレミアム?何それおいしいの? »

記憶域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座標)
*

結果はこんな感じ↓

OverallSCF iter.MDCI module
HDD (7200rpm,500GB)50.453 min3.014 min47.431 min
SSD RAID0 (128GBx2)25.539 min3.020 min22.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倍をちょっと上回るところですが)。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)