マシン内のCPUの数を見つける方法を探していて、いくつかの投稿を見つけましたが、論理コアと物理コアの両方を取得しているという説明があったので混乱しています。
では、論理コアと物理コアの違いは何ですか?物理コアのみを取得する方法はありますか?それとも、論理コアをカウントに含めることは理にかなっていますか?
物理コアはまさに、CPU内の物理コアです。論理コアは、2つ以上の処理を同時に実行する単一のコアの機能です。これは、初期の Pentium 4 CP と呼ばれていた機能 ハイパースレッディング(HTT) から生まれました。
それは、コアのサブコンポーネントが特定のタイプの命令に使用されていなかった一方で、別の長時間実行されている命令が実行されていた可能性があるゲームのちょっとしたゲームでした。したがって、CPUは実質的に同時に2つのことを処理できます。
新しいコアはより本格的なCPUであるため、複数のことに同時に取り組んでいますが、物理コアのように真のCPUではありません。ハイパースレッディング機能の制限とコアの物理的な機能の制限について詳しくは、tomshardwareのこのタイトルの記事 Intel Core i5 And Core i7:Intel’s Mainstream Magnum Opus を参照してください。
lscpu
コマンドを使用して、ボックスの内訳を確認できます。
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 2667.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
上記では、私のIntel i5ラップトップには合計4つの「CPU」が搭載されています
CPU:4
そのうち2つの物理コア(1ソケット×2コア/ソケット= 2コア)
ソケットあたりのコア:2
CPUソケット:1
そのうち2つは最大2つのスレッドを実行できます
コアあたりのスレッド:2
同時に。これらのスレッドは、コアの論理機能です。
物理コアは、物理コアの数、実際のハードウェアコンポーネントです。
論理コアは、物理コアの数にハイパースレッディングを使用して各コアで実行できるスレッドの数を掛けたものです。
たとえば、4コアのプロセッサはコアごとに2つのスレッドを実行するため、8つの論理プロセッサがあります。
ハイパースレッディング テクノロジーにより、単一の物理プロセッサーコアを2つの論理プロセッサーのように動作させることができます。
1つのプロセッサコアで2つの独立したスレッドを同時に実行できます同時に。
Intelは物理プロセッサをソケットと呼びます。
ハイパースレッディングにより、物理プロセッサは、論理プロセッサと呼ばれる2つの物理プロセッサのように動作します。どうして?
ハイパースレッディングはシステムのパフォーマンスを2倍にしませんが、アイドルリソースをより有効に活用してパフォーマンスを向上させ、特定の重要なワークロードタイプのスループットを向上させることができます。ビジーコアの1つの論理プロセッサで実行されているアプリケーションは、ハイパースレッド化されていないプロセッサで単独で実行している場合に得られるスループットの半分よりわずかに多くを期待できます。
物理プロセッサーは、私たちが見たり、倒れたりできるものです。
論理プロセッサは、Phsical Core が2つの物理コアとして機能するようなものです
$ Sudo dmidecode |egrep "Socket Designation: Proc|((Thread|Core) Count)"
Socket Designation: Proc 1
Core Count: 14
Thread Count: 28
Socket Designation: Proc 2
Core Count: 14
Thread Count: 28
2つのソケット。各ソケットには14個の物理コアがあります。各コアには2つのスレッド(28/14)があります。論理「CPU」または論理処理装置の総数は56です(これが「トップ」であり、他のコマンドによっては「CPU」の数として表示されます)。