CPUの演算能力
1秒間に刻むクロック数を意味する動作周波数が高ければ高いほど演算処理能力が上がりますが,その分電力効率が悪くなり, 発熱も増えます.現在では,動作周波数を上げるとパフォーマンス以上に消費電力量の増大によるデメリットのほうが目立つので, マルチコアによる演算能力の向上という形でCPUは進化していっています.
ですので,基本的にはコア数の多さに着目してCPUの性能の良さを判断しますが,個人利用を想定したパソコンと異なりサーバー構築においては ソケット数(物理搭載CPU数)を増やす方向という選択肢もあります.例えば,4コアCPUを2ソケット搭載することで8コアを確保するなどです.
4コアCPU2ソケットは8コアCPU1つより遅い?
CPUを複数ソケット搭載する場合,それぞれのCPUソケットがNUMA(Non-Uniform Memory Access)ノードと呼ばれる単位で区分され, 各ノードごとに物理メモリを持ちます.
各CPUからそれぞれのノードの物理メモリに対してお互いアクセスすることは可能ですが, 以下の図のように同一ノード内のメモリに対しては高速にアクセスできるが,他のノードのメモリに対してのアクセスは比較的 低速になってしまうという特徴が有ります.CPU自身のノード内にないメモリ (リモートメモリ) にプロセッサがアクセスする場合, ローカルメモリのアクセスよりも低速なNUMA接続を通じてデータを転送する必要があるためです.
ただし,デメリットだけではありません.ローカルメモリーへ各CPUが同時に並行してアクセスできるため, SMP(同時マルチスレッディング)で発生する同じシステムバス上で多くのプロセッサがバンド幅を奪い合うリスクを回避することができます.
一概に「4コアCPU2ソケットは8コアCPU1つより遅い」とは言えず,どちらのほうがパフォーマンスが良いかは システムのタスクの特徴に依存します.
(注意:GitHub Accountが必要となります)