Coffeehouse Thread

31 posts

Windows 7 on more than 4 cores

Back to Forum: Coffeehouse
  • User profile image
    Dodo

    Dovella said:

    PS try this solution

     

    Start -> Msconfig ................

     

    Generic Forum Image

     

    unchek ALL

    That's a bad idea. Windows automatically detects the number of cores and can use 256 at once. If Windows doesn't use all 8 cores under load situations, that's a BIOS issue. Intel Core iX and Xeon 5500 CPUs disable cores to save power and turn them back on when needed. This however requires BIOS and operating system support. Using the BIOS, power capping can be forced to do all kinds of funny things, though. Usually you'll find relevant options there.

    You shouldn't change the kernel options from the defaults, that may have funny results. If for whatever reason those options were set, there should have been a reason for it, even if unchacked is the default.

  • User profile image
    ZippyV

    Dodo said:
    Dovella said:
    *snip*

    That's a bad idea. Windows automatically detects the number of cores and can use 256 at once. If Windows doesn't use all 8 cores under load situations, that's a BIOS issue. Intel Core iX and Xeon 5500 CPUs disable cores to save power and turn them back on when needed. This however requires BIOS and operating system support. Using the BIOS, power capping can be forced to do all kinds of funny things, though. Usually you'll find relevant options there.

    You shouldn't change the kernel options from the defaults, that may have funny results. If for whatever reason those options were set, there should have been a reason for it, even if unchacked is the default.

    You didn't read his advice.

  • User profile image
    sushovande

    Dovella said:

    PS try this solution

     

    Start -> Msconfig ................

     

    Generic Forum Image

     

    unchek ALL

    Thanks for the tip Dovella, but that suggestion is for boot time only. I was wondering about normal execution after boot. And they were already unchecked from the beginning, I did not change that.

     

    I would like to reiterate that I find all my cores work to full capacity when the CPU gets busy, so Windows is doing things right already. I was merely curious why Windows chose to keep some specific cores idle. For example, in Ubuntu under very light load, I find that 2 cores are being used at any given time, and it cycles in a round-robin manner.

  • User profile image
    Ion Todirel

    ScanIAm said:
    sushovande said:
    *snip*

    Take the plunge.  I'm on an AMD 4-core Phenom II @ 3.4 GHz and I frikkin love X64.  I was kind of worried about compatibility with drivers and such, but so far, the only thing that doesn't work well is:

     

    Juice: I couldn't find a better podcast program

    IOmega's drivers for a terrabyte NAS.  Luckily, Win 7 recognizes the paths natively, so no big loss.

     

     

    uhm UPnP, why do you need drivers for NAS?

  • User profile image
    littleguru

    sushovande said:
    Dovella said:
    *snip*

    Thanks for the tip Dovella, but that suggestion is for boot time only. I was wondering about normal execution after boot. And they were already unchecked from the beginning, I did not change that.

     

    I would like to reiterate that I find all my cores work to full capacity when the CPU gets busy, so Windows is doing things right already. I was merely curious why Windows chose to keep some specific cores idle. For example, in Ubuntu under very light load, I find that 2 cores are being used at any given time, and it cycles in a round-robin manner.

    Well... as mentioned before Windows might do core parking. This means that the cores are shut down and power is saved. In my opinion that's an ideal behaviour because why would you keep all cores powered up if you only need a subset of them because of not much really going on?

  • User profile image
    Dovella

    sushovande said:
    Dovella said:
    *snip*

    Thanks for the tip Dovella, but that suggestion is for boot time only. I was wondering about normal execution after boot. And they were already unchecked from the beginning, I did not change that.

     

    I would like to reiterate that I find all my cores work to full capacity when the CPU gets busy, so Windows is doing things right already. I was merely curious why Windows chose to keep some specific cores idle. For example, in Ubuntu under very light load, I find that 2 cores are being used at any given time, and it cycles in a round-robin manner.

    no, sorry, perhaps I expressed myself badly.
    This is a bug in Windows 7

     

    You have to deselect everything.

    see here

  • User profile image
    Sven Groot

    Dovella said:
    sushovande said:
    *snip*

    no, sorry, perhaps I expressed myself badly.
    This is a bug in Windows 7

     

    You have to deselect everything.

    see here

    The thread you just linked to has nothing to do with this problem. In that thread the guy didn't reinstall Windows so he was still using a uniprocessor HAL. That isn't a bug either.

  • User profile image
    mastermine

    sushovande said:
    ZippyV said:
    *snip*
    7-zip benchmark. What do the columns mean?

    CPU Usage                Rating/Usage           Rating
    505%                          2180 MIPS                   11013 MIPS

    The results seem low for an i7 920 i am running the same processor and i got with the system busy at the time of testing

    CPU Usage                Rating/Usage           Rating
    635%                          2499 MIPS                   15860 MIPS

     

    Running Windows 7 x64 and 12GB RAM

  • User profile image
    QuickC

    This little block of code will is used in a console app to test throuput on threads.

    TOTAL can be equal to 1 to 64

    Try 9 threads on an 8 core machine, seven run at the same speed, and two run at one-half

    Try 4 threads then 5 threads.... the scaling is exactly linear right from 1 to 8

     

    Imports System
    Imports System.Threading
    Imports System.Threading.Tasks
    
    Module Module12
        Private TOTAL As Integer = 8 - 1   'array size = number of threads starting a zero (ex. 8-1 = 8threads)
        Private ClassThreadHolders(TOTAL) As LoopThread 'array of classes
        Private ThreadArray(TOTAL) As Thread      'array of threads
        Private TotalAccumIncs As Long
        Private AccumIncs As Integer
    
        <MTAThread()>
        Sub Main()
            Dim n As Integer = 0                  'local loop var used in fors
            Dim ThreadPrintLoop As New Thread(AddressOf PrintLoop)
    
            Console.WriteLine("Building threads...")
            For n = 0 To TOTAL                                      'for each thread
                ClassThreadHolders(n) = New LoopThread                            'assign the class
                ThreadArray(n) = New Thread(AddressOf ClassThreadHolders(n).ActualThread) 'assign the pointer to the thread function
            Next
    
            Console.WriteLine("starting threads...")
            For n = 0 To TOTAL          'for each thread
                ThreadArray(n).Start()          'start the thread
            Next
    
            Console.WriteLine("Starting Printloop...")
            ThreadPrintLoop.Start()                'start printing thread
    
            Console.WriteLine("Waiting for keypress...")
            Console.ReadKey()                       'wait for key
            End                                     'orderly shutdown
        End Sub
    
        Private Sub PrintLoop()    'thread to print data on
            Do                      'infinite loop of thread
                Thread.Sleep(1000)    'sleep 1000 = 1 sec delay
                For j As Integer = 0 To TOTAL      'for each thread
                    ClassThreadHolders(j).Grab()    'force the grab
                Next
                TotalAccumIncs = 0
    
                Console.Clear()
                For j As Integer = 0 To TOTAL
                    AccumIncs = ClassThreadHolders(j).GetGrabbed
                    TotalAccumIncs += AccumIncs
                    Console.Write(Format(AccumIncs, "000,000,000,000     "))
                Next
                Console.Write(vbCrLf + Format(TotalAccumIncs, "000,000,000,000     "))
            Loop
        End Sub
    
        Public Class LoopThread         'need a class to have a pointer to a function that can be arrayed
            Private GrabbedInc As Integer
            Private Inc As Integer = 1    'class var must be fully declared
            Private GrabFlag As Boolean
            Private num As Double = 10
            Private num2 As Double = 5
    
            Public Sub ActualThread()         'sub on the thread
                Do                              'infinite loop of thread
                    If GrabFlag = True Then
                        GrabFlag = False
                        GrabbedInc = Inc
                        Inc = 0
                    End If
                    'num = num * num2 / 50
                    Inc += 1
                Loop
            End Sub
    
            Sub Grab()
                GrabFlag = True
            End Sub
    
            Public ReadOnly Property GetGrabbed() As Integer
                Get
                    Return GrabbedInc
                End Get
            End Property
    
        End Class
    
    End Module
    

     

  • User profile image
    intelman

    I thought this was a result of Windows 7 knowing which cores are virtual cores, and it prioritizes the real cores instead of the virtual cores.

  • User profile image
    staceyw

    FWIW. 64-bit is nothing but a pain to me. No silverlight on 64 IE for one. Had IE back button issues until just the other day a SP seemed to fix it Smiley.  Drivers lag behind and not as tested as the more popular 32. Other strange print and pdf issues can pop up with apps like QB and more. I would just change back to win7 32 if it was not so much work at this point. I want to love it, but just do not see where it helps me in any way. 

  • User profile image
    Clint

    If you want to stress your system, throw video encoding at it.  It is one of the few things that will pretty much always stress a system.  I have a Core2Quad at home and a i7 at work, it is one of the few things that spikes my processor now a days.

  • User profile image
    Clint

    @staceyw: really?  I've been on x64 Win7 builds since it was in beta, I run x64 builds for most apps and stuff works great.  I will say older hardware tends to not have x64 drivers however.

    Only real driver issue I had was a driver from a USB wifi adapter that was pretty old.  While I'm not thrilled when it effects me, I do understand when hardware makers do stuff like that.  There is a cost for making and supporting.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.