Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Windows Microsoft Power Hardware IT

Windows 7 On Multicore — How Much Faster? 349

snydeq writes "InfoWorld's Andrew Binstock tests whether Windows 7's threading advances fulfill the promise of improved performance and energy reduction. He runs Windows XP Professional, Vista Ultimate, and Windows 7 Ultimate against Viewperf and Cinebench benchmarks using a Dell Precision T3500 workstation, the price-performance winner of an earlier roundup of Nehalem-based workstations. 'What might be surprising is that Windows 7's multithreading changes did not deliver more of a performance punch,' Binstock writes of the benchmarks, adding that the principal changes to Windows 7 multithreading consist of increased processor affinity, 'a wholly new mechanism that gets rid of the global locking concept and pushes the management of lock access down to the locked resources,' permitting Windows 7 to scale up to 256 processors without performance penalty, but delivering little performance gains for systems with only a few processors. 'Windows 7 performs several tricks to keep threads running on the same execution pipelines so that the underlying Nehalem processor can turn off transistors on lesser-used or inactive pipelines,' Binstock writes. 'The primary benefit of this feature is reduced energy consumption,' with Windows 7 requiring 17 percent less power to run than Windows XP or Vista."
This discussion has been archived. No new comments can be posted.

Windows 7 On Multicore — How Much Faster?

Comments Filter:
  • by bsDaemon ( 87307 ) on Wednesday October 21, 2009 @09:49AM (#29822747)
    Is this really that surprising? I mean, splitting threads over different cores, having two cores still isn't going to be that much faster than one. I wouldn't expect to see much a gain just from this any more than I would on Linux or BSD. Still, every little bit helps.
  • Ouch (Score:5, Informative)

    by TheRaven64 ( 641858 ) on Wednesday October 21, 2009 @10:12AM (#29823029) Journal

    I should know better than to click on InfoWorld links, but I think I just lost about 10 IQ points as a result of reading that article.

    In summary, Windows 7 now tries to keep threads on the same processor. It has been known for about 15 years that this gives better cache, and therefore overall, performance. Any scheduling algorithm developed in the last decade or so includes a process migration penalty, so you default to keeping a thread on a given processor and only move it when that processor is overly busy, another one is not, and the difference is greater than the migration penalty (which is different for moving between contexts in a core, between cores, and between physical processors, due to different cache layout). This also helps reduce the need for locking in the scheduler. Each CPU has its own local run queue, and you only need synchronization during process migration.

    If Vista, or even Windows Server 2003, didn't already do this, then I would be very surprised. FreeBSD and Linux both have done for several years, and Solaris has for even longer. Fine-grained in-kernel locking is not new either; almost every other kernel that I know of that supports SMP has been implementing this for a long time. One of the big pushes for FreeBSD 5 (released almost a decade ago) was to support fine-grained locking, where individual resources had their own locks, and FreeBSD was a little bit behind Linux and a long way behind Solaris in implementing this support.

  • Re:Power savings (Score:5, Informative)

    by VGPowerlord ( 621254 ) on Wednesday October 21, 2009 @10:13AM (#29823041)

    From what I've seen, unless you're on a Core i7, you're not getting the power savings.

    The 17% power savings mentioned on page 3 of the article is primarily for the Intel Xeon 3500 and 5500 lines (the Nahalem processors), which shut off power to cores that aren't being actively used. The other linked articles go into this more in depth.

  • by TheRaven64 ( 641858 ) on Wednesday October 21, 2009 @10:17AM (#29823067) Journal
    Lots of things affect performance. One of the big things is cache usage. A L1 cache miss costs around 10 cycles these days. A L2 cache miss costs 200 or more. If you move a process (or thread) between cores on the same die with a shared L2 cache, then every load or store instruction for a little while will cause a L1 cache miss. If you move them between processors with no shared cache, then every access will cause a L2 cache miss. If, every time you schedule a thread, it is on a different processor then, given that a typical scheduling quantum is only 10ms, your thread will spend most of its time loading data from main memory to cache. This will show up as 100% CPU usage, but will only be getting something like 10% of the maximum theoretical throughput for that CPU. Improve processor affinity, and you can easily see a large speedup relative to this.
  • by RiotingPacifist ( 1228016 ) on Wednesday October 21, 2009 @10:20AM (#29823117)

    Do you mean the BKL [wikipedia.org]? It's hurt [lwn.net], but it's still there [google.co.uk]

  • by wbo ( 1172247 ) on Wednesday October 21, 2009 @10:21AM (#29823125)
    I actually have a system using that same motherboard. The BIOS on this board does have a tendency to run the CPU fan at full speed after rebooting. Even when it does work, it does not do a very good job at adjusting fan speeds based on the CPU temperature.

    In my experience it is best not to rely on the BIOS control on these boards and instead use a software solution to adjust the fan speeds.

    Under Windows you can use the Abit uGuru software to automatically adjust fan speeds based on temperature thresholds you specify which works quite well (at least under XP and Vista, haven't tested it on Windows 7 yet.) You can also use SpeedFan, but I prefer the Abit utility since it appears to react to temperature changes a bit faster.

    I haven't run Linux on this board but you may be able to find a Linux application that is also capable of adjusting fan speeds.
  • by Hadlock ( 143607 ) on Wednesday October 21, 2009 @10:22AM (#29823131) Homepage Journal

    Maybe he's a mac user. 10.1-> 10.2 -> 10.3 all sped up my 550 mhz powerbook back in the day. 10.4 was the first OS update to slow down my computer (10.3.9 was screaming fast on my laptop). 10.4.1 fixed some speed issues, and by the time 10.4.5 came out it was nearly as fast as 10.3.5 or so. So it's possible to upgrade your OS and end up with a faster feeling system. There used to be a mac benchmarking site, mac feats that documented that each release was in fact marginally faster in most every aspect.

  • by L4t3r4lu5 ( 1216702 ) on Wednesday October 21, 2009 @10:32AM (#29823269)
    Latest ABIT BIOS resolves a lot of issues with the temperature sensor on IP35 boards. Check the ABIT forums.

    And work on your Google-fu.
  • Re:Not Really (Score:5, Informative)

    by RicktheBrick ( 588466 ) on Wednesday October 21, 2009 @10:51AM (#29823467)
    I do volunteer work for world community grid. I use to run 7 computers. I now run 4 quad computers. A quad will beat 4 computers in work done and will use less electricity than 4 computers running at comparable speeds. My electricity bill went down when running the 4 quads than it was with the 7 computers and daily contribution has more than doubled.
  • Re:Not Really (Score:3, Informative)

    by gzipped_tar ( 1151931 ) on Wednesday October 21, 2009 @10:53AM (#29823503) Journal
    Correct me if I'm wrong, but GCD seems to be a user-space parallelism library, while TFS is talking about kernel-space task scheduling. I hate the unintended (and bad) pun but I think you were comparing apples and oranges here.
  • by orudge ( 458780 ) on Wednesday October 21, 2009 @10:59AM (#29823593) Homepage

    Windows 7 (as well as I think certain versions of Vista) provides support for booting from EFI rather than a BIOS. While, yes, it's still a "BIOS-like" bootstrap loader, Windows 7 is not reliant on any specific BIOS functions.

  • by Kijori ( 897770 ) <ward,jake&gmail,com> on Wednesday October 21, 2009 @11:05AM (#29823665)

    You don't even need to *have* a BIOS to run Win7.

    Err... you DO know what first takes control of the computer when you turn it on right?

    That would be a firmware interface. BIOS is one example of a firmware interface - and is the defacto standard on a PC - but it isn't the only one. You can indeed run all recent versions of Windows without a BIOS.

  • Re:Not Really (Score:5, Informative)

    by Jah-Wren Ryel ( 80510 ) on Wednesday October 21, 2009 @11:06AM (#29823689)

    not surprising because the OS really can't do that much to improve (or mess up) the performance of user-mode code that isn't making many OS calls anyways.

    Others have already mentioned scheduling and cache thrashing, I'd like to add memory management. There are lots of ways memory management choices can degrade performance, sometimes drastically.

    One example is page sizes and the TLB - each cpu has a hardware TLB [wikipedia.org] which is like a cache of virtual page to physical page address maps. Hardware TLB look-ups are fast, but the TLB is only of limited size and when a virtual address is not in the hardware TLB, the OS has to take a fault and walk its own software-maintained TLB that holds the complete list of virt2phys translations. That's a couple of orders magnitude slower than getting it from the hardware TLB.

    One way to reduce TLB misses is to use larger pages. So an OS that is smart enough to automagically coalesce 4K pages to 4MB (or larger, depending on the hardware) pages can significantly improve TLB performance. In a pathological case, that could result in a 100x-1000x speed-up, in typical cases where it is going make an difference you'll probably see ~10% performance improvement.

    Another related example is how shared memory is handled. Every page of virtual memory has a PTE [wikipedia.org] which, at the most basic level, contains the virt2phys translation. When shared memory is used, a decision must be made - are the PTEs shared, or does each process get a separate copy of the PTEs for the shared memory. Downside of sharing PTEs is that the shared memory must be mapped at exactly the same virtual address in each process that uses it, so if one of those processes already has something else at that address, it won't be able to use the shared memory. The downside of using separate copies of PTEs is that you can really suck up a lot memory for just the PTE list -- imagine 50 processes that all share on chunk of 100MB of memory, if they all get their own PTE copies for that 100MB its the equivalent of 5GB worth of PTEs. If a PTE itself takes up 32 bytes, then that's at least 40MB of PTE entries just to manage that 100MB of memory. A 40% overhead is huge and then there is the issue of hardware TLB misses which, depending on the implementation, may have to search all PTEs in the system, so the more PTEs the worse a TLB miss will hurt performance.

  • Comment removed (Score:5, Informative)

    by account_deleted ( 4530225 ) on Wednesday October 21, 2009 @11:09AM (#29823709)
    Comment removed based on user account deletion
  • Re:Not Really (Score:2, Informative)

    by Anonymous Coward on Wednesday October 21, 2009 @11:11AM (#29823731)

    Why would Microsoft implement GCD when they already have ConcRT [msdn.com] which appears to be a better (more scalable) implementation of the same functionality?

    So that when I write code that uses GCD I don't have to rewrite it to port it to Windows?

    And while the NT 3.1 TCP stack was based on the BSD TCP stack, that TCP stack was replaced in Win95/NT4.

    Yet I can still write a piece of software that uses BSD sockets calls and port it to Windows by changing little more than a couple of header includes.

  • by petermgreen ( 876956 ) <plugwash@nOSpam.p10link.net> on Wednesday October 21, 2009 @11:11AM (#29823733) Homepage

    XP X64 sucks
    Do you have a source for that claim, i've only run it briefly but the only real issue I found was driver availibility.

    and it is most assuredly not the same thing on any level as Win2K3 server.
    The server specific functionality has of course been stripped out and the crippling adjusted but afaict the version of the major components is the same and it even uses the same hotfixes and service packs as the x64 version of server 2003.

  • by Gadget_Guy ( 627405 ) on Wednesday October 21, 2009 @11:16AM (#29823775)

    Windows 7 is NOT as or Faster than XP. PERIOD, stop the lies already.

    Did you even read the article? There's a simple performance table on the first page, followed by the analysis:

    These results suggests that when considering Windows 7, performance should be viewed as a reasonable justification for upgrading from Windows XP, but not a driver for migration from Vista.

  • Comment removed (Score:3, Informative)

    by account_deleted ( 4530225 ) on Wednesday October 21, 2009 @11:27AM (#29823881)
    Comment removed based on user account deletion
  • by lukas84 ( 912874 ) on Wednesday October 21, 2009 @11:44AM (#29824129) Homepage

    Only the 64bit versions do. Granted, all UEFI enabled machine (except some Macs) are 64bit capable, but it's still important.

  • by lukas84 ( 912874 ) on Wednesday October 21, 2009 @11:45AM (#29824149) Homepage

    Windows can do CPU microcode updates:

    http://support.microsoft.com/kb/936357 [microsoft.com]

  • by Anonymous Coward on Wednesday October 21, 2009 @12:13PM (#29824499)

    Err... you DO know what first takes control of the computer when you turn it on right? The BIOS. SOMETHING has to load the MBR from disk and execute it.

    Never used EFI [wikipedia.org] before?

  • by mister_playboy ( 1474163 ) on Wednesday October 21, 2009 @12:25PM (#29824647)

    I use FF 3.5.3 on Ubuntu 9.04, and it behaves exactly as the grandparent describes. In fact, loading a tab with a /. story in it sometimes takes so long that compiz grays out the whole FF window in the same way that Windows tags a window title with (Not Responding).

    Whatever the cause of this behavior, it is definitely annoying.

  • Re:Not Really (Score:3, Informative)

    by Ephemeriis ( 315124 ) on Wednesday October 21, 2009 @01:20PM (#29825425)

    Im not surprised. I think we're going to find that as people start taking Win7 apart that its not too much different from Vista because Vista itself was pretty efficient to begin with. The Vista bashing was really unjustified and after you got over issues like old drivers, old hardware, and pre-SP1 UAC, you pretty much have Win7.

    Vista had issues, no matter how you look at it.

    The lead-up to Vista was just plain stupid. Microsoft was advertising it like the second coming. It's a freaking OS! If you do it right, people don't even notice the OS because it gets out of their way and lets them do their work. With Vista, Microsoft seemed to forget that their job wasn't to produce the single flashiest piece of software on the computer, but rather to make that computer run all the other software better.

    The GUI was an improvement over XP - I never did like XP's Fisher Price colors. But that's really about it.

    The driver update was probably necessary, especially with everything moving towards 64-bit finally, but it was handled poorly. I don't think Microsoft pushed hardware manufacturers hard enough. And they didn't do enough to accommodate old hardware. The rend result was a lot of broken hardware that just plain was not going to work.

    The same thing happened with software. Microsoft really didn't push developers to fix their code, and didn't do much to accommodate old code, so you wound up with a bunch of broken code.

    UAC was a joke. Yes, it got better. And in Win7 it is genuinely useful. But UAC, as it was at Vista launch, was a joke.

    Then you had all the new DRM-y stuff bolted on to the OS, slowing things down. Remember the file copy/NIC/sound playback issues?

    And the "Vista Capable" stickers... That was fun. Advertising computers as being able to run software that they couldn't actually run - good idea!

    It may very well be that Win7 is simply Vista done right... But that simply means that Vista was done wrong in the first place, and Win7 is what they should have released a couple years ago.

  • Re:Not Really (Score:4, Informative)

    by lukas84 ( 912874 ) on Wednesday October 21, 2009 @02:51PM (#29826883) Homepage

    There's a multitude of possible migration paths to take, to go from Windows XP to Windows 7 - in fact there is only one migration path that's exclusive to Windows Vista - the inplace upgrade.

    The inplace upgrade is a horribly bad idea, and you should never try or consider it.

    So, for any reasonable person, the migration paths available from XP to 7 are exactly the same as from Vista to 7. A new, clean install, followed by a migration of application settings.

    If you're a home user, use Windows Easy Transfer to save all your settings to an external drive, reinstall, then recover your settings from the external drive. Reinstall all apps.

    If you're a business user, there's a wealth of options available to you - check out the documentation for MDT2010, which can provide you with all the tools you need to roll out Windows 7 in your company. USMT and Windows Easy Transfer are the same under the hood - so user settings can be migrated.

    A good place to start is the Windows 7 springboard:
    http://technet.microsoft.com/en-us/windows/default.aspx [microsoft.com]

  • Comment removed (Score:3, Informative)

    by account_deleted ( 4530225 ) on Wednesday October 21, 2009 @03:41PM (#29827521)
    Comment removed based on user account deletion
  • You obviously haven't used Windows 7.

    Sigh, I've seen this script so many times before.

    Yes, I have used Win 7. It is widely available and has been for a long time. I have a copy of it I can boot right now if I feel it'd achieve anything. No, it is not exciting. No, it is not particularly fast, just a little quicker than the previous MS release, which was widely considered sluggish. No, it will not help me do anything better than XP. No, there is no real point in "upgrading". Yes, I know this will be modded to oblivion for being heresy.

If all else fails, lower your standards.

Working...