locked
Less CPU cores used by Windows 8.1 compared to Windows 7.1 RRS feed

  • Question

  • Hi,

    It looks like Windows 8.1 uses less CPU cores in multiprocessing compared to that of Windows 7.1 !

    For example when eight (8) simultaneous processes were started by a tested program with threads and each with active pipes for control messages and queues for data messages

    Vista  used all CPU cores, for example four(4) of four(4) available CPU cores

    Windows 7.1 used all CPU cores, for example four(4) of four(4) available CPU cores

    whereas

    Windows 8.1. used mostly only two (2), sometimes a little bit third but never the fourth CPU core !

    What is the reason to this ?

    How to tune Windows 8.1 ?

    Software is tested and provides detailed analysis of process, pipe, queue activities.

    Results are ok.

    Problem: Windows 8.1. performance is not as good as that of Windows 7.1 and Vista

    Processes and thread are being activated in the same way as before.

    Any tips more than welcome!

     

    Monday, June 2, 2014 6:15 PM

Answers

  • By the way, in a more direct answer to your issue:

    I have a dual Xeon X5690 workstation with 12 physical cores and Hyperthreading.  Here's a benchmark comparison as run on Win 8.1 (in red) vs. Win 7 (in blue).  The numbers show a very slight degradation in performance by Win 8.1 - not really noticeable.  PerformanceTest is well-aware of multiple cores.

    Notably I have everything set for high performance.

     

    -Noel


    Detailed how-to in my eBooks:  

    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options

    • Marked as answer by EMMmmmmmm Friday, June 20, 2014 1:07 AM
    Sunday, June 8, 2014 8:09 PM

All replies

  • There was enhancement in performance of Windows 8.1 and that's why it utilized CPU better. However , normally Windows 8.1 should work faster than previous version of Windows unless there is an problem with application.
    Monday, June 2, 2014 6:20 PM
  • Is Windows 8.1 Enterprise Evaluation faster than Vista and Windows 7.1 ?

    The Windows 8.1. Enterprise Evaluation Build 9600 was used running applications tested earlier in Windows 7.1 and Vista OS.

    There are  no problems in applications using multiprocessing and threads.

    Instead it looks like there might be problems in  Windows 8.1. Enterprise Evaluation Build 9600

    because it does not use all available CPU cores as it should.

    Windows 8.1 most propably would work faster if it used all available cores because

    a. multiprocessing apps could use all CPu cores

    b. processes would be faster

    c. interprocess communication with queues and named pipes would be faster

    - to name few things

     

     

      

    Monday, June 2, 2014 7:35 PM
  • Hi,

    You can use the Process affinity to make all the processors available for an application

    however not all applications are programmed to use all threads, some application only use less cores, such as two or three cores,  that's enough, so even set the affinity, it still use less hardware. I think it's not a bad design. especially for some poorly behaviour program which can hog the CPU time, force it to use a specific core rather than all cpu cores is very useful for the whole system performance.


    Yolanda Zhu
    TechNet Community Support

    Tuesday, June 3, 2014 9:09 AM
  • Thank You for the answer !

    I agree,  a well designed OS should handle the cases as You wrote.

    However, these applications are well designed.

    These apps use processes.

    If a system has only one CPU core, systems simulate processes with threads and apps don't see it.

    Because named pipes are used for command and control messages apps have to wait which allows

    OS possibility to allocate CPU cores to other apps.

    Queues are used by processes to get and put data and in the same way OS gets chance to give time to other apps.

    Is there difference how processes are being served by Windows 8.1 and earlier Windows versions ?

    Are Windows 8.1 interprocess communication methods such as named pipes and queues different to those of earlier Windows versions ?

    Windows Vista and Windows 8.1 handled multiprocessing well - as does Linux.

    Whereas Windows 8.1 looks to always keep the last CPU core "parked" all the time and 

    too many of other available CPU cores idle which worries a lot !

    There may not be a specific .exe file to be tuned when apps are created and run dynamically.

    What kind of changes have been done for multiprocessing in Windows 8.1 ?

    How to tune to achieve at least the same CPU core utilization level as under Vista and Win 7.1 ? 

      

    Tuesday, June 3, 2014 6:44 PM
  • What kind of changes have been done for multiprocessing in Windows 8.1 ?   

    Sounds like a Power conserving feature.  Check for that possibility?



    Robert Aldwinckle
    ---

    Tuesday, June 3, 2014 10:01 PM
  • Windows 8.1 is slower at a lot of things than Windows 7.  File system operations, for example.  I don't think there's a rational way to explain it, since Microsoft claims it's supposed to be faster.

    But that's not why I'm here.

    You've piqued my curiosity...  What's Windows 7.1?  A fully updated Windows 7 system is still called Windows 7 as far as I know.  There's a Service Pack 1 - is that what you mean?

     

    -Noel


    Detailed how-to in my eBooks:  

    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options

    Sunday, June 8, 2014 7:50 PM
  • By the way, in a more direct answer to your issue:

    I have a dual Xeon X5690 workstation with 12 physical cores and Hyperthreading.  Here's a benchmark comparison as run on Win 8.1 (in red) vs. Win 7 (in blue).  The numbers show a very slight degradation in performance by Win 8.1 - not really noticeable.  PerformanceTest is well-aware of multiple cores.

    Notably I have everything set for high performance.

     

    -Noel


    Detailed how-to in my eBooks:  

    Configure The Windows 7 "To Work" Options
    Configure The Windows 8 "To Work" Options

    • Marked as answer by EMMmmmmmm Friday, June 20, 2014 1:07 AM
    Sunday, June 8, 2014 8:09 PM
  • Hi Robert,

    Balanced is the one I have.

    Thursday, June 26, 2014 12:16 PM
  • Hi Noel,

    Yes, Windows 7 with service pack 1

    Thursday, June 26, 2014 12:17 PM
  • Thanks Yolanda !

    Can I use this Process affinity service/feature before running an exe file ?

    Could I set/allow CPU cores for python.exe permanently ?

    In 64-bit Windows Vista and 64-bit Windows 7 SP1 one could run software designed for multiprocessing in one Command Promt so that all CPU cores were used by the Operating System.

    Under Windows 8.1 it looks like one has to open one Command Promt for each CPU core.

    Example with four (4) CPU cores amd eight (8) concurrent processes each with 33 concurrent threads

    Vista:         4 CPU cores in use and one Command prompt and one python.exe

    Win 7 SP1:  4 CPU cores in use  and one Command prompt and one python.exe

    Win 8.1:      4 CPU cores in use only if 4 Command prompts and four python.exe

    3 CPU cores in use if 3 Command prompts and three python.exe

    2 CPU cores in use if 2 Command prompts and two python.exe

    1 CPU cores in use if 1 Command prompt and one python.exe

    Note 1: each process activated uses as its task the kind of program which activates threads i.e. the program which creates processes does not wait a process to have executed its tasks when activating the next process

    Note 2: there is nothing wrong is the software design used, it is based on the standard multiprocessing and multi-threading model used in several OS platforms such as Linux (embedded too) and Vista/Win7

    Note 3: trace (txt and xml) proves that all processes run in the system OK, interprocess mechanisms, pipes, queues and everything works fine  in Linux/Vista/Win 7 and even in Win 8.1 - it is only Win 8.1 which does not allocate all CPU cores although system had capacity to use all its CPu cores !

     

    Thursday, June 26, 2014 1:26 PM
  • Thanks Robert,

    I use balanced

    Thursday, June 26, 2014 1:27 PM
  • Hi,

    Do I have to login as administrator to be able to use Process affinity ?

    Is there API for it to call from a program ?

    How to set it in the system start-up ?

    Wednesday, July 9, 2014 11:19 AM