Full Load ベンチマーク

先日、Threadripper 1950x での 1 job のみ計算している時と full load 時の計算時間の違いを測定してほしいという要望のメールが読者の方から来ました。

メールを下さった方は、1 コアの job を同時に数百個計算するという方法を取っているらしく、いつも複数コアで job を投げている管理人にとっては少し驚きでした。しかし、計算資源に限りがある場合、並列化効率を考えると 1 コア指定で全て計算した方が早いのかもしれません。

しかし、何コアで計算するかというのは、複数人で計算機を共有している場合、事前に取り決めておく必要があります。全員が 4 コア以上で投げている中で、1 人だけ 1 コア job を投げているのは迷惑以外の何物でもありません。(中途半端に余った奇数個の空きコアが勿体無い!)もちろん frmchk や interactive job などは 1 コアで良いですが。。。

この記事をみて、安易に 1 コアで job を投げ始めないようにお願いします。グループ全員が全てのjob を 1 コアで計算を投げるというルールになっているのならば、別ですが。。。

少し話が逸れましたが、以下ベンチマークの結果になります。

テスト環境

前回の Threadripper ベンチマークの時と同様に、vomilenin を用いました。
計算レベルは前回とは異なり、B3LYP/6-31G(d,p) で計算しました。
1 job 1 core で、メモリは 2 GB 指定し、同様の input ファイルを 16 個作成しました。スクリプトを作成し、16 個の job を同時に submit しました。
計算には、Threadripper 1950X Intel Core i7-7700 を用いました。

%mem=2GB
%CPU=1
# opt b3lyp/6-31+g(d,p)
Title Card Required
0 1
C                  2.77247700   -1.55726100   -0.24944000
C                  2.57516800   -0.21391100    0.22236700
C                  3.66258100    0.58993400    0.49571100
C                  4.95487500    0.05924200    0.30006200
C                  5.13835000   -1.24438700   -0.15742400
C                  4.04078000   -2.07971400   -0.44110700
H                  3.54022600    1.61215000    0.84659000
H                  5.82063000    0.68647200    0.50832700
H                  6.14732700   -1.63065000   -0.30202500
H                  4.18101400   -3.09833800   -0.79798600
N                  1.50857200   -2.23308200   -0.46688800
C                  1.09205700    0.01376600    0.31548100
C                  0.56508400   -1.38330300   -0.16916400
C                  0.45169100    0.19038400    1.70181800
H                  0.83716900    1.07864500    2.23417400
H                  0.61400000   -0.67650100    2.36782500
C                 -1.02531100    0.35002700    1.28672300
H                 -1.62528500    0.84001900    2.08048000
C                 -0.92615500   -1.59776300   -0.23639300
H                 -1.16616400   -2.69064700   -0.25662300
N                 -1.59116700   -1.02041200    0.99900700
C                  0.45662500    1.13244700   -0.55154600
H                  0.50638000    0.83609200   -1.63113300
C                 -1.01485700    1.18415400   -0.05441000
H                 -1.34499800    2.22278200    0.13282400
C                  1.18183100    2.47371100   -0.45244600
O                  1.77040700    2.90633300   -1.41767100
C                  1.12488300    3.24417800    0.83431200
H                  1.96513800    3.95149200    0.90568700
H                  0.20810900    3.84695700    0.89196200
H                  1.14807000    2.59412400    1.72379300
C                 -1.43760100   -0.86406700   -1.51074000
H                 -2.21770900   -1.45377000   -2.02155200
H                 -0.63475100   -0.74431500   -2.26051300
C                 -1.99672600    0.50937600   -1.06002400
H                 -2.15238600    1.17083500   -1.93738400
C                 -3.07440500   -0.82309500    0.77399500
H                 -3.54334800   -0.53697600    1.74827200
O                 -3.70333500   -2.06174800    0.48837800
H                 -3.47163400   -2.39796600   -0.40177600
C                 -3.29369900    0.20245900   -0.33620000
C                 -4.47635800    0.74125600   -0.64594500
C                 -4.60024253    1.78394479   -1.77246740
H                 -4.05885576    2.66655486   -1.50265297
H                 -4.19662792    1.38069830   -2.67766766
H                 -5.63131953    2.02904648   -1.91979486
H                 -5.39456085    0.49863744   -0.15305581

結果 opt

構造最適化の計算時間 (min.) をまとめたところ、下表のようになりました。

Threadripper 1 job の結果 (opt)

 Job cpu time:       0 days  6 hours 12 minutes 42.9 seconds.
Elapsed time:       0 days  6 hours 14 minutes  2.7 seconds.
File lengths (MBytes):  RWF=    151 Int=      0 D2E=      0 Chk=     20 Scr=      1
Normal termination of Gaussian 16 at Mon Nov 13 14:18:21 2017.

Threadripper full load の結果 (opt)

 Job cpu time:       0 days  8 hours 10 minutes  1.9 seconds.
Elapsed time:       0 days  8 hours 12 minutes 27.0 seconds.
File lengths (MBytes):  RWF=    151 Int=      0 D2E=      0 Chk=     20 Scr=      1
Normal termination of Gaussian 16 at Mon Nov 13 00:09:56 2017.

Intel core i7-7700 1 job の結果 (opt)

 Job cpu time:       0 days  4 hours 40 minutes 20.5 seconds.
Elapsed time:       0 days  4 hours 40 minutes 43.7 seconds.
File lengths (MBytes):  RWF=    151 Int=      0 D2E=      0 Chk=     20 Scr=      1
Normal termination of Gaussian 16 at Mon Nov 13 04:18:46 2017.

Intel core i7-7700 full load の結果 (opt)

Job cpu time:       0 days  5 hours 17 minutes 51.2 seconds.
Elapsed time:       0 days  5 hours 18 minutes 48.8 seconds.
File lengths (MBytes):  RWF=    151 Int=      0 D2E=      0 Chk=     20 Scr=      1
Normal termination of Gaussian 16 at Sun Nov 12 21:19:15 2017.

結果 freq

振動計算の結果を下表にまとめました。

Threadripper 1 job の結果 (freq)

 Job cpu time:       0 days  2 hours 58 minutes 49.8 seconds.
Elapsed time:       0 days  2 hours 59 minutes  8.6 seconds.
File lengths (MBytes):  RWF=   1158 Int=      0 D2E=      0 Chk=     17 Scr=      1
Normal termination of Gaussian 16 at Wed Nov 15 17:31:01 2017.

Threadripper full load の結果 (freq)

 Job cpu time:       0 days  4 hours 30 minutes 46.8 seconds.
Elapsed time:       0 days  4 hours 32 minutes 22.2 seconds.
File lengths (MBytes):  RWF=   1158 Int=      0 D2E=      0 Chk=     17 Scr=      1
Normal termination of Gaussian 16 at Wed Nov 15 14:10:36 2017.

Intel core i7-7700 1 job の結果 (freq)

Job cpu time:       0 days  2 hours 15 minutes 51.2 seconds.
Elapsed time:       0 days  2 hours 16 minutes  3.4 seconds.
File lengths (MBytes):  RWF=   1158 Int=      0 D2E=      0 Chk=     17 Scr=      1
Normal termination of Gaussian 16 at Wed Nov 15 15:02:12 2017.

Intel core i7-7700 full load の結果 (freq)

 Job cpu time:       0 days  3 hours  1 minutes 28.1 seconds.
Elapsed time:       0 days  3 hours  2 minutes 12.0 seconds.
File lengths (MBytes):  RWF=   1158 Int=      0 D2E=      0 Chk=     17 Scr=      1
Normal termination of Gaussian 16 at Wed Nov 15 12:42:57 2017.

感想

構造最適化計算を実行した時、Threadripper ではfull load 時だと 1 job あたりの計算速度が 30% 程度低下することが分りました。一方の core i7-7700 は、10% 程度の落ち込みでした。

振動計算では、Threadripper では fullload 時に 1 job あたりの計算速度が 50% 程度低下し、core i7-7700 でも 30% 程度落ちることが分りました。

環境を最適化すれば、もう少し効率は上がるかもしれません。しかし、ベンチマーク作業よりも通常業務を遂行したいため、環境の最適化はこれ以上行いません。

一応、二つの CPU の比較も載せておきましたが、コア数も価格帯も違うこの二つの CPU の比較にはあまり意味がありません。

ちなみに、アメリカでの Threadripper 1950x の価格は $799 まで下がりました。single thread の性能は Intel に比べるとやや劣りますが、やっぱりお買い得な気がしています。

<iframe style=”width:120px;height:240px;” marginwidth=”0″ marginheight=”0″ scrolling=”no” frameborder=”0″ src=”//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=qf_sp_asin_til&ad_type=product_link&tracking_id=compchem-20&marketplace=amazon&region=US&placement=B074CBH3R4&asins=B074CBH3R4&linkId=2778c3ebcc9b69cbb1bcf6dc26355bca&show_border=false&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff”>
</iframe>

関連する記事

汎関数一覧に戻る

計算手法に戻る

コメントを残す(投稿者名のみ必須)