1

serverfaultでこの質問をしましたが、1週間応答がありませんでした。

デュアルXeonE55222.26Ghz CPU(1つのマザーボードに2つのクアッドコアCPU)があります。私が知っていることから、これはNUMAアーキテクチャです。マシンは3.2カーネルでubuntuサーバー12.04を実行しています。

fdyn@fdyn-0:~/dev/numa_test$ uname -a
Linux fdyn-0 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64    x86_64 x86_64 GNU/Linux

カーネルはnuma対応であると想定されています

fdyn@fdyn-0:~$ grep NUMA=y /boot/config-3.2.0-23-generic 
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_ACPI_NUMA=y

問題は、「numactl」が2つのノードを認識せず、1つの大きなSMPマシンと見なすことです。

~$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
node 0 size: 32756 MB
node 0 free: 31036 MB
node distances:
node   0 
  0:  10 

環境全体がNUMAに対応している必要があるため、NUMAアプリケーションをプログラムできます。¿これを無視しても安全ですか?¿numactlが2つのノードを認識するために何ができるでしょうか?

4

2 に答える 2

2

コメントで確立されているように、NUMAにはファームウェアのサポートが必要です。マザーボードによっては、BIOSセットアップツールで有効にする必要があることを意味する場合があります。

一部のハードウェア、特にAppleのMac Proには対応する設定がなく、NUMAコントロールはこれらのマシンでは機能しません。Web上で非公式の回避策を見つけることができるかもしれません-運が良ければ、Appleはそれを有効にするためにモデル固有のレジスタ(MSR)をロックダウンしません。IntelからNUMAに関するMSRドキュメントを検索し、msr.koカーネルモジュールを使用して関連するMSRに書き込むことができる場合があります。デフォルトでは、すべてのメモリアクセスは2つのノード間でインターリーブされます。

于 2012-08-20T20:25:44.940 に答える
0

あなたはnumaノードを偽造することができます、私はnumaのものをテストするためにシングルプロセッサシステムでそれをします

カーネルに引数を渡すだけです

numa = fake = 2は、2つの偽のnumaノードを作成します

詳細はこちら: http: //linux-hacks.blogspot.hk/2009/07/fake-numa-nodes-in-linux.html

于 2015-03-13T03:54:34.477 に答える