先日、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®ion=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>
関連する記事
- Threadripper 並列化効率改善?【gaussian16】
- Threadripper Gaussian16 ベンチマーク
- Threadripper 自作 PC 組み立て編【AMD】
- IRC 計算がうまくいかない時
- スピン状態依存的な光環化反応の計算
- Threadripper 正式発表【8月発売予定】
- 【Gaussian 16】デスクトップ PC で並列計算する際の注意点【Hyperthreading】
- スパコンランキング発表!日本はGREEN500上位独占!【2017年6月】
- 【AMD_Naples】正式名称はEPYCに決定!クロック数は2.8 GHz【基本スペックなど】
- GPU を用いた並列計算
- 自作 PC をつくってみた!
- Fedora25 に nVIDIA のドライバーをインストール
- 自作 PC を作ってみた!【OS 編】