web-dev-qa-db-ja.com

/ proc / cpuinfoで兄弟はどういう意味ですか?

物理プロセッサ内の仮想プロセッサの数を意味しますか?

11
LedZeppelin

兄弟の数がコアの数と等しい場合、ハイパースレッディングではないCPUまたはハイパースレッディングがオフになっています。兄弟の数がコアの数の2倍の場合、ハイパースレッディングがオンになっているハイパースレッディングCPUがあります。良い記事があります ここ

9
user9517

プロセッサー上の兄弟の数は、そのプロセッサー内の実行ユニットの総数です。これには、追加のコアとハイパースレッディングの両方が含まれます。

例えば、

  1. Core 2 Duoはsiblings : 2。デュアルコア、ハイパースレッディングなし。
  2. Xeon E5420はsiblings : 4。ハイパースレッディングを備えたデュアルコア。
  3. ハイパースレッディングを備えたPentium 4はsiblings : 2。ハイパースレッディングを備えたシングルコア。
7
Scott Pack

まず最初に、以下の用語とその使用状況を理解します。

  • CPU
    • CPUは処理ユニットです。
    • 命令を処理するための複数のコンポーネントがあります。
    • 各コンポーネントは、命令のフェッチ、デコード、処理、更新などのさまざまな操作を担当します。
    • 1つのCPUは、上記のコンポーネントの複数のセット/ユニットを持つことができます。
    • これらのユニットが2セットある場合、プロセッサは2つの命令を並行して実行できます。
    • 1つのユニットはコアと呼ばれます。
    • デュエルコアCPUには、2つの同一のコンポーネントセットがあります。クアッドコアCPUには、これらのコンポーネント/ユニットの4つの同一のセットがあります。
  • マルチCPU /ハイパースレッディング
    • これは少しトリッキーです。ソフトウェアコンテキストでのみ有効です。
    • 命令が外部イベントの完了を待機しているときはいつでも、CPUはアイドル状態になります。 CPUをより有効に利用するために、一部のベンダーは2つのハードウェアスレッドを維持しており、1つのスレッドがブロックされると、ハードウェアは他のスレッドに切り替えます。この種類のプロセッサは、CPUの状態を保存および復元する機能になります
    • ソフトウェアの場合、2つのスレッドが並行して実行されているように見えます。
    • Linuxは、このハイパースレッディングコアを複数CPUと見なします。 2つのスレッドを並行して実行できるからです。したがって、2つの実行ユニット(疑似CPU)が表示されます。
    • たとえば、最近のIntel CPUはハイパースレッド化されており、2つの同時スレッドを実行できます。
  • マルチコア
    • 最近のCPUには、上記のハードウェアユニット/コアのセットが複数あります
    • ハイパースレッディングとは異なり、実際には2つの命令を並行して実行できます。
    • 各コアもハイパースレッド化できます
  • マルチプロセッサ
    • サーバー、スーパーコンピューターなどの高性能システムには、複数の物理CPUが搭載されます。
    • あなたはそれらのマザーボードで複数のCPUソケットを見ることができます
    • それぞれが複数のコアを持つことができます。繰り返しますが、各コアはハイパースレッド化できます

最近のPCには通常、マルチコアハイパースレッドプロセッサが搭載されています。たとえば、クアッドコアハイパースレッドのIntel CPUが搭載されたPCで実行されているLinuxでは、8つのCPU(4コアx 2ハイパースレッド)が表示されます。

最近のサーバーは通常、マルチコアマルチプロセッサーシステムです。一般的なサーバーには2つのソケットがあり、それぞれに24のハイパースレッドコアがあります。したがって、このシステムで実行されているLinuxは96 CPU(2ソケットx 24コアx 2ハイパースレッド)

きょうだい

実際の質問に戻ると、キャッシュを共有するプロセッサーは兄弟と呼ばれます。キャッシュ構成は次のようになります(アーキテクチャによって異なります)。

  • 各コアには、1つのL1命令キャッシュと1つのL1データキャッシュがあります。
  • 各コアは1つの統合L2キャッシュになります
  • ソケット内のすべてのコアには1つの統合L3キャッシュがあります
  • 通常、2つのソケットがキャッシュを共有することはありません。

2つのソケットを備えたマルチコアマルチプロセッサシステムについて考えます。各ソケットはハイパースレッディングを備えた24コアを備えています。この場合、Linuxには0から95までの番号が付けられた合計96のCPUが表示されます。ソケット1にはCPU 0〜47があり、ソケット2には48〜95があります(これは通常、番号が交互に配置されるのとは異なります)。上記のキャッシュ構成を持つこのシステムでは、

  • プロセッサ0〜47は兄弟です
  • プロセッサ48〜95は兄弟です
1
theB

たとえば、カーネルは兄弟の数を使用して負荷を分散します。

4つのタスクが2つの物理パッケージを持つシステムで実行されており、各パッケージには2つのコア(最終レベルのキャッシュを共有)があり、各コアには2つの論理スレッドがあります。最初のパッケージでは、負荷分散がマルチコアドメインで開始され、すべてのコアに均等に負荷が分散されます。

0
Bart