Does gcc, icc, or Microsoft's C/C++ compiler support or know anything about NUMA?

前端 未结 3 1471
梦如初夏
梦如初夏 2021-02-03 10:59

If I have a multi-processor board that has cache-coherent non-uniform memory access ( NUMA ), i.e. separate \"northbridges\" with separate RAM for each processor, does any compi

相关标签:
3条回答
  • 2021-02-03 11:30

    Linux kernel knows about NUMA and will try to give your process pages from memory local to the current CPU (source: U. Drepper, "What Every Programmer Should Know About Memory".)

    0 讨论(0)
  • 2021-02-03 11:39

    For MS platforms, the compiler is not aware of NUMA. However, the system is NUMA aware and will attempt to allocate memory in the same node.

    See http://code.msdn.microsoft.com/64plusLP for some more details on how recent versions of Windows handle NUMA.

    0 讨论(0)
  • 2021-02-03 11:52

    NUMA-aware memory allocation is not done at compile time. Making assumptions like this would be bad for portability.

    On Linux, this is a kernel function, though you can control this at runtime with numactl or set_mempolicy or with libnuma.

    0 讨论(0)
提交回复
热议问题