我们的申请是:
我的问题是,当每个进程创建它的共享内存区域时,Windows是否会在创建它的同一个Xeon芯片上分配该内存?或者我应该使用Numa内存函数之一将内存明确地分配给特定的Xeon芯片吗?
编辑 - 帮助澄清NUMA是什么,来自维基百科 -
非统一内存访问或 非统一内存架构(NUMA) 是用于的计算机存储器设计 多处理器,内存 访问时间取决于内存 相对于处理器的位置。 在NUMA下,处理器可以访问它 比非本地更快地拥有本地内存 内存,即内存本地 另一个处理器或内存共享 处理器之间的处理器之间。
链接为http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access以获取更多详细信息。对我而言,随着多处理变得越来越普遍,我们将不得不更多地了解这些事情。
[1]:http://msdn.microsoft.com/en-us/library/aa363804%28VS.85%29.aspxbetween个处理器。
答案 0 :(得分:1)
Windows将为请求线程分配本地内存;但是,Microsoft未指定本地。本地可以是三个选项之一:线程的理想处理器,线程的处理器关联掩码或线程的当前处理器(我忘记了当前的实现)。
实质上,答案是肯定的;然而,一个常见的问题是从一个没有关联的“控制器线程”中分配所有内存,因此内存靠近控制器而不是具有特定亲和力的线程。