我的 Dell Precision T5500 工作站在 BIOS 中有一个选项,用于在 SMP 和 NUMA 之间更改内存模式。
对于 64 位 Vista,我应该使用以下哪个选项?Vista 支持 NUMA 吗?
据我所知,我拥有的硬件本身是 NUMA(2 x Intel i7),但在 SMP 模式下,硬件将内存组条带化以生成单个统一的内存组。
答案1
首先回答最后一个问题:是的,Vista 支持 NUMA(XP 专业版已经支持)
在大多数情况下,使用硬件的本机内存模式是有益的。结果是“最佳”内存带宽和延迟。
模式访问策略可以描述如下:
NUMA:首先使用本地内存(快速),如果全部使用外部内存(慢速)
SMP:将每个其他内存页面映射到另一个 CPU,这会平均快速和慢速内存访问
只有在极少数情况下,应用程序才会以 SMP 模式平均内存访问的方式访问外部内存,这对整体性能有益。
例如:数据库,它不超过系统的内存能力,但仍然使用比本地可用内存多得多的内存。
如果您不关心内存性能,您可以省下昂贵的 i7 的钱,购买便宜得多的(旧式)SMP 系统,并将额外的钱花在团队晚餐上 ;-)
答案2
从阅读中得知,除非超过一定数量的核心,否则使用 SMP 是没问题的。不过,如果您有几个小时的时间,可以使用您最常用的程序对您的系统进行基准测试。
为什么要使用 NUMA?NUMA 有什么好处?如上所述,NUMA 的主要好处是可扩展性。将 SMP 扩展到 8-12 个 CPU 以上极其困难。在这种 CPU 数量下,内存总线竞争激烈。NUMA 是减少争夺共享内存总线访问权限的 CPU 数量的一种方法。这是通过拥有多条内存总线并且每条总线上只有少量 CPU 来实现的。还有其他方法可以构建大规模多处理器机器,但这是 NUMA FAQ,所以我们将其他方法的讨论留给其他 FAQ。