locked
Set Processor Affinity, or somehow avoid using CPU0 RRS feed

  • Question

  • It seems that many system services, especially networking without RSS, rely heavily on CPU0 in the system.  Is there a way to make HPC NOT use CPU0, or CPU0 and CPU1?

    Background:
    I am using HPC Pack 2016 with a mix of Server 2012 R2 Compute Nodes and Windows 7/8/8.1/10 Workstation Nodes.  I have set all Nodes to have two less Subscribed Cores than their total (N-2), and was hoping that would allow System Services to still be responsive.  All of our jobs are setup with "Core" as the job resource, with typically just one core allocated to each Task.  We aren't using MPI, rather creating hundreds of single core Tasks under each Job.  Results have been fantastic!

    My Head Node is also a Compute Node, as well as a few other Compute Nodes are handling various processes for the HPC environment, like a SQL server and a File Server.  ALL of those dual-purpose Nodes become extremely unresponsive during HPC Job execution, with all the first (N-2) cores running at 100% usage, but the last 2 cores at 0%.

    Or is there some other way to handle this that I'm not thinking about yet?

    Thanks!
    -Matt

    BTW, thank you so much to the HPC Pack team.  I am loving this product!

    Wednesday, March 29, 2017 2:30 PM

All replies

  • Hi Matt,

      You might check to disable the Affinity Setting from the scheduler configuration. Our default behavior is to set affinity for all Non-Exclusive jobs that what the last 2 cores are always 0%. To modify this setting, you just need to:

      Launch admin console --> Options --> Job Scheduler Configuration --> Affinity Tab --> Select "No jobs" option


    Qiufang Shi

    Thursday, March 30, 2017 1:10 AM
  • Thanks for the response!

    After updating the Affinity settings to "No Jobs", the load was spread amongst ALL cores on the compute nodes.  Even with an N-2 core subscription for each node, the HPC tasks used 75-90% CPU activity, on ALL cores on the nodes.  That did allow the Nodes to remain responsive as well as other local services operated effectively. While not exactly what I had in mind, the solution recommended has accomplished the end goal.  End goal being keeping the Compute Nodes responsive during HPC Jobs, specifically other local services like SQL and/or File Server.

    I guess I'm a little concerned that the Core Subscription is not functioning as one would think it should. I would have guessed that if there are 8 Cores on a node, and I only subscribe 6 of them, two would remain untouched by HPC Tasks.  Which was the case prior to making the Affinity setting change recommended above.

    Thoughts on adding that as a feature?  Similar to Microsoft SQL Server, you can configure the SQLServer.exe process to use specific CPUs or NumaNodes.

    Monday, April 3, 2017 4:02 PM
  • Thanks Matt for reporting the result.

    The feature you are talking about we may do differently from subscription. I may not share the details now but indeed we are looking into it.


    Qiufang Shi

    Thursday, April 6, 2017 7:34 AM
  • Hi, I came across this question from a google search, is there a way to keep cpu 0 free? The job manager allocates cores and starts from 0, however, when a task runs on cpu 0 it stalls the job manager preventing submission of more jobs. I’m sure most wont run a node/worker on the same machine,
    Monday, May 25, 2020 11:35 AM