Lopsided CPU usage when running trading software?

Discussion in 'Hardware' started by Bolimomo, Mar 29, 2010.

  1. I have built my new custom computer using the processor:

    Intel i7 930 2.8GHz

    And I installed 12GB of memory.

    I like the new computer's performance in general. Quite a bit faster than my old one based on AMD Athlon 64 X2 (B) 4800+ 2.5 GHz. But I have 2 curiosity points about my new setup. I appreciate it that you hardware experts give me some clues.

    When I used the Windows Task Manager (Performance tab) to monitor the CPU usage, I saw 8 different "CPU Usage History" windows instead of 2 like on my old box. Where are there 8 of them? Is it proportional to the number of cores and hyper threading?

    What I saw was that the window #8 seemed to be over 60% to 70% busy all the time. But the other 7 windows - the CPU cycles are hardly used (under 10%). What is causing this lopsided CPU usage? I would imagine that the work would be more or less uniformly distributed among all cores. Does it mean the application has to support multi-core or hyper threading in order for the application to take advantage of all available processing power?

    One last thing: I have 12GB of physical memory. I verified that the Windows operating system (Vista Home) sees it. It did indicate 12GB total. But in this Performance tab, it seemed to only see a total of 2GB memory. Any idea what's going on there? A configuration mismatch somewhere?

    [​IMG]
     
  2. The following is taken from the System Properties window.

    The CPU type and total physical memory size were picked up correctly. (12GB). I don't know why it is listed as 2GB in the Windows Task Manager app.

    [​IMG]
     
  3. rwk

    rwk

    It looks like you have a 32-bit version of Vista installed.

    Since it's a new computer, you might consider installing Win7 instead.
     
  4. Microsoft deliberately limits Windows Vista Home Premium 32-bit to only 'see' 2GB RAM per 32-bit process or 4GB total.

    Upgrade to Windows 7 Home Premium 64-bit or better to see your full 12GB RAM.

    http://msdn.microsoft.com/en-gb/library/aa366778(VS.85).aspx

    A single process is not uniformly distributed among cores, rather each process is assigned to a particular core.
     
  5. Thank you for your quick response, rwk and EllisWyatt. That makes a lot of sense. I will work on getting Windows 7 64-bit.

    Any other additional comments will be appreciated.
     
  6. Banjo

    Banjo

    You can assign a process to a core. In XP, task manager> processes>right click CPU >set affinity.
     
  7. Corey

    Corey

    A thread only runs on one core at a time. If your application is single-threaded, it will only run on one core. What core it is assigned to comes from the operating system. Often, you will also see the process being reassigned from core to core as threads are rescheduled.

    So yes -- you need multi-threaded applications to take advantage of multiple cores. What the real benefit is, for you, will be in having multiple applications running at once, all on different cores (though, then the disk, memory, and network IO becomes the main constraint for performance...)
     
  8. I built a dedicated trading box similar to what you just built. I've ran XPx64, WindowsServer2008x64 and Win7x64 on it.

    My advice is to run the Win7x64. If you want some cool tips & tricks as well as some logical explainations of what at first appears very whacky, look under the Software heading on this venue.

    Just curious: What's your fsb on that box?
     
  9. On top:

    Windows tries to move applications to one core. There is this feature called "core parking" that llows it to shut down cores that are not in use if the processor supports it - but for that, obviously, the cores must be (semi) idle.

    So, a single single threaded applicaiton that does not use up the core - is one cre in use.

    Note that this "shuting down cores" is acutally good - SUPER modern CPU's actually go into higher frequencies than normal (overclock) if cores get shut down, on the basis they still are allowed to draw the same amount of power as CPU. This is not the "illegal" end user overclocking - it is a feature supported by the processor in hardware. Cores get shut down (C6 state, i think), the others may raise their frequency to keep the thermal design limit.
     
  10. Confused... i7 CPUs have the memory controller onboard therefore no FSB.

    Bolimomo - You have a 32-bit operating system. 32-bit OS has a 3.2GB kernel and therefore is limited to only ever being able to use a max of 3.2GB of RAM. I have never used Vista so I can not confirm that they limited it to 2.0GB but in your picture it shows that you have not activated the product and that updates are available - try updating and try activating.

    Finally, you see 8-cores instead of 4-cores because the i7 chips use hyperthreadding which I do not understand fully, but it allows one core to split a process between two cores... or something like that - its like a virtual core rather than a physical one.

    See if your Vista license is eligable for free W7 upgrade and go for the 64-bit version if possible so you can use all 12GB of RAM.
     
    #10     Mar 31, 2010