メインPCを新調しました

GPT-4による要約

このブログ記事では、著者が2013年に組んだ自身のデスクトップPCを新調した経験について語っています。旧PCは重いアプリの開発時にフリーズする問題が頻発しており、10年間使用されたHaswell CPUのスペック不足が原因と判断されました。旧PCの構成はIntel Core i5-4570S CPU、AMD Radeon RX 570 GPU、24GB DDR3メモリで、UnixBenchベンチマークのスコアはシングルスレッドで1300.1、マルチスレッドで3345.1でした。新しいPCはIntel Core i5 13400F CPU、64GB DDR4メモリを搭載し、UnixBenchのスコアはシングルスレッドで2526.8、マルチスレッドで12092.6と大幅に向上しました。このアップグレードにより著者はパフォーマンスの大幅な向上を実感し、次のアップデートは約10年後になると予測しています。

はじめに

今メインで使用しているデスクトップPCは2013年頃に組んだものです。 電源、マザーボードGPUなどは交換をしたのですが、CPUは10年前から現役で動いています。

当時はそこそこ新しかったHaswellも、現代の基準では低スペックの方に分類される少し時代遅れな代物になってしまいました。 それでも、まだ十分戦えていたのでこれまでは使用を続けてきました。

しかし、最近それなりに動作の重いアプリを開発する機会があったときPCがフリーズして操作できなくなる現象が多発しました。 topコマンドでシステムパフォーマンスを監視してみたところ、CPUの使用率が100%に張り付いていたため、おそらくHaswellのスペック不足が原因だと思います。

重いアプリを開発するときに毎回フリーズしては困るので、Haswellを卒業することにしました。 ただ、重いアプリ開発や重いゲームをするなどの特殊用途以外ではHaswellは今でもまだまだ戦えると思っています。

これまでの構成とベンチマーク

以下のような構成でした。

パーツ メーカー 型番 備考
CPU Intel Core i5-4570S 4コア4スレッド
GPU AMD Radeon RX 570
マザーボード ASUS B85M-G
メモリ シリコンパワー SP016GBLTU160N22 DDR3, 24GB
電源 玄人志向 KRPW-AK650W/88+

ベンチマークを取得するためにUnix系OS向けのベンチツールである UnixBench を実行しました。 以下が実行結果の一部です。

$ ubench
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: saber: GNU/Linux
   OS: GNU/Linux -- 6.6.7-arch1-1 -- #1 SMP PREEMPT_DYNAMIC Thu, 14 Dec 2023 03:45:42 +0000
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")

Benchmark Run: 木  1月 04 2024 18:13:25 - 18:41:26
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       46855536.1 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7001.5 MWIPS (10.0 s, 7 samples)
Execl Throughput                               3514.7 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        867382.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          228200.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2367003.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1481367.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 137025.4 lps   (10.0 s, 7 samples)
Process Creation                               7497.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5047.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1464.6 lpm   (60.0 s, 2 samples)
System Call Overhead                         963172.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   46855536.1   4015.0
Double-Precision Whetstone                       55.0       7001.5   1273.0
Execl Throughput                                 43.0       3514.7    817.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     867382.0   2190.4
File Copy 256 bufsize 500 maxblocks            1655.0     228200.8   1378.9
File Copy 4096 bufsize 8000 maxblocks          5800.0    2367003.9   4081.0
Pipe Throughput                               12440.0    1481367.1   1190.8
Pipe-based Context Switching                   4000.0     137025.4    342.6
Process Creation                                126.0       7497.5    595.0
Shell Scripts (1 concurrent)                     42.4       5047.0   1190.3
Shell Scripts (8 concurrent)                      6.0       1464.6   2441.0
System Call Overhead                          15000.0     963172.0    642.1
                                                                   ========
System Benchmarks Index Score                                        1300.1
Benchmark Run: 木  1月 04 2024 18:41:26 - 19:09:31
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      151494102.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    25124.8 MWIPS (10.0 s, 7 samples)
Execl Throughput                              11054.3 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1526590.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          408266.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       4463460.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                             5146668.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 633179.4 lps   (10.0 s, 7 samples)
Process Creation                              25656.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  10750.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1470.0 lpm   (60.1 s, 2 samples)
System Call Overhead                        3186426.2 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  151494102.0  12981.5
Double-Precision Whetstone                       55.0      25124.8   4568.2
Execl Throughput                                 43.0      11054.3   2570.8
File Copy 1024 bufsize 2000 maxblocks          3960.0    1526590.9   3855.0
File Copy 256 bufsize 500 maxblocks            1655.0     408266.0   2466.9
File Copy 4096 bufsize 8000 maxblocks          5800.0    4463460.4   7695.6
Pipe Throughput                               12440.0    5146668.1   4137.2
Pipe-based Context Switching                   4000.0     633179.4   1582.9
Process Creation                                126.0      25656.5   2036.2
Shell Scripts (1 concurrent)                     42.4      10750.4   2535.5
Shell Scripts (8 concurrent)                      6.0       1470.0   2450.0
System Call Overhead                          15000.0    3186426.2   2124.3
                                                                   ========
System Benchmarks Index Score                                        3345.1

様々なテストの総合スコアである System Benchmarks Index Score を見ると、一度目のテスト (シングルスレッド) では 1300.1、二度目のテスト (マルチスレッド) では 3345.1 でした。

新PCの構成とベンチマーク

電源やストレージ、GPUはそのままで CPU、マザーボード、メモリを新調しました。 購入したパーツは以下のとおりです。 これまではCPUクーラーはIntelのCPUの付属品を使っていたのですが、冷却性能に不安があったためDEEPCOOLの空冷クーラーを購入しました。

パーツ メーカー 型番 備考
CPU Intel Core i5 13400F 10コア16スレッド
マザーボード MSI MAG B760M MORTAR WIFI DDR4
メモリ CFD W4U3200CS-16G DDR4, 64GB
CPUクーラー DEEPCOOL AK400 WH R-AK400-WHNNMN-G-1

購入したパーツ

以下がUnixBenchの結果です。

$ ubench
Benchmark Run: 木  1月 04 2024 23:46:32 - 00:14:32
16 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       70405931.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    10915.6 MWIPS (10.0 s, 7 samples)
Execl Throughput                               4890.7 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1990358.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          537060.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       4956289.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3848502.2 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 310093.9 lps   (10.0 s, 7 samples)
Process Creation                              12308.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5881.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   3036.8 lpm   (60.0 s, 2 samples)
System Call Overhead                        3254496.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   70405931.9   6033.1
Double-Precision Whetstone                       55.0      10915.6   1984.7
Execl Throughput                                 43.0       4890.7   1137.4
File Copy 1024 bufsize 2000 maxblocks          3960.0    1990358.2   5026.2
File Copy 256 bufsize 500 maxblocks            1655.0     537060.8   3245.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    4956289.9   8545.3
Pipe Throughput                               12440.0    3848502.2   3093.7
Pipe-based Context Switching                   4000.0     310093.9    775.2
Process Creation                                126.0      12308.0    976.8
Shell Scripts (1 concurrent)                     42.4       5881.5   1387.2
Shell Scripts (8 concurrent)                      6.0       3036.8   5061.3
System Call Overhead                          15000.0    3254496.3   2169.7
                                                                   ========
System Benchmarks Index Score                                        2526.8

------------------------------------------------------------------------
Benchmark Run: 金  1月 05 2024 00:14:32 - 00:42:34
16 CPUs in system; running 16 parallel copies of tests

Dhrystone 2 using register variables      905802663.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                   129262.6 MWIPS (10.0 s, 7 samples)
Execl Throughput                              50647.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1837999.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          484469.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       5906099.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                            37963175.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                3144543.5 lps   (10.0 s, 7 samples)
Process Creation                             123481.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  54089.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   7357.9 lpm   (60.1 s, 2 samples)
System Call Overhead                       13413753.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  905802663.3  77618.1
Double-Precision Whetstone                       55.0     129262.6  23502.3
Execl Throughput                                 43.0      50647.5  11778.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    1837999.7   4641.4
File Copy 256 bufsize 500 maxblocks            1655.0     484469.0   2927.3
File Copy 4096 bufsize 8000 maxblocks          5800.0    5906099.1  10182.9
Pipe Throughput                               12440.0   37963175.0  30517.0
Pipe-based Context Switching                   4000.0    3144543.5   7861.4
Process Creation                                126.0     123481.4   9800.1
Shell Scripts (1 concurrent)                     42.4      54089.0  12756.8
Shell Scripts (8 concurrent)                      6.0       7357.9  12263.2
System Call Overhead                          15000.0   13413753.0   8942.5
                                                                   ========
System Benchmarks Index Score                                       12092.6

System Benchmarks Index Score を見ると、一度目のテスト (シングルスレッド) では 2526.8、二度目のテスト (マルチスレッド) では 12092.6 でした。

旧構成 新構成
シングルスレッド 1300.1 2526.8
マルチスレッド 3345.1 12092.6

シングルスレッドのSystem Benchmarks Index Scoreは 92.2%向上、マルチスレッドでは261.5%向上してました。

おわりに

今回はPCを新調し、新旧のマシンでUnixBenchによるベンチマークを取って性能を比較しました。 ベンチマークの結果、シングルスレッドでは92.2%、マルチスレッドでは261.5%総合スコアが向上していました。

次にまたPCを新調するのは予期せぬ故障がない限りまた10年後とかになるでしょう。 そのときはまたベンチマークをとって性能を比較したいと思います。