1

NUMA マルチコア アーキテクチャでコア間通信を削減する方法を強調できる人はいますか。ケース スタディ Intel NEHALEM マイクロ アーキテクチャ。

4

1 に答える 1

4

Nehalem プロセッサは、プロセッサ/ノード/パッケージ間の通信にQuickPath Interconnect (QPI)を使用します。NUMA システムでは、各ノードに独自のローカル メモリがあり、システム内の他のノードと共有されます。ワーキングセットのときプログラムの一部が L1 キャッシュに収まり、読み取り専用である場合、どの NUMA ノードがメモリを所有しているかは問題ではありません。コアがキャッシュ ミスを取得し、メモリが別のノードによって所有されている場合、NUMA ノード間の通信が必要です。ただし、これは、別のノードが所有するメモリへのアクセスが遅いという意味ではありません。他のノードがローカル メモリに関連付けられたキャッシュにキャッシュされているかどうかによって異なります。これは、Intel が Last Level Cache (LLC) と呼んでいるものです。そのノードにローカルなメモリ位置へのコアによるアクセスは、別のノードが所有するメモリへのアクセスよりも高速ですが、両方のノードの LLC でミスした場合に限ります。別のノードの LLC でヒットするメモリにアクセスする方が、ローカル ノードのメモリにアクセスするよりも高速です。これは、メモリが CPU よりもはるかに遅く、QPI がこの種の通信用に最適化されているためです。ほとんどのシステムでは、プロセッサ間通信を削減しようとはしません。ご想像のとおり、これは簡単な問題ではないためです。スレッドとコアのアフィニティを設定し、そのスレッドのメモリ ワーキング セットとローカル メモリのアフィニティを設定する必要があります。そのノードの。詳細については、Drepper Ulrich の論文、NUMA で検索してください。このホワイト ペーパーでは、Ulrich は QPI を Common System Interface (CSI) と呼んでいます。これは、発表前の QPI の Intel 名でした。

于 2013-02-03T17:51:59.553 に答える