> > So if I have 2 physical CPU's with 4 cores each and I enable SMP, I'm
using
> > 8 cores?  Can NUMA be either enabled or disabled when using more than
one
> > physical CPU, or is it required?
>
>
> NUMA is a hardware architecture. It's how you access memory on a
> hardware level: NUMA = Non Uniform Memory Access vs a UMA architecture
> of typical (old/legacy) SMP systems (UMA = Uniform Memory Access).
>
> In a UMA system, all the memory belongs to all the sockets. In a NUMA
> system, each socket has it's "own" local memory. In modern (x86-64)
> processors, each socket has it's own memory controller so each socket
> controls its own local memory. If one socket runs out of memory it can
> ask another socket to lend him some memory. In a UMA system, no socket
> has to ask since memory is global and belongs to all sockets so if one
> socket uses up all the memory ... the rest "starve". In NUMA, there's
> more control over who uses what (be it cores or RAM).
>
> If you have a modern dual or quad (or higher #) socket system ...
> you've got NUMA architecture and you can't get rid of it, it's
> hardware, not software.

So I must enable CONFIG_NUMA for more than one physical CPU, and disable it
for only one physical CPU?

- Grant


> NUMA is not bad nor good. It's "transparent" to you. If your SW
> supports threads, OpenMP, ... you'll be using it without knowing. That
> doesn't mean you can't tweak performance and use numactl tools,
> cgroups, ... to increase performance. You can :)
>
> HTH
>
>    Rafa

Reply via email to