代码之家  ›  专栏  ›  技术社区  ›  photo_tom

windows7中的NUMA内存区域分配

  •  2
  • photo_tom  · 技术社区  · 14 年前

    我们的申请是:

    1. 所有软件都是用VS2008在c++中编写的,并编译为64位应用程序。
    2. 接收应用程序创建一个大的共享内存区域(2-4gb),该区域主要由设置了处理器关联的进程使用,以便在第二个Xeon处理器上运行。但是,当Generation应用程序完成构建一组数据(32mb到128mb)时,它会将该信息传输到这个Xeon上运行的共享内存区域。
    3. 我们正在使用Boost进程间库来管理共享内存区域。

    我的问题是,当创建共享内存区域的每个进程,windows是否在创建它的同一个Xeon芯片上分配内存?或者我应该使用Numa内存函数显式地将内存分配给特定的Xeon芯片吗?


    非统一内存访问或 是计算机内存设计中使用的 访问时间取决于内存 相对于处理器的位置。 在NUMA下,处理器可以访问其 内存,也就是本地内存 另一个处理器或内存共享 介于处理器之间处理器。

    链接是 http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access

    [1]: http://msdn.microsoft.com/en-us/library/aa363804%28VS.85%29.aspxbetween

    1 回复  |  直到 14 年前
        1
  •  1
  •   Brian    14 年前

    Windows将为请求线程分配本地内存;但是,Microsoft没有指定本地内存。Local可以是三个选项之一:线程的理想处理器、线程的处理器关联掩码或线程的当前处理器(我忘记了当前实现是什么)。