Enabling NUMA for Intel Core i7Intel Skylake + DisplayPort 1.2 MST/Daisy chain on LinuxWhy can't linux kernel...

Wherein the Shatapatha Brahmana it was mentioned about 8.64 lakh alphabets in Vedas?

how to differentiate when a child lwc component is called twice in parent component?

Plausibility of Ice Eaters in the Arctic

If "more guns less crime", how do gun advocates explain that the EU has less crime than the US?

Why do oscilloscopes use SMPSes instead of linear power supplies?

Was the 2019 Lion King film made through motion capture?

Why do funding agencies like the NSF not publish accepted grants?

How can I iterate this process?

Are there any financial disadvantages to living significantly "below your means"?

A tool to replace all words with antonyms

Y2K... in 2019?

Why does Intel's Haswell chip allow FP multiplication to be twice as fast as addition?

Word or idiom defining something barely functional

Three legged NOT gate? What is this symbol?

MinionPro is erroneous

What gave Harry Potter the idea of writing in Tom Riddle's diary?

Trying to write a shell script that keeps testing a server remotely, but it keeps falling in else statement when I logout

What game uses dice with sides powers of 2?

Is it incorrect to write "I rate this book a 3 out of 4 stars?"

What is the difference between TAS and GS?

AsyncDictionary - Can you break thread safety?

How should an administrative assistant reply to student addressing them as "Professor" or "Doctor"?

How many different ways are there to checkmate in the early game?

How to create all combinations from a nested list while preserving the structure using R?



Enabling NUMA for Intel Core i7


Intel Skylake + DisplayPort 1.2 MST/Daisy chain on LinuxWhy can't linux kernel boot on my new Intel i7-6500U CPU?What might cause a single “rcu_sched detected stall on CPU” warning in syslog?Find out where the allocated memory for a process residesExplanation for “page allocation failure” kernel messageHow to disable memory for a NUMA node on a Linux system






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







21















In Linux kernel, the documentation for CONFIG_NUMA says:



Enable NUMA (Non Uniform Memory Access) support. 

he kernel will try to allocate memory used by a CPU on the
local memory controller of the CPU and add some more
NUMA awareness to the kernel.

For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.


I have an Intel Core i7 processor, but AFAICT it only has one NUMA node:



$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 16063 MB
node 0 free: 15031 MB
node distances:
node 0
0: 10


So what is the purpose of having CONFIG_NUMA=y, when i7 has only one NUMA node ?










share|improve this question

































    21















    In Linux kernel, the documentation for CONFIG_NUMA says:



    Enable NUMA (Non Uniform Memory Access) support. 

    he kernel will try to allocate memory used by a CPU on the
    local memory controller of the CPU and add some more
    NUMA awareness to the kernel.

    For 64-bit this is recommended if the system is Intel Core i7
    (or later), AMD Opteron, or EM64T NUMA.


    I have an Intel Core i7 processor, but AFAICT it only has one NUMA node:



    $ numactl --hardware
    available: 1 nodes (0)
    node 0 cpus: 0 1 2 3 4 5 6 7
    node 0 size: 16063 MB
    node 0 free: 15031 MB
    node distances:
    node 0
    0: 10


    So what is the purpose of having CONFIG_NUMA=y, when i7 has only one NUMA node ?










    share|improve this question





























      21












      21








      21


      7






      In Linux kernel, the documentation for CONFIG_NUMA says:



      Enable NUMA (Non Uniform Memory Access) support. 

      he kernel will try to allocate memory used by a CPU on the
      local memory controller of the CPU and add some more
      NUMA awareness to the kernel.

      For 64-bit this is recommended if the system is Intel Core i7
      (or later), AMD Opteron, or EM64T NUMA.


      I have an Intel Core i7 processor, but AFAICT it only has one NUMA node:



      $ numactl --hardware
      available: 1 nodes (0)
      node 0 cpus: 0 1 2 3 4 5 6 7
      node 0 size: 16063 MB
      node 0 free: 15031 MB
      node distances:
      node 0
      0: 10


      So what is the purpose of having CONFIG_NUMA=y, when i7 has only one NUMA node ?










      share|improve this question
















      In Linux kernel, the documentation for CONFIG_NUMA says:



      Enable NUMA (Non Uniform Memory Access) support. 

      he kernel will try to allocate memory used by a CPU on the
      local memory controller of the CPU and add some more
      NUMA awareness to the kernel.

      For 64-bit this is recommended if the system is Intel Core i7
      (or later), AMD Opteron, or EM64T NUMA.


      I have an Intel Core i7 processor, but AFAICT it only has one NUMA node:



      $ numactl --hardware
      available: 1 nodes (0)
      node 0 cpus: 0 1 2 3 4 5 6 7
      node 0 size: 16063 MB
      node 0 free: 15031 MB
      node distances:
      node 0
      0: 10


      So what is the purpose of having CONFIG_NUMA=y, when i7 has only one NUMA node ?







      linux-kernel numa






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 1 hour ago









      Yuri

      1678 bronze badges




      1678 bronze badges










      asked Sep 25 '13 at 12:41









      user1968963user1968963

      1,08610 gold badges26 silver badges46 bronze badges




      1,08610 gold badges26 silver badges46 bronze badges

























          5 Answers
          5






          active

          oldest

          votes


















          13














          I think this picture explains enough:



                            enter image description here




          • socket or numa node is a collection of cores with a local access to memory. Each socket contains 1 or more cores. Note that this does not necessarily refer to a physical socket, but rather to the memory architecture of the machine, which will depend on your chip vendor.


          • processor core (cpu core, logical processor) refers to a single processing unit capable of performing computations.



          So the above indicates that you would need multiple processors in the machine to leverage NUMA architecture.



          You can have compiled NUMA support in the kernel and run it on single processor machine. It's similar like with SMP support. It's compiled in as well but when the kernel detects that there is single processor in the system it will not use it (disable it). The same holds for NUMA. You can check dmesg kernel ring buffer or /var/log/dmesg file for
          related messages:



          NUMA - single processor (or NUMA disabled) X multi processor:



          No NUMA configuration found
          NUMA: Allocated memnodemap from b000 - b440


          SMP - single processor X multi processor:



          SMP: Allowing 1 CPUs, 0 hotplug CPUs
          SMP: Allowing 32 CPUs, 0 hotplug CPUs


          References




          • NUMA (Non-Uniform Memory Access): An Overview






          share|improve this answer























          • 2





            @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

            – user1968963
            May 31 '14 at 21:47






          • 1





            Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

            – Paul Caheny
            Nov 20 '15 at 12:14





















          15





          +50









          For 64-bit this is recommended if the system is Intel Core i7
          (or later), AMD Opteron, or EM64T NUMA.


          First, note that Intel Core i7 is just a marketing designation, and the phrase Intel Core i7 (or later) is very vague. So what could it mean?



          The Linux kernel Kconfig help text edits mentioning an Intel Core 7i, then corrected to Intel Core i7, were done in November of 2008. The commit log reads:



          x86: update CONFIG_NUMA description
          Impact: clarify/update CONFIG_NUMA text

          CONFIG_NUMA description talk about a bit old thing.
          So, following changes are better.

          o CONFIG_NUMA is no longer EXPERIMENTAL

          o Opteron is not the only processor of NUMA topology on x86_64 no longer,
          but also Intel Core7i has it.


          It can reasonably only refer to Intel Core i7 CPUs released or announced per spec by that time. That would be the Bloomfield processors, based on the Nehalem microarchitecture, which moved the memory controller from the Northbridge onto the CPU (which AMD had done in 2003 with the Opteron/AMD64) and introduced QuickPath Interconnect/QPI (as pendant to AMD's HyperTransport) for CPU/CPU and CPU/IOH (IO hub, ex-Northbridge) interconnection.



          The Bloomdale i7 CPUs were the first entries in the new Core i{3,5,7} naming scheme. So when that Linux doc text was written, i7 didn't specifically refer to the Core i7 as opposed to i5 (first in 09/2009) or i3 (first in 01/2010), but in all likelihood to the new Nehalem microarchitecture with its integrated memory controller and QPI.



          There's an Intel press release from 11/2008 on the i7 (Intel Launches Fastest Processor on the Planet) that states that the Core i7 processor more than doubles the memory bandwidth of previous Intel "Extreme" platforms, but doesn't mention NUMA at all.



          The reason is, I think, that NUMA doesn't matter for desktop PCs, not even for "extreme" ones.



          NUMA matters for expensive servers that have several CPU sockets (not just several cores on one socket) with dedicated physical memory access lanes (not just one memory controller), so that each CPU has its dedicated local memory, which is "closer" to it than the memory of the other CPUs. (Think 8 sockets, 64 cores, 256 GB RAM.) NUMA means that a CPU can also access remote memory (the local memory of another CPU) in addition to its own local memory, albeit at a higher cost. NUMA is the synthesis of a shared memory architecture like SMP, where all memory is equally available to all cores, and a distributed memory architecture like MPP (Massively Parallel Processing), that gives each node a dedicated block of memory. It is MPP, but it looks like SMP to the application.



          Desktop motherboards don't have dual sockets and Intel desktop CPUs including extreme i7 editions lack the additional QPI link for dual socket configuration.



          Check the Wikipedia QPI article to see how QPI is relevant to NUMA:




          In its simplest form on a single-processor motherboard, a single QPI
          is used to connect the processor to the IO Hub (e.g., to connect an
          Intel Core i7 to an X58). In more complex instances of the
          architecture, separate QPI link pairs connect one or more processors
          and one or more IO hubs or routing hubs in a network on the
          motherboard, allowing all of the components to access other components
          via the network. As with HyperTransport, the QuickPath Architecture
          assumes that the processors will have integrated memory controllers,
          and enables a non-uniform memory access (NUMA) architecture.



          […]



          Although some high-end Core i7 processors expose QPI, other
          "mainstream" Nehalem desktop and mobile processors intended for
          single-socket boards (e.g. LGA 1156 Core i3, Core i5, and other Core
          i7 processors from the Lynnfield/Clarksfield and successor families)
          do not expose QPI externally, because these processors are not
          intended to participate in multi-socket systems. However, QPI is used
          internally on these chips […]




          The way an Intel Nehalem CPU on a multi-socket server board makes non-local memory access is via QPI. Also in the article on NUMA:




          Intel announced NUMA compatibility for its x86 and Itanium servers in
          late 2007 with its Nehalem and Tukwila CPUs. Both CPU families share a
          common chipset; the interconnection is called Intel Quick Path
          Interconnect (QPI). AMD implemented NUMA with its Opteron processor
          (2003), using HyperTransport.




          Check this report back from 11/2008 to see that Intel disabled one of the two QPI links on the i7, thus disabling dual-socket configuration, where NUMA applies:




          This first, high-end desktop implementation of Nehalem is code-named
          Bloomfield, and it's essentially the same silicon that should go into
          two-socket servers eventually. As a result, Bloomfield chips come with
          two QPI links onboard, as the die shot above indicates. However, the
          second QPI link is unused. In 2P servers based on this architecture,
          that second interconnect will link the two sockets, and over it, the
          CPUs will share cache coherency messages (using a new protocol) and
          data (since the memory subsystem will be NUMA)—again, very similar to
          the Opteron.




          So I've been straying away from your question relating my Google research results … You're asking why the Linux docs have started to recommend turning it on in late 2008? Not sure this question has a provably correct answer … We would have to ask the doc writer. Turning NUMA on doesn't benefit desktop CPU users, but doesn't significantly hurt them either, while helping multi-socket users, so why not? This could have been the rationale. Found that reflected in a discussion about disabling NUMA on the Arch Linux tracker (FS#31187 - [linux] - disable NUMA from config files).



          The doc author might also have thought of the NUMA potential of the Nehalem architecture of which, when the doc was written, the 11/2008 Core i7 processors (920, 940, 965) were the only representatives; the first Nehalem chips for which NUMA would have really made sense are probably the Q1/2009 Xeon processors with dual QPI link such as the Xeon E5520.






          share|improve this answer

































            2














            I think if you use the --show switch it might make more sense:



            $ numactl --show
            policy: default
            preferred node: current
            physcpubind: 0 1 2 3
            cpubind: 0
            nodebind: 0
            membind: 0


            So you can control the use of physcpubind's like this:



            $ numactl --physcpubind=+0-2 myapp


            This would limit the application myapp to the first 2 CPU cores. My system is an i5 with 4 cores.



            References




            • numctl man page

            • numactl --physcpubind

            • Using NUMA on RHEL 6

            • Little things I didn’t know: difference between _enable_NUMA_support and numactl






            share|improve this answer



































              2














              I've been researching the same thing for my desktop PC while building my kernel on my own. I have decided to disable NUMA after much research. My CPU is a Core i7 3820 which has 8 processors with HT. This page helped my come to my decision.



              disable NUMA from config files



              In summary, NUMA is only worthwhile if you have more than 1 CPU socket (regardless of cores). There is a very small hit to processing power on 1 CPU Socket machines even with multiple cores, but it is hardly noticeable so most distributions leave it enabled as it will provide a huge benefit to servers and machines with more than 1 socket.






              share|improve this answer



































                1














                In a PC with at most one CPU, NUMA is totally useless. Feel free disable it in your own kernel.



                You can always control CPU bonding by taskset(1).






                share|improve this answer




























                  Your Answer








                  StackExchange.ready(function() {
                  var channelOptions = {
                  tags: "".split(" "),
                  id: "106"
                  };
                  initTagRenderer("".split(" "), "".split(" "), channelOptions);

                  StackExchange.using("externalEditor", function() {
                  // Have to fire editor after snippets, if snippets enabled
                  if (StackExchange.settings.snippets.snippetsEnabled) {
                  StackExchange.using("snippets", function() {
                  createEditor();
                  });
                  }
                  else {
                  createEditor();
                  }
                  });

                  function createEditor() {
                  StackExchange.prepareEditor({
                  heartbeatType: 'answer',
                  autoActivateHeartbeat: false,
                  convertImagesToLinks: false,
                  noModals: true,
                  showLowRepImageUploadWarning: true,
                  reputationToPostImages: null,
                  bindNavPrevention: true,
                  postfix: "",
                  imageUploader: {
                  brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                  contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                  allowUrls: true
                  },
                  onDemand: true,
                  discardSelector: ".discard-answer"
                  ,immediatelyShowMarkdownHelp:true
                  });


                  }
                  });














                  draft saved

                  draft discarded


















                  StackExchange.ready(
                  function () {
                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f92302%2fenabling-numa-for-intel-core-i7%23new-answer', 'question_page');
                  }
                  );

                  Post as a guest















                  Required, but never shown

























                  5 Answers
                  5






                  active

                  oldest

                  votes








                  5 Answers
                  5






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes









                  13














                  I think this picture explains enough:



                                    enter image description here




                  • socket or numa node is a collection of cores with a local access to memory. Each socket contains 1 or more cores. Note that this does not necessarily refer to a physical socket, but rather to the memory architecture of the machine, which will depend on your chip vendor.


                  • processor core (cpu core, logical processor) refers to a single processing unit capable of performing computations.



                  So the above indicates that you would need multiple processors in the machine to leverage NUMA architecture.



                  You can have compiled NUMA support in the kernel and run it on single processor machine. It's similar like with SMP support. It's compiled in as well but when the kernel detects that there is single processor in the system it will not use it (disable it). The same holds for NUMA. You can check dmesg kernel ring buffer or /var/log/dmesg file for
                  related messages:



                  NUMA - single processor (or NUMA disabled) X multi processor:



                  No NUMA configuration found
                  NUMA: Allocated memnodemap from b000 - b440


                  SMP - single processor X multi processor:



                  SMP: Allowing 1 CPUs, 0 hotplug CPUs
                  SMP: Allowing 32 CPUs, 0 hotplug CPUs


                  References




                  • NUMA (Non-Uniform Memory Access): An Overview






                  share|improve this answer























                  • 2





                    @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                    – user1968963
                    May 31 '14 at 21:47






                  • 1





                    Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                    – Paul Caheny
                    Nov 20 '15 at 12:14


















                  13














                  I think this picture explains enough:



                                    enter image description here




                  • socket or numa node is a collection of cores with a local access to memory. Each socket contains 1 or more cores. Note that this does not necessarily refer to a physical socket, but rather to the memory architecture of the machine, which will depend on your chip vendor.


                  • processor core (cpu core, logical processor) refers to a single processing unit capable of performing computations.



                  So the above indicates that you would need multiple processors in the machine to leverage NUMA architecture.



                  You can have compiled NUMA support in the kernel and run it on single processor machine. It's similar like with SMP support. It's compiled in as well but when the kernel detects that there is single processor in the system it will not use it (disable it). The same holds for NUMA. You can check dmesg kernel ring buffer or /var/log/dmesg file for
                  related messages:



                  NUMA - single processor (or NUMA disabled) X multi processor:



                  No NUMA configuration found
                  NUMA: Allocated memnodemap from b000 - b440


                  SMP - single processor X multi processor:



                  SMP: Allowing 1 CPUs, 0 hotplug CPUs
                  SMP: Allowing 32 CPUs, 0 hotplug CPUs


                  References




                  • NUMA (Non-Uniform Memory Access): An Overview






                  share|improve this answer























                  • 2





                    @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                    – user1968963
                    May 31 '14 at 21:47






                  • 1





                    Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                    – Paul Caheny
                    Nov 20 '15 at 12:14
















                  13












                  13








                  13







                  I think this picture explains enough:



                                    enter image description here




                  • socket or numa node is a collection of cores with a local access to memory. Each socket contains 1 or more cores. Note that this does not necessarily refer to a physical socket, but rather to the memory architecture of the machine, which will depend on your chip vendor.


                  • processor core (cpu core, logical processor) refers to a single processing unit capable of performing computations.



                  So the above indicates that you would need multiple processors in the machine to leverage NUMA architecture.



                  You can have compiled NUMA support in the kernel and run it on single processor machine. It's similar like with SMP support. It's compiled in as well but when the kernel detects that there is single processor in the system it will not use it (disable it). The same holds for NUMA. You can check dmesg kernel ring buffer or /var/log/dmesg file for
                  related messages:



                  NUMA - single processor (or NUMA disabled) X multi processor:



                  No NUMA configuration found
                  NUMA: Allocated memnodemap from b000 - b440


                  SMP - single processor X multi processor:



                  SMP: Allowing 1 CPUs, 0 hotplug CPUs
                  SMP: Allowing 32 CPUs, 0 hotplug CPUs


                  References




                  • NUMA (Non-Uniform Memory Access): An Overview






                  share|improve this answer















                  I think this picture explains enough:



                                    enter image description here




                  • socket or numa node is a collection of cores with a local access to memory. Each socket contains 1 or more cores. Note that this does not necessarily refer to a physical socket, but rather to the memory architecture of the machine, which will depend on your chip vendor.


                  • processor core (cpu core, logical processor) refers to a single processing unit capable of performing computations.



                  So the above indicates that you would need multiple processors in the machine to leverage NUMA architecture.



                  You can have compiled NUMA support in the kernel and run it on single processor machine. It's similar like with SMP support. It's compiled in as well but when the kernel detects that there is single processor in the system it will not use it (disable it). The same holds for NUMA. You can check dmesg kernel ring buffer or /var/log/dmesg file for
                  related messages:



                  NUMA - single processor (or NUMA disabled) X multi processor:



                  No NUMA configuration found
                  NUMA: Allocated memnodemap from b000 - b440


                  SMP - single processor X multi processor:



                  SMP: Allowing 1 CPUs, 0 hotplug CPUs
                  SMP: Allowing 32 CPUs, 0 hotplug CPUs


                  References




                  • NUMA (Non-Uniform Memory Access): An Overview







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Jun 4 '14 at 19:08









                  slm

                  266k74 gold badges575 silver badges721 bronze badges




                  266k74 gold badges575 silver badges721 bronze badges










                  answered Sep 25 '13 at 13:03









                  dsmsk80dsmsk80

                  2,2939 silver badges14 bronze badges




                  2,2939 silver badges14 bronze badges











                  • 2





                    @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                    – user1968963
                    May 31 '14 at 21:47






                  • 1





                    Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                    – Paul Caheny
                    Nov 20 '15 at 12:14
















                  • 2





                    @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                    – user1968963
                    May 31 '14 at 21:47






                  • 1





                    Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                    – Paul Caheny
                    Nov 20 '15 at 12:14










                  2




                  2





                  @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                  – user1968963
                  May 31 '14 at 21:47





                  @slm - what you say makes sense, but why does the kernel documentation (quoted in my question) say I should enable CONFIG_NUMA for core i7 ?

                  – user1968963
                  May 31 '14 at 21:47




                  1




                  1





                  Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                  – Paul Caheny
                  Nov 20 '15 at 12:14







                  Since Haswell it is no longer true that NUMA is not of any use for a 'single processor' (meaning single socket) machine. Certain Haswell products feature what Intel terms the 'Cluster on Die' mode. The single socket processor has multiple memory controllers integrated and therefore multiple paths to memory, which with this feature may be treated as distinct NUMA regions, all of which encompass the one socket.

                  – Paul Caheny
                  Nov 20 '15 at 12:14















                  15





                  +50









                  For 64-bit this is recommended if the system is Intel Core i7
                  (or later), AMD Opteron, or EM64T NUMA.


                  First, note that Intel Core i7 is just a marketing designation, and the phrase Intel Core i7 (or later) is very vague. So what could it mean?



                  The Linux kernel Kconfig help text edits mentioning an Intel Core 7i, then corrected to Intel Core i7, were done in November of 2008. The commit log reads:



                  x86: update CONFIG_NUMA description
                  Impact: clarify/update CONFIG_NUMA text

                  CONFIG_NUMA description talk about a bit old thing.
                  So, following changes are better.

                  o CONFIG_NUMA is no longer EXPERIMENTAL

                  o Opteron is not the only processor of NUMA topology on x86_64 no longer,
                  but also Intel Core7i has it.


                  It can reasonably only refer to Intel Core i7 CPUs released or announced per spec by that time. That would be the Bloomfield processors, based on the Nehalem microarchitecture, which moved the memory controller from the Northbridge onto the CPU (which AMD had done in 2003 with the Opteron/AMD64) and introduced QuickPath Interconnect/QPI (as pendant to AMD's HyperTransport) for CPU/CPU and CPU/IOH (IO hub, ex-Northbridge) interconnection.



                  The Bloomdale i7 CPUs were the first entries in the new Core i{3,5,7} naming scheme. So when that Linux doc text was written, i7 didn't specifically refer to the Core i7 as opposed to i5 (first in 09/2009) or i3 (first in 01/2010), but in all likelihood to the new Nehalem microarchitecture with its integrated memory controller and QPI.



                  There's an Intel press release from 11/2008 on the i7 (Intel Launches Fastest Processor on the Planet) that states that the Core i7 processor more than doubles the memory bandwidth of previous Intel "Extreme" platforms, but doesn't mention NUMA at all.



                  The reason is, I think, that NUMA doesn't matter for desktop PCs, not even for "extreme" ones.



                  NUMA matters for expensive servers that have several CPU sockets (not just several cores on one socket) with dedicated physical memory access lanes (not just one memory controller), so that each CPU has its dedicated local memory, which is "closer" to it than the memory of the other CPUs. (Think 8 sockets, 64 cores, 256 GB RAM.) NUMA means that a CPU can also access remote memory (the local memory of another CPU) in addition to its own local memory, albeit at a higher cost. NUMA is the synthesis of a shared memory architecture like SMP, where all memory is equally available to all cores, and a distributed memory architecture like MPP (Massively Parallel Processing), that gives each node a dedicated block of memory. It is MPP, but it looks like SMP to the application.



                  Desktop motherboards don't have dual sockets and Intel desktop CPUs including extreme i7 editions lack the additional QPI link for dual socket configuration.



                  Check the Wikipedia QPI article to see how QPI is relevant to NUMA:




                  In its simplest form on a single-processor motherboard, a single QPI
                  is used to connect the processor to the IO Hub (e.g., to connect an
                  Intel Core i7 to an X58). In more complex instances of the
                  architecture, separate QPI link pairs connect one or more processors
                  and one or more IO hubs or routing hubs in a network on the
                  motherboard, allowing all of the components to access other components
                  via the network. As with HyperTransport, the QuickPath Architecture
                  assumes that the processors will have integrated memory controllers,
                  and enables a non-uniform memory access (NUMA) architecture.



                  […]



                  Although some high-end Core i7 processors expose QPI, other
                  "mainstream" Nehalem desktop and mobile processors intended for
                  single-socket boards (e.g. LGA 1156 Core i3, Core i5, and other Core
                  i7 processors from the Lynnfield/Clarksfield and successor families)
                  do not expose QPI externally, because these processors are not
                  intended to participate in multi-socket systems. However, QPI is used
                  internally on these chips […]




                  The way an Intel Nehalem CPU on a multi-socket server board makes non-local memory access is via QPI. Also in the article on NUMA:




                  Intel announced NUMA compatibility for its x86 and Itanium servers in
                  late 2007 with its Nehalem and Tukwila CPUs. Both CPU families share a
                  common chipset; the interconnection is called Intel Quick Path
                  Interconnect (QPI). AMD implemented NUMA with its Opteron processor
                  (2003), using HyperTransport.




                  Check this report back from 11/2008 to see that Intel disabled one of the two QPI links on the i7, thus disabling dual-socket configuration, where NUMA applies:




                  This first, high-end desktop implementation of Nehalem is code-named
                  Bloomfield, and it's essentially the same silicon that should go into
                  two-socket servers eventually. As a result, Bloomfield chips come with
                  two QPI links onboard, as the die shot above indicates. However, the
                  second QPI link is unused. In 2P servers based on this architecture,
                  that second interconnect will link the two sockets, and over it, the
                  CPUs will share cache coherency messages (using a new protocol) and
                  data (since the memory subsystem will be NUMA)—again, very similar to
                  the Opteron.




                  So I've been straying away from your question relating my Google research results … You're asking why the Linux docs have started to recommend turning it on in late 2008? Not sure this question has a provably correct answer … We would have to ask the doc writer. Turning NUMA on doesn't benefit desktop CPU users, but doesn't significantly hurt them either, while helping multi-socket users, so why not? This could have been the rationale. Found that reflected in a discussion about disabling NUMA on the Arch Linux tracker (FS#31187 - [linux] - disable NUMA from config files).



                  The doc author might also have thought of the NUMA potential of the Nehalem architecture of which, when the doc was written, the 11/2008 Core i7 processors (920, 940, 965) were the only representatives; the first Nehalem chips for which NUMA would have really made sense are probably the Q1/2009 Xeon processors with dual QPI link such as the Xeon E5520.






                  share|improve this answer






























                    15





                    +50









                    For 64-bit this is recommended if the system is Intel Core i7
                    (or later), AMD Opteron, or EM64T NUMA.


                    First, note that Intel Core i7 is just a marketing designation, and the phrase Intel Core i7 (or later) is very vague. So what could it mean?



                    The Linux kernel Kconfig help text edits mentioning an Intel Core 7i, then corrected to Intel Core i7, were done in November of 2008. The commit log reads:



                    x86: update CONFIG_NUMA description
                    Impact: clarify/update CONFIG_NUMA text

                    CONFIG_NUMA description talk about a bit old thing.
                    So, following changes are better.

                    o CONFIG_NUMA is no longer EXPERIMENTAL

                    o Opteron is not the only processor of NUMA topology on x86_64 no longer,
                    but also Intel Core7i has it.


                    It can reasonably only refer to Intel Core i7 CPUs released or announced per spec by that time. That would be the Bloomfield processors, based on the Nehalem microarchitecture, which moved the memory controller from the Northbridge onto the CPU (which AMD had done in 2003 with the Opteron/AMD64) and introduced QuickPath Interconnect/QPI (as pendant to AMD's HyperTransport) for CPU/CPU and CPU/IOH (IO hub, ex-Northbridge) interconnection.



                    The Bloomdale i7 CPUs were the first entries in the new Core i{3,5,7} naming scheme. So when that Linux doc text was written, i7 didn't specifically refer to the Core i7 as opposed to i5 (first in 09/2009) or i3 (first in 01/2010), but in all likelihood to the new Nehalem microarchitecture with its integrated memory controller and QPI.



                    There's an Intel press release from 11/2008 on the i7 (Intel Launches Fastest Processor on the Planet) that states that the Core i7 processor more than doubles the memory bandwidth of previous Intel "Extreme" platforms, but doesn't mention NUMA at all.



                    The reason is, I think, that NUMA doesn't matter for desktop PCs, not even for "extreme" ones.



                    NUMA matters for expensive servers that have several CPU sockets (not just several cores on one socket) with dedicated physical memory access lanes (not just one memory controller), so that each CPU has its dedicated local memory, which is "closer" to it than the memory of the other CPUs. (Think 8 sockets, 64 cores, 256 GB RAM.) NUMA means that a CPU can also access remote memory (the local memory of another CPU) in addition to its own local memory, albeit at a higher cost. NUMA is the synthesis of a shared memory architecture like SMP, where all memory is equally available to all cores, and a distributed memory architecture like MPP (Massively Parallel Processing), that gives each node a dedicated block of memory. It is MPP, but it looks like SMP to the application.



                    Desktop motherboards don't have dual sockets and Intel desktop CPUs including extreme i7 editions lack the additional QPI link for dual socket configuration.



                    Check the Wikipedia QPI article to see how QPI is relevant to NUMA:




                    In its simplest form on a single-processor motherboard, a single QPI
                    is used to connect the processor to the IO Hub (e.g., to connect an
                    Intel Core i7 to an X58). In more complex instances of the
                    architecture, separate QPI link pairs connect one or more processors
                    and one or more IO hubs or routing hubs in a network on the
                    motherboard, allowing all of the components to access other components
                    via the network. As with HyperTransport, the QuickPath Architecture
                    assumes that the processors will have integrated memory controllers,
                    and enables a non-uniform memory access (NUMA) architecture.



                    […]



                    Although some high-end Core i7 processors expose QPI, other
                    "mainstream" Nehalem desktop and mobile processors intended for
                    single-socket boards (e.g. LGA 1156 Core i3, Core i5, and other Core
                    i7 processors from the Lynnfield/Clarksfield and successor families)
                    do not expose QPI externally, because these processors are not
                    intended to participate in multi-socket systems. However, QPI is used
                    internally on these chips […]




                    The way an Intel Nehalem CPU on a multi-socket server board makes non-local memory access is via QPI. Also in the article on NUMA:




                    Intel announced NUMA compatibility for its x86 and Itanium servers in
                    late 2007 with its Nehalem and Tukwila CPUs. Both CPU families share a
                    common chipset; the interconnection is called Intel Quick Path
                    Interconnect (QPI). AMD implemented NUMA with its Opteron processor
                    (2003), using HyperTransport.




                    Check this report back from 11/2008 to see that Intel disabled one of the two QPI links on the i7, thus disabling dual-socket configuration, where NUMA applies:




                    This first, high-end desktop implementation of Nehalem is code-named
                    Bloomfield, and it's essentially the same silicon that should go into
                    two-socket servers eventually. As a result, Bloomfield chips come with
                    two QPI links onboard, as the die shot above indicates. However, the
                    second QPI link is unused. In 2P servers based on this architecture,
                    that second interconnect will link the two sockets, and over it, the
                    CPUs will share cache coherency messages (using a new protocol) and
                    data (since the memory subsystem will be NUMA)—again, very similar to
                    the Opteron.




                    So I've been straying away from your question relating my Google research results … You're asking why the Linux docs have started to recommend turning it on in late 2008? Not sure this question has a provably correct answer … We would have to ask the doc writer. Turning NUMA on doesn't benefit desktop CPU users, but doesn't significantly hurt them either, while helping multi-socket users, so why not? This could have been the rationale. Found that reflected in a discussion about disabling NUMA on the Arch Linux tracker (FS#31187 - [linux] - disable NUMA from config files).



                    The doc author might also have thought of the NUMA potential of the Nehalem architecture of which, when the doc was written, the 11/2008 Core i7 processors (920, 940, 965) were the only representatives; the first Nehalem chips for which NUMA would have really made sense are probably the Q1/2009 Xeon processors with dual QPI link such as the Xeon E5520.






                    share|improve this answer




























                      15





                      +50







                      15





                      +50



                      15




                      +50





                      For 64-bit this is recommended if the system is Intel Core i7
                      (or later), AMD Opteron, or EM64T NUMA.


                      First, note that Intel Core i7 is just a marketing designation, and the phrase Intel Core i7 (or later) is very vague. So what could it mean?



                      The Linux kernel Kconfig help text edits mentioning an Intel Core 7i, then corrected to Intel Core i7, were done in November of 2008. The commit log reads:



                      x86: update CONFIG_NUMA description
                      Impact: clarify/update CONFIG_NUMA text

                      CONFIG_NUMA description talk about a bit old thing.
                      So, following changes are better.

                      o CONFIG_NUMA is no longer EXPERIMENTAL

                      o Opteron is not the only processor of NUMA topology on x86_64 no longer,
                      but also Intel Core7i has it.


                      It can reasonably only refer to Intel Core i7 CPUs released or announced per spec by that time. That would be the Bloomfield processors, based on the Nehalem microarchitecture, which moved the memory controller from the Northbridge onto the CPU (which AMD had done in 2003 with the Opteron/AMD64) and introduced QuickPath Interconnect/QPI (as pendant to AMD's HyperTransport) for CPU/CPU and CPU/IOH (IO hub, ex-Northbridge) interconnection.



                      The Bloomdale i7 CPUs were the first entries in the new Core i{3,5,7} naming scheme. So when that Linux doc text was written, i7 didn't specifically refer to the Core i7 as opposed to i5 (first in 09/2009) or i3 (first in 01/2010), but in all likelihood to the new Nehalem microarchitecture with its integrated memory controller and QPI.



                      There's an Intel press release from 11/2008 on the i7 (Intel Launches Fastest Processor on the Planet) that states that the Core i7 processor more than doubles the memory bandwidth of previous Intel "Extreme" platforms, but doesn't mention NUMA at all.



                      The reason is, I think, that NUMA doesn't matter for desktop PCs, not even for "extreme" ones.



                      NUMA matters for expensive servers that have several CPU sockets (not just several cores on one socket) with dedicated physical memory access lanes (not just one memory controller), so that each CPU has its dedicated local memory, which is "closer" to it than the memory of the other CPUs. (Think 8 sockets, 64 cores, 256 GB RAM.) NUMA means that a CPU can also access remote memory (the local memory of another CPU) in addition to its own local memory, albeit at a higher cost. NUMA is the synthesis of a shared memory architecture like SMP, where all memory is equally available to all cores, and a distributed memory architecture like MPP (Massively Parallel Processing), that gives each node a dedicated block of memory. It is MPP, but it looks like SMP to the application.



                      Desktop motherboards don't have dual sockets and Intel desktop CPUs including extreme i7 editions lack the additional QPI link for dual socket configuration.



                      Check the Wikipedia QPI article to see how QPI is relevant to NUMA:




                      In its simplest form on a single-processor motherboard, a single QPI
                      is used to connect the processor to the IO Hub (e.g., to connect an
                      Intel Core i7 to an X58). In more complex instances of the
                      architecture, separate QPI link pairs connect one or more processors
                      and one or more IO hubs or routing hubs in a network on the
                      motherboard, allowing all of the components to access other components
                      via the network. As with HyperTransport, the QuickPath Architecture
                      assumes that the processors will have integrated memory controllers,
                      and enables a non-uniform memory access (NUMA) architecture.



                      […]



                      Although some high-end Core i7 processors expose QPI, other
                      "mainstream" Nehalem desktop and mobile processors intended for
                      single-socket boards (e.g. LGA 1156 Core i3, Core i5, and other Core
                      i7 processors from the Lynnfield/Clarksfield and successor families)
                      do not expose QPI externally, because these processors are not
                      intended to participate in multi-socket systems. However, QPI is used
                      internally on these chips […]




                      The way an Intel Nehalem CPU on a multi-socket server board makes non-local memory access is via QPI. Also in the article on NUMA:




                      Intel announced NUMA compatibility for its x86 and Itanium servers in
                      late 2007 with its Nehalem and Tukwila CPUs. Both CPU families share a
                      common chipset; the interconnection is called Intel Quick Path
                      Interconnect (QPI). AMD implemented NUMA with its Opteron processor
                      (2003), using HyperTransport.




                      Check this report back from 11/2008 to see that Intel disabled one of the two QPI links on the i7, thus disabling dual-socket configuration, where NUMA applies:




                      This first, high-end desktop implementation of Nehalem is code-named
                      Bloomfield, and it's essentially the same silicon that should go into
                      two-socket servers eventually. As a result, Bloomfield chips come with
                      two QPI links onboard, as the die shot above indicates. However, the
                      second QPI link is unused. In 2P servers based on this architecture,
                      that second interconnect will link the two sockets, and over it, the
                      CPUs will share cache coherency messages (using a new protocol) and
                      data (since the memory subsystem will be NUMA)—again, very similar to
                      the Opteron.




                      So I've been straying away from your question relating my Google research results … You're asking why the Linux docs have started to recommend turning it on in late 2008? Not sure this question has a provably correct answer … We would have to ask the doc writer. Turning NUMA on doesn't benefit desktop CPU users, but doesn't significantly hurt them either, while helping multi-socket users, so why not? This could have been the rationale. Found that reflected in a discussion about disabling NUMA on the Arch Linux tracker (FS#31187 - [linux] - disable NUMA from config files).



                      The doc author might also have thought of the NUMA potential of the Nehalem architecture of which, when the doc was written, the 11/2008 Core i7 processors (920, 940, 965) were the only representatives; the first Nehalem chips for which NUMA would have really made sense are probably the Q1/2009 Xeon processors with dual QPI link such as the Xeon E5520.






                      share|improve this answer













                      For 64-bit this is recommended if the system is Intel Core i7
                      (or later), AMD Opteron, or EM64T NUMA.


                      First, note that Intel Core i7 is just a marketing designation, and the phrase Intel Core i7 (or later) is very vague. So what could it mean?



                      The Linux kernel Kconfig help text edits mentioning an Intel Core 7i, then corrected to Intel Core i7, were done in November of 2008. The commit log reads:



                      x86: update CONFIG_NUMA description
                      Impact: clarify/update CONFIG_NUMA text

                      CONFIG_NUMA description talk about a bit old thing.
                      So, following changes are better.

                      o CONFIG_NUMA is no longer EXPERIMENTAL

                      o Opteron is not the only processor of NUMA topology on x86_64 no longer,
                      but also Intel Core7i has it.


                      It can reasonably only refer to Intel Core i7 CPUs released or announced per spec by that time. That would be the Bloomfield processors, based on the Nehalem microarchitecture, which moved the memory controller from the Northbridge onto the CPU (which AMD had done in 2003 with the Opteron/AMD64) and introduced QuickPath Interconnect/QPI (as pendant to AMD's HyperTransport) for CPU/CPU and CPU/IOH (IO hub, ex-Northbridge) interconnection.



                      The Bloomdale i7 CPUs were the first entries in the new Core i{3,5,7} naming scheme. So when that Linux doc text was written, i7 didn't specifically refer to the Core i7 as opposed to i5 (first in 09/2009) or i3 (first in 01/2010), but in all likelihood to the new Nehalem microarchitecture with its integrated memory controller and QPI.



                      There's an Intel press release from 11/2008 on the i7 (Intel Launches Fastest Processor on the Planet) that states that the Core i7 processor more than doubles the memory bandwidth of previous Intel "Extreme" platforms, but doesn't mention NUMA at all.



                      The reason is, I think, that NUMA doesn't matter for desktop PCs, not even for "extreme" ones.



                      NUMA matters for expensive servers that have several CPU sockets (not just several cores on one socket) with dedicated physical memory access lanes (not just one memory controller), so that each CPU has its dedicated local memory, which is "closer" to it than the memory of the other CPUs. (Think 8 sockets, 64 cores, 256 GB RAM.) NUMA means that a CPU can also access remote memory (the local memory of another CPU) in addition to its own local memory, albeit at a higher cost. NUMA is the synthesis of a shared memory architecture like SMP, where all memory is equally available to all cores, and a distributed memory architecture like MPP (Massively Parallel Processing), that gives each node a dedicated block of memory. It is MPP, but it looks like SMP to the application.



                      Desktop motherboards don't have dual sockets and Intel desktop CPUs including extreme i7 editions lack the additional QPI link for dual socket configuration.



                      Check the Wikipedia QPI article to see how QPI is relevant to NUMA:




                      In its simplest form on a single-processor motherboard, a single QPI
                      is used to connect the processor to the IO Hub (e.g., to connect an
                      Intel Core i7 to an X58). In more complex instances of the
                      architecture, separate QPI link pairs connect one or more processors
                      and one or more IO hubs or routing hubs in a network on the
                      motherboard, allowing all of the components to access other components
                      via the network. As with HyperTransport, the QuickPath Architecture
                      assumes that the processors will have integrated memory controllers,
                      and enables a non-uniform memory access (NUMA) architecture.



                      […]



                      Although some high-end Core i7 processors expose QPI, other
                      "mainstream" Nehalem desktop and mobile processors intended for
                      single-socket boards (e.g. LGA 1156 Core i3, Core i5, and other Core
                      i7 processors from the Lynnfield/Clarksfield and successor families)
                      do not expose QPI externally, because these processors are not
                      intended to participate in multi-socket systems. However, QPI is used
                      internally on these chips […]




                      The way an Intel Nehalem CPU on a multi-socket server board makes non-local memory access is via QPI. Also in the article on NUMA:




                      Intel announced NUMA compatibility for its x86 and Itanium servers in
                      late 2007 with its Nehalem and Tukwila CPUs. Both CPU families share a
                      common chipset; the interconnection is called Intel Quick Path
                      Interconnect (QPI). AMD implemented NUMA with its Opteron processor
                      (2003), using HyperTransport.




                      Check this report back from 11/2008 to see that Intel disabled one of the two QPI links on the i7, thus disabling dual-socket configuration, where NUMA applies:




                      This first, high-end desktop implementation of Nehalem is code-named
                      Bloomfield, and it's essentially the same silicon that should go into
                      two-socket servers eventually. As a result, Bloomfield chips come with
                      two QPI links onboard, as the die shot above indicates. However, the
                      second QPI link is unused. In 2P servers based on this architecture,
                      that second interconnect will link the two sockets, and over it, the
                      CPUs will share cache coherency messages (using a new protocol) and
                      data (since the memory subsystem will be NUMA)—again, very similar to
                      the Opteron.




                      So I've been straying away from your question relating my Google research results … You're asking why the Linux docs have started to recommend turning it on in late 2008? Not sure this question has a provably correct answer … We would have to ask the doc writer. Turning NUMA on doesn't benefit desktop CPU users, but doesn't significantly hurt them either, while helping multi-socket users, so why not? This could have been the rationale. Found that reflected in a discussion about disabling NUMA on the Arch Linux tracker (FS#31187 - [linux] - disable NUMA from config files).



                      The doc author might also have thought of the NUMA potential of the Nehalem architecture of which, when the doc was written, the 11/2008 Core i7 processors (920, 940, 965) were the only representatives; the first Nehalem chips for which NUMA would have really made sense are probably the Q1/2009 Xeon processors with dual QPI link such as the Xeon E5520.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Jun 2 '14 at 18:34









                      LumiLumi

                      4872 gold badges6 silver badges17 bronze badges




                      4872 gold badges6 silver badges17 bronze badges


























                          2














                          I think if you use the --show switch it might make more sense:



                          $ numactl --show
                          policy: default
                          preferred node: current
                          physcpubind: 0 1 2 3
                          cpubind: 0
                          nodebind: 0
                          membind: 0


                          So you can control the use of physcpubind's like this:



                          $ numactl --physcpubind=+0-2 myapp


                          This would limit the application myapp to the first 2 CPU cores. My system is an i5 with 4 cores.



                          References




                          • numctl man page

                          • numactl --physcpubind

                          • Using NUMA on RHEL 6

                          • Little things I didn’t know: difference between _enable_NUMA_support and numactl






                          share|improve this answer
































                            2














                            I think if you use the --show switch it might make more sense:



                            $ numactl --show
                            policy: default
                            preferred node: current
                            physcpubind: 0 1 2 3
                            cpubind: 0
                            nodebind: 0
                            membind: 0


                            So you can control the use of physcpubind's like this:



                            $ numactl --physcpubind=+0-2 myapp


                            This would limit the application myapp to the first 2 CPU cores. My system is an i5 with 4 cores.



                            References




                            • numctl man page

                            • numactl --physcpubind

                            • Using NUMA on RHEL 6

                            • Little things I didn’t know: difference between _enable_NUMA_support and numactl






                            share|improve this answer






























                              2












                              2








                              2







                              I think if you use the --show switch it might make more sense:



                              $ numactl --show
                              policy: default
                              preferred node: current
                              physcpubind: 0 1 2 3
                              cpubind: 0
                              nodebind: 0
                              membind: 0


                              So you can control the use of physcpubind's like this:



                              $ numactl --physcpubind=+0-2 myapp


                              This would limit the application myapp to the first 2 CPU cores. My system is an i5 with 4 cores.



                              References




                              • numctl man page

                              • numactl --physcpubind

                              • Using NUMA on RHEL 6

                              • Little things I didn’t know: difference between _enable_NUMA_support and numactl






                              share|improve this answer















                              I think if you use the --show switch it might make more sense:



                              $ numactl --show
                              policy: default
                              preferred node: current
                              physcpubind: 0 1 2 3
                              cpubind: 0
                              nodebind: 0
                              membind: 0


                              So you can control the use of physcpubind's like this:



                              $ numactl --physcpubind=+0-2 myapp


                              This would limit the application myapp to the first 2 CPU cores. My system is an i5 with 4 cores.



                              References




                              • numctl man page

                              • numactl --physcpubind

                              • Using NUMA on RHEL 6

                              • Little things I didn’t know: difference between _enable_NUMA_support and numactl







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited May 23 '17 at 11:33









                              Community

                              1




                              1










                              answered Sep 25 '13 at 12:58









                              slmslm

                              266k74 gold badges575 silver badges721 bronze badges




                              266k74 gold badges575 silver badges721 bronze badges


























                                  2














                                  I've been researching the same thing for my desktop PC while building my kernel on my own. I have decided to disable NUMA after much research. My CPU is a Core i7 3820 which has 8 processors with HT. This page helped my come to my decision.



                                  disable NUMA from config files



                                  In summary, NUMA is only worthwhile if you have more than 1 CPU socket (regardless of cores). There is a very small hit to processing power on 1 CPU Socket machines even with multiple cores, but it is hardly noticeable so most distributions leave it enabled as it will provide a huge benefit to servers and machines with more than 1 socket.






                                  share|improve this answer
































                                    2














                                    I've been researching the same thing for my desktop PC while building my kernel on my own. I have decided to disable NUMA after much research. My CPU is a Core i7 3820 which has 8 processors with HT. This page helped my come to my decision.



                                    disable NUMA from config files



                                    In summary, NUMA is only worthwhile if you have more than 1 CPU socket (regardless of cores). There is a very small hit to processing power on 1 CPU Socket machines even with multiple cores, but it is hardly noticeable so most distributions leave it enabled as it will provide a huge benefit to servers and machines with more than 1 socket.






                                    share|improve this answer






























                                      2












                                      2








                                      2







                                      I've been researching the same thing for my desktop PC while building my kernel on my own. I have decided to disable NUMA after much research. My CPU is a Core i7 3820 which has 8 processors with HT. This page helped my come to my decision.



                                      disable NUMA from config files



                                      In summary, NUMA is only worthwhile if you have more than 1 CPU socket (regardless of cores). There is a very small hit to processing power on 1 CPU Socket machines even with multiple cores, but it is hardly noticeable so most distributions leave it enabled as it will provide a huge benefit to servers and machines with more than 1 socket.






                                      share|improve this answer















                                      I've been researching the same thing for my desktop PC while building my kernel on my own. I have decided to disable NUMA after much research. My CPU is a Core i7 3820 which has 8 processors with HT. This page helped my come to my decision.



                                      disable NUMA from config files



                                      In summary, NUMA is only worthwhile if you have more than 1 CPU socket (regardless of cores). There is a very small hit to processing power on 1 CPU Socket machines even with multiple cores, but it is hardly noticeable so most distributions leave it enabled as it will provide a huge benefit to servers and machines with more than 1 socket.







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Mar 8 '15 at 16:26









                                      PersianGulf

                                      7,3354 gold badges37 silver badges63 bronze badges




                                      7,3354 gold badges37 silver badges63 bronze badges










                                      answered Mar 8 '15 at 15:39









                                      Anthony S.Anthony S.

                                      211 bronze badge




                                      211 bronze badge


























                                          1














                                          In a PC with at most one CPU, NUMA is totally useless. Feel free disable it in your own kernel.



                                          You can always control CPU bonding by taskset(1).






                                          share|improve this answer






























                                            1














                                            In a PC with at most one CPU, NUMA is totally useless. Feel free disable it in your own kernel.



                                            You can always control CPU bonding by taskset(1).






                                            share|improve this answer




























                                              1












                                              1








                                              1







                                              In a PC with at most one CPU, NUMA is totally useless. Feel free disable it in your own kernel.



                                              You can always control CPU bonding by taskset(1).






                                              share|improve this answer













                                              In a PC with at most one CPU, NUMA is totally useless. Feel free disable it in your own kernel.



                                              You can always control CPU bonding by taskset(1).







                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered Oct 11 '13 at 3:19









                                              b166erb166er

                                              962 bronze badges




                                              962 bronze badges

































                                                  draft saved

                                                  draft discarded




















































                                                  Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                                  • Please be sure to answer the question. Provide details and share your research!

                                                  But avoid



                                                  • Asking for help, clarification, or responding to other answers.

                                                  • Making statements based on opinion; back them up with references or personal experience.


                                                  To learn more, see our tips on writing great answers.




                                                  draft saved


                                                  draft discarded














                                                  StackExchange.ready(
                                                  function () {
                                                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f92302%2fenabling-numa-for-intel-core-i7%23new-answer', 'question_page');
                                                  }
                                                  );

                                                  Post as a guest















                                                  Required, but never shown





















































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown

































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown







                                                  Popular posts from this blog

                                                  Hudson River Historic District Contents Geography History The district today Aesthetics Cultural...

                                                  The number designs the writing. Feandra Aversely Definition: The act of ingrafting a sprig or shoot of one...

                                                  Ayherre Geografie Demografie Externe links Navigatiemenu43° 23′ NB, 1° 15′ WL43° 23′ NB, 1°...