クロスソケットトラフィックとはどういう意味ですか?

クロスソケットトラフィックとはどういう意味ですか?

読みながらこれIntelのKubernetesブログ投稿情報CPUマネージャ使用できると言われていますCPUs allocated on the socket near to the bus which connects to an external device

クロスソケットトラフィックは何を意味し、どのような問題を引き起こす可能性がありますか?私の推測は次のとおりです。

  • あるソケットのCPUは他のソケットのCPUからのみアクセス可能なバスに接続されているデバイスにアクセスする必要があるため、そのデバイスのコマンドは別のソケットのCPUで実行されるようにメモリに書き込む必要があります。
  • あるソケットのCPUは他のソケットのCPUからのみアクセス可能なバスに接続されているデバイスにアクセスする必要があるため、デバイスに送信されたコマンドは別のソケットのCPUに直接転送され、そのデバイスに転送されます(これが機能しているかどうかはわかりません)ない)

ベストアンサー1

Kubernetesのブログ投稿の著者は、言葉のない言葉を話し、車輪を再発明しようとしています。彼らは「CPUマネージャ」と呼ばれるもう1つのPBS(Portable Batch System)です。

質問に答える:「ソケット間のトラフィックは何を意味し、どのような問題を引き起こしますか?」 - まず、これが何であるかを言う必要があります。マルチプロセッサコンピュータつまり、2つ以上のCPUとCPUソケットがそれぞれあるコンピュータシステムです。マルチプロセッサシステムには2つのアーキテクチャがあります。SMP(対称型多重処理)そしてAMP(非対称多重処理)

現在利用可能なほとんどのマルチプロセッサシステムはSMPアーキテクチャシステムである。これらのシステムには、別々の物理CPUを共通のメインメモリとして扱うことができるいわゆる共有メモリがあります。物理CPU相互接続のタイプに応じて、これらのシステムにはシステムバスとクロスバースイッチの2種類があります。

垂直および水平スイッチを備えたSMPシステム図:

SMPクロスバースイッチ

システムバスを備えたSMPシステムブロック図:

SMPシステムバス

ほとんどのSMPシステムではシステムバスタイプCPU接続、Kubernetsブログ記事は、このタイプのシステムに関するものです。

システムバスCPUに接続されたSMPシステムには、長所と短所があります。このシステムの最大の欠点は次のとおりです。NUMA(不均一メモリアクセス)システム。どういう意味ですか。各CPUソケットは独自のメモリバンクと物理的に接続されていますが、LinuxカーネルはSMPからこの接続を区別できません。メモリバンクは、Linux上で単一のモノリシックメモリとして扱われます。しかし、それにもかかわらず、NUMA現象が発生します。つまり、物理CPUは、他のCPUソケットに接続されているメモリバンクよりも速く、独自の物理メモリバンクアドレスと相互運用できません。したがって、当然、他の物理CPUに接続された物理メモリグループに属するSMPの共通メインメモリのアドレスを使用する物理CPUを避けたい。

「制限事項」セクションKubernates ブログ投稿NUMA現象を「ソケット間トラフィック」の問題と呼びます(引用)。

ユーザーは、クロスソケットトラフィックを防ぐために外部デバイス(アクセラレータや高性能ネットワークカードなど)を接続するバスに近いソケットにCPUを割り当てることができます。 CPU マネージャはまだこの種のソートをサポートしていません。

ところが、何かに「より近い」特定のCPUにスレッドを割り当てられないのは当然です。 LinuxカーネルはSMPシステムの物理CPUを区別できないため、物理CPUのすべてのCPUコアを同等の汎用SMPプロセッサとして扱います。 「追加」CPUコアの使用を避け、「ホットキャッシュ」および「コールドキャッシュ」フラグを使用する誤った試みがありますが、SMPシステムの性質により効率的に機能しません。

次の内容もお読みください。

おすすめ記事