2

Win7 / Server2008R2以降、GetNumaProximityNode(Ex)関数を使用できます。NUMAノード間の距離を取得するのに役立つはずですが、ドキュメント( http://msdn.microsoft.com/en-us/library/ms683206(VS.85).aspx)からはどのように機能するのか理解できません。 。距離を指定すると、対応するノードが返されます(存在する場合)。

LinuxカーネルといくつかのHPAPICドキュメントからいくつかのコードを読むと、距離は10の整数倍で表されることがわかりました(自己までの距離は10です)が、18のようなものになることもあります(正確に2倍遅くなるわけではありません)。しかし、Windows APIを使用して2つのノード間の距離を計算する方法をまだ理解できません(Linuxではlibnumaにはこれを行う「距離」関数があります)。

この関数の使い方を知っている人はいますか?

4

1 に答える 1

1

Windows 用のソリューションを見つけました (ただし、まだテストしていません)。距離は、SLIT (System Locality Information Table) で確認できます。この拡張機能は、OEM によって提供され、ACPI を通じて入手できます。これには、距離を表す N_CPU x N_CPU マトリックスが含まれます ([1][3] はノード 1 と 3 の間の距離です。[Y][Y] は常に 10 です。10 未満は無効です)。

Windows Vista 以降には、このテーブルを取得するために使用できるメソッド GetSystemFirmwareTable があります (XP ではレジストリから取得できるようですが、より困難です)。
このテーブルの構造は ACPICA パッケージ ( http://www.acpica.org ) にあります。

于 2010-01-24T11:37:40.240 に答える