Windows 7 On Multicore — How Much Faster?
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."
Suck it, nerds.
Nooo! I was hoping that power consumption would continue to increase! Sooner or later our PCs would require 1.21GW!
It pays to be obvious, especially if you have a reputation for being subtle.
'What might be surprising is that Windows 7's multithreading changes did not deliver more of a performance punch,'
No, it's not surprising.
Great minds think alike; fools seldom differ.
I have an Abit IP35-Pro motherboard. I mostly run Linux but occasionally boot to Windows 7 for some games. Almost always Windows 7 will screw up my BIOS to the point that the automatic CPU fan control no longer works (requiring a hard power-off to fix).
Suck it, Microsoft drone.
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.
Seeing the performance increase and in some cases decrease from Vista to 7, I don't see that as a selling feature either.
What does intrigue me is the ability of the OS to allocate threads to the different cores. That is something I would want to learn more about.
Basically, unless you're on a workstation and running intensive applications, you're not going to benefit from buying Windows 7 for an old machine.
It's NOT me! It's the meds! I'm on 1000mg of Fukitol.
What the new languages and OS's are doing, are just making it easier for developers to make code that runs on parallel processors. However most of us are not trained to write parallel code. And there are some algorithms that cannot be parallelized. What the moderns OS are doing is taking code that was designed to run multi-threaded or parallel in the first place and in essence have them run more efficient on multi-processors. As well as giving you some tools to make development easier and stop us from trying to work around all those conflicts that distracts us from software development. Much like how String classes came common for developers so we didn't need to fuss around with allocations just to do some basic string manipulation... (Alocate space, calculate the memory offset insure the last character was a 0x00...) aka making development really easy for buffer overflow errors if you missed a step.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
More like Windows Vista was the beta of Windows 7.
Those of use that skipped Vista would do well to pick up 7, which while flawed, seems to me to be the best of the Windows home operating systems.
Caffeine is my anti-drug!
Duranin - A NWN2 Roleplaying Persistent World
The article is about major changes in the scheduler and their effects. How can you have major kernel changes, but claim that it is just "refurbished Vista"?
People complained long and loud about Vista. Microsoft addressed all of the complaints, and produced an OS that is faster, easier to use, and consumes less power. Now, people are complaining that this new OS is just "refurbished Vista". Was Vista just "refurbished XP"? Was XP just "refurbished Win95"?
...permitting Windows 7 to scale up to 256 processors without performance penalty, but delivering little performance gains for systems with only a few processors...
So you're disappointed Microsoft doesn't magically speed up your single or dual-core PC? Maybe you're expecting too much.
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.
I am TheRaven on Soylent News
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.
I am TheRaven on Soylent News
Do you mean the BKL? It's hurt, but it's still there
IranAir Flight 655 never forget!
Suck it, transitive property.
In the article,t he numbers show that Vista SP2 gives a clear edge over Win XP SP3 in every case. I'm surprised that this wasn't commented on, given the general perception of Vista's sluggishness.
As for Windows 7 being an improved OS, yes it is. It is a substantial improvement over XP and Vista in a variety of ways such as security, virtualization support, performance on multi-core processors, support for 64-bit processors, desktop usability etc. Perhaps none of them matter to you or don't matter enough to switch but that's besides the point.
I see you are using Windows 7... :)
Do what thou wilt shall be the whole of the Law
They tested Windows ULTIMATE, the best of the newest against the oldest patched-up version of XP. And it only saved a marginal amount of power. and may be slightly faster in some operations. What about the versions that the average Joe is going to be running? There are Starter, Home, Home Premium, Professional, and Ultimate; each with an increasing price requirement (http://windows.microsoft.com/en-us/windows7/products/compare). How does the "basement" version compare to XP SP3 (or against the various flavors of XP)? Still not apples-to-apples (oh, I hate the puns from that), but might give a better representation of what's going on.
Chaos maximizes locally around me.
What you're probably thinking of is patch for the Big Kernel Lock(BKL) in Linux which basically was the origin of SMP scaling in Linux. This article is talking about the kernel dispatcher lock in NT. Two separate things.
Why did you even post this? You just posted that you had no reason for posting on this thread.
"What might be surprising is that Windows 7's multithreading changes did not deliver more of a performance punch"
Umm, it may be surprising to any alien who is just visiting our planet, however for people who have bought Microsoft software in the past, this is the norm. Every OS successor ever written by Microsoft (except perhaps MS-DOS 5.0) has 1) required faster hardware, greater memory and has delivered 2) The same or inferior performance. It's not all _bad_, Microsoft does tend to add some bells and whistles. However these are hard to justify (eg: why the FUCK does my Microsoft Keyboard driver consist of 80 MEGABYTES?) - especially when now most of those bells and whistles involve "protecting" the user (and especially Hollywood) from "pirated software"... or trying to dance around huge holes in the OS' security by spamming the user every 5 mins so that their legal team can turn around and say "if your machine got infected, it had to be YOUR fault".
No, if you want to see REAL performance improvements, I suggest linux.
This post will be modded down by Microsoft shills in 5, 4, 3...
Seven puppies were harmed during the making of this post.
You need to learn how to read, because the reality described in the article is nothing like what you are saying. Additionally, no, "that kind of thing" that you are incorrectly describing was not "fixed" in the Linux kernel "like, at least 5-10 years ago." The Linux of 5-10 years ago had some of the worst use of global locking around. This isn't even about global locks, though; it is about replacing one particular lock implementation's use of a global mutex while modifying lock data structures to embedding the mutexes within the lock data structures.
Anytime a thread wants to access an item that might be claimed by another thread, it must use a lock to make sure that only one thread at a time can modify the item. Prior to Windows 7, when a thread needed to get or access a lock, its request had to go through a global locking mechanism. This mechanism -- the kernel dispatcher lock -- would handle the requests. Because it was unique and global, it handled potentially thousands of requests from all processors on which Windows ran. As a result, this dispatcher lock was becoming a major bottleneck. In fact, it was a principal gating factor that kept Windows Server from running on more than 64 processors.
New locking mechanism
Windows 7 includes a wholly new mechanism that gets rid of the global locking concept and pushes the management of lock access down to the locked resources. This permits Windows 7 to scale up to 256 processors without performance penalty. On systems with only a few processors, however, the old kernel dispatcher lock was not overburdened, so this new mechanism provides no noticeable improvement in threading performance on desktops and small servers.
Brian Fundakowski Feldman
This has been how linux has done it since like the 80s when SMP was introduced. SunOS does it this way, UNIX did it this way, is there actually a multi-threading model that doesn't involve processor affinity? Besides the small textbook examples that are oversimplified and not useful in the real world....
Support my political activism on Patreon.
Is that really the best you can come up with?
Some of us have actually don't development on large Unix servers. There
really isn't any reason the OS should be getting in the way. The
bottlenecks should be all in your applications. A well built application
should be able to light up your entire server, fully exploit all of it's
hardware and scale well while doing it.
Whether or not you overwhelm your scheduler is also something that should
be an application problem rather than an OS problem.
A Pirate and a Puritan look the same on a balance sheet.
DOS attack on tntshoes.com in 3, 2, 1....
Payless Shoes posting spam for Discount Online Shoe Superstore in 3, 2, 1...
Support my political activism on Patreon.
Except this isn't an article about how "the one true word processor" doesn't have a Linux version.
This is about basic OS level functionality that's very easy to quantify and is not vulnerable to rhetoric and sophistry.
A Pirate and a Puritan look the same on a balance sheet.
Mac users can't use a Windows desktop too easily if they haven't been previously exposed.
Windows users have issues with OSX.
The use of Windows is learned, like anything else. Most normal people can't use Windows worth a damn either, they can click the blue E and then complain their computer got slow and they don't know how to install a printer....
Support my political activism on Patreon.
If I'm reading the chart correctly, it appears that Vista rivals Windows 7 in all benchmarks and even beats it in a couple.
Ru-roh, Shaggy. That's not good. I thought Windows 7 was supposed to be the Vista Apology version?
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
This test was only using a single socket system. Perf differences from XP are going to be greater on a NUMA multisocket systems like Barcelona or Nehalem. XP predates NUMA on the PC architecture, while Vista and Win 7 got a lot of tuning for it.
This can be a big help for video encoding and other highly multithreaded tasks.
My video compression blog
Comment removed based on user account deletion
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.
Actually I find most windows users take to OSX far faster than a Mac person takes to windows.
I have to train new users at a clients office on OSX once a month, they catch on incredibly fast and most have never used OSX.
I'd say that Windows is a major failure in the Useability. People switching away from it to OSX learn faster than those switching to it from OSX.
Do not look at laser with remaining good eye.
Yet users only care about running Word processors, not how the kernel is built so long as it allows them to run the word processor.
And I'm not even talking word processors... the desktop interface if Linux is behind both Windows and Mac, and has been for about a decade now. My point, since you so clearly missed it, is that Linux has its strengths, which is a better performing kernel, and Windows has its strengths, which is that is an OS your average consumer can use.
The intelligence level of so many comments, one after another make me feel like I'm on CNet.
I better leave before my IQ level gets diminished too far and I too start foaming at the mouth.
Virtualbox supports multiple VCPUs.
Why would anybody expect Windows 7 to be magically faster at crunching numbers? It's 100% CPU dependent and no OS can speed up your CPU.
Because the OS certainly has an ability to slow the whole process down... There many things Windows does to handle setting up, managing and tearing down the processes to do all that number crunching. If Windows does a better job there, then the performance (especially when splitting the job up over many cores) will be better.
I bet a lot of enterprises don't have a Corei5/i7 to actually save from a complete core powe down that nahelems can do. I bet in a few years, this will help desktop comps a lot more as they get upgraded. Also, Win2k8 R2 share a lot of this stuff and a Dual socket i7 Xeon could potentially save a lot of power during low use times
For a moment there I read that headline as "Windows 7 on Medicare". I know Windows is getting old, but I didn't think it was quite there yet!
Typically, when you've swapped out a process on the CPU, most of the L1 cache is going to be evicted by the next process which runs. A considerable amount of data will remain in the L2 cache but the L1 cache will be quite polluted by the intermediate processes that run between time slices. Therefore, L2 is the more important consideration.
The system they performed testing on has a CPU with a single shared L2 cache so processes moving between CPU cores are not necessarily slower than processes parked on a single core. Since the L2 is shared, there are no L2 cache misses introduced by swapping cores.
A CPU that would better show performance improvements on Windows 7 by higher thread affinity would be one with a split L2 cache like the Intel Kentsfield Core 2 Quad Q6600. The Q6600 would have a lot of L2 cache misses on Vista and XP that would be eliminated by the optimization in Windows 7.
Then try testing it on one of the new Mac Pros. 8 physical cores 16 with hyper threading....
And use a lot of L3 cache shared across all processors.
The i7 CPUs sure as hell aren't priced according to cost anyway.
Because the OS certainly has an ability to slow the whole process down.
UAC PROMPT:
Hello user!
I took 20 seconds to appear, and only did so underneath all visible windows and without a taskbar window of my own. Looks like you found alt+tab!
Did you really mean to do what this application said you did?
| Yes | No | What? (Yes) |
Hmmm. Nope. Not funny.
You could have gotten a chuckle with "comparing Apples and Ballmers here.". Better luck next time.
I hate bloat but are there performance issues with modern PCs for average users? Vista superfetching apps so they load quicker is a benefit for most people. Vista not needing to reboot as often after updates is also a benefit. Vista being a bit slower on head-to-head challenges is not going to be noticed by most people.
Dumping on Vista for a moderate overall performance drop is not going to get Joe Average on your side. Jane VideoEncoder and Connie CopyQueen will notice, but do not represent a sizeable part of the market.
Personally I am most bothered by Vista/7's Big Brother moves (protected video path), stupid interface changes and that brain dead "upgrade" of file moving/copying. But looking at what I just typed, I still don't think the average user is ever going to notice/bump into any of these limits/downgrades.
Time to rethink how we critique Windows.
I come here for the love
"For this review, we used three identical hard drives, each preloaded by Dell with the latest versions of Windows XP Professional, Vista Ultimate, and Windows 7 Ultimate -- all 32-bit -- with the latest drivers the company makes available."
Fact: Everything I say is fiction.
I'd love to, but I'd rather buy a new car instead of a Mac Pro if I'm going to be dropping down $25k.
"The tree of liberty must be refreshed from time to time with the blood of patriots and tyrants." ~Thomas Jefferson
I am definitely interested in how Windows 7 fares in the world but ... I'm pretty sure this was posted as an infoworld.com link bait piece. 5 links to various infoworld pieces.
Wonder who is watching their analytics today rubbing their hands laughing ...
There was this guy named Turing and he invented this notion of a test.
It's rather germane at the moment.
A Pirate and a Puritan look the same on a balance sheet.
Like I said: rhetoric and sophistry.
That's all you Lemmings have.
The best you can do is belittle Open Office like you belittled Smart Suite before it.
Frankly, I would rather run a platform where I can run
the tool of my choosing that suits me rather than being
pressured into conforming to the mindless herd.
msword sucks. It has always sucked. I did not need to
start using Linux in order to come to this realization
or to use something else (on Windows).
The difference between a market leader and a monopoly is
that you are always free to completely ignore a market
leader.
A Pirate and a Puritan look the same on a balance sheet.
Yes, it _is_ refurbished Vista... that doesn't make it a bad thing, but there is a reason the version number was not incremented to v7.0.
XP was descended from the NT line, it has nothing to do with the Win9x architecture, no XP is not refurbished Win95.
Vista was a major architecture change from XP, notably in the audio/video path. Again, not a refurbished instance of the previous version.
Contrast that with Vista vs. 7, which are much more closely related. Its easy to see why people have the idea that 7 is more akin to a big service pack to Vista. Or as my buddy so eloquently put it: "Windows 7 is essentially Vista with liposuction and a boob job".
What could possibly hurt the security of the American people more than giving our own government the ability to hide its
I also find it odd that if you are currently running Windows XP quite happily on, say, a single core Pentium 4 CPU with 1GB RAM and a 400W PSU, why this would be a power saving when you probably need a dual-core CPU with 4GB RAM running a 500W CPU to get Windows 7 running equally as fast?
Gentoo Linux - another day, another USE flag.
I was really hoping this would have been fixed eventually, but in addition to enabling support for automatic processor/fan throttling in your BIOS, you must also configure Windows to use these features. In the "Power Options" (not sure what it's called in Windows 7) in the control panel, you need to set the power scheme to "Minimal Power Management." Different power management profiles enable different strategies for throttling hardware into lower power states in about the most non-obvious way possible. Anyway, I hope that works for you. (This also applies to Windows XP. Not sure about Windows 2000, though.)
Interesting commentary. Keeping threads on their own cores is something I've predicted would help in certain situations for some time -- ever since I saw one CPU-intensive application jump randomly between two otherwise idle Pentium Pro 200's on an SMP OS/2 Warp Server box way back when.
Is there a simple way to test this theory about processor affinity in isolation? I just so happen to have a Q6600 here, running Vista x64, and it sure would be interesting to see for myself if 7 makes any meaningful improvements on this chip.
Kid-proof tablet..
How does it compare to Grand Central Dispatch?
Ahhh iam a Technet subscriber.
I have been running the Windows 7 RTM 64-bit edition on my AMD.
Here's what i have to say:
1) You need the AMD dual core optimizer to ensure Windows 7 uses both cores fully, especially in games. Microsoft can say it is not needed. But from practical point i saw it was needed. Before AMD DCO the boot time to GUI was 28 seconds. After AMD DCO it came down to 19 seconds. Figure it out.
2) On my 4GB DDR2 RAM system, its wicked fast. Primary drive was IDE, switched to SATA and i would say it became faster. With IDE the boot time was 33 seconds.
2) The UAC is tamed. Yes it is.
3) Instead of readyBoost, i use eBooStr with 256MB RAM and a flash drive cache of 1GB. Kinda works well, i would say.
4) nVidia drivers actually are faster than same joke of Vista.
5) Self-tuning is evident. I have seen Windows 7 cache slowly accommodate and tune itself over boot ups.
6) The annoying reboot dialog after updates is gone. You can disable it or ask it to prompt you after one or 4 hours.
7) Games run Slowly with DirectX 11. Company of heroes launches slowly has a slower frame rate but consumes less memory. I switched to DirectX 9 and even though launch is still slow, it runs faster.
8) Brutally efficient memory management. I disabled 2Gb and launched Win7 with just 2GB. Its boot time was slightly up, but programs still ran faster and snappy. Of course it disabled some funky Aero UI.
"Doing what i can, with what i have." ~ Burt Gummer
task manager in vista & 7 allows you to assign processor affinity
I have used linux but windows 7 get things done a lot faster on the desktop... More GREAT Software and Games too... unlike many linux apps... Windows is still the best for the desktop
In the near future, we'll hear Steve Balmer say "256-core should be enough for anyone"
The day Microsoft creates a product that doesn't suck, it will be known as the Microsoft Vaccuum Cleaner!
Microsoft didn't do it right in Vista and is screwing you by making you pay for their bug fix. It would be nice to see a law suite and for anyone who purchased Windows 7 to get a large rebate.
Apparently more people agree with me, which is why once MS started selling windows on netbooks, it quickly overtook the ones loaded with Linux.
but yea, keep your head in the sand... your attitude is exactly why Linux won't beat MS anytime soon, and why I went BACK to Windows after using linux for years.
Sure. But so what?
It's my understanding that with 7, I shouldn't have to goof with things like that. I've got better things to do than waste time assigning processes to cores manually -- any potential savings in cache efficiency is going to be swamped by all of the effort I've invested in dicking around with it.
Did you read the article, or the comment that I was replying to?
Kid-proof tablet..
My experience upgrading several machines:
Pentium 4 HT 1.5GB RAM: XP-32 to 7-32. 2-3% slower.
AMD Athlon 64 4000+ 1.5 GB RAM: XP-32 to 7-64. About 10% faster. Very old XP partition, though. Never re-installed after 4 years.
Atom N270 1.6 GHz netbook 2GB RAM. XP-32 to 7-32. 2-3% slower.
Core 2 Duo 2.8 GHz 4GB RAM: XP-32 to 7-64. 200-300% faster. Yes, 2 to 3 times faster. Not sure why, but Windows 7 screams on this machine.
Quad core 6600 8GB RAM: Vista-32 to 2008 Server-64 to 2008 R2-64. 12-20% faster and again 10-15% faster.
This is all subjective, but to some extent that's what matters when selling OSes. BTW, there is no way in heck that Vista runs on those first 3 machines. There is documented evidence online that it is a miserable experience trying.
Peter predicted that you would "deliberately forget" creation 2000 years ago...