Scheduling and Responsiveness

In a single processor system (without Hyper Threading), the OS can only send one instruction thread to the CPU for execution at a time.  But, you can run two applications at the same time and they can both be using up CPU time.  In order to understand how this is possible, you have to understand a bit about how scheduling works.

As its name implies, the OS' scheduler schedules tasks.  It takes the unlimited number of tasks that are requested of the OS, and schedules them to get done in the quickest way possible (in theory) on limited hardware resources. 

When running a single application, the job of the scheduler is simple - the single active application gets all of the CPU's time for as long as it needs it.  But what happens when you switch away from that active application and try to click on the Start Menu?  Your usage experience would be pretty poor if you had to wait until your active application was done with its tasks before the scheduler would take the time to handle your Start Menu request.  Imagine that your active application was 3ds max and you were rendering a scene that was going to take hours to complete. Would you be willing to wait hours for your Start Menu to appear?

Modern day OSes understand that this linear approach to scheduling isn't very practical, so they support pre-emptive multitasking, meaning that one task can pre-empt another before it is finished executing, and steal CPU time so that it may get some work done as well.  In the previous example, the Start Menu request would pre-empt the 3D rendering process and your menu would pop up and the 3D rendering would resume immediately following that.  Given that microprocessors these days are so fast, this rotation through tasks sent to the CPU occurs seamlessly to the end user, or at least it does most of the time. 

There are times when the scheduler's work is not as transparent as it should be.  In some cases, especially in Windows, processes will not always be able to pre-empt one another.  If you're running two time-consuming, CPU intensive tasks, you may not notice, but if you're running one and trying to open a file or just click on a menu at the same time, then the hiccup is far more noticeable.  The end result is usually a significantly delayed reaction to your input, such as a menu taking multiple seconds to appear instead of being an instantaneous response to your clicking.  Anyone who runs more than one application at a time has undoubtedly encountered this type of a situation. Luckily, there are solutions.

Intel's Hyper Threading was one way around the problem. By fooling the scheduler into thinking that it can dispatch two threads simultaneously, situations like the one above were usually avoided assuming that the CPU had the appropriate resources free.  Dual core is another solution to the problem, a far more robust one, since you literally have twice the processor resources.

The result of using a HT enabled or dual core system is better responsiveness when multitasking, but how do you quantify that?  Unfortunately, it is extremely difficult to quantify response time in these situations.  Even if we could easily quantify the response time improvements, is a snappier system when multitasking worth more than another 15% more performance in single threaded applications?  How about 25%?  It's a very different way of looking at the impact of a CPU to overall system performance, but it is an issue that we will have to tackle a lot more moving forward. 

The Intangible Dual Core Characterizing Dual Core Performance
Comments Locked

141 Comments

View All Comments

  • Hans Maulwurf - Monday, April 4, 2005 - link

    #27 thats because these benches are opted for HT and dual core. Everybody should know they are not typical for usage of a desctop PC.
    Maybe dual core will be a good thing, but to value its implementation you have to compare it to, for example, a dual Xeon.

    If I would take this review seriously we all should have buyed dual CPU systems some time ago. But some time ago nobody could show dual CPU desctop systems are useful.

    Why did this change so radicially? Is it really the way we use our computers or is it just the way you benchmark when allowed to be one of only very few Intel-previewers?
  • Son of a N00b - Monday, April 4, 2005 - link

    #11, next time label you post with *Caution Fanboy Post* so I do not waste my time reading your comments that are biased and misinformed...

    w0w! great preview, I cannot wait until six months from now you doing a head to head match up with SLI, dual core cpu rigs from both AMD and Intel....it should be very interesting indeed....Cannot wait to see what AMD's performancee is...it could go either way....

    Anyway great article, keep up the great work that keeps us all coming back, it must be hell to come up with new benchmarks for these systems.

    w00t go anandtech and dualies!
  • MaxisOne - Monday, April 4, 2005 - link

    Hey Not even 1 Game Benchmark ? and wheres the temps ??
  • MaxisOne - Monday, April 4, 2005 - link

  • cbuchach - Monday, April 4, 2005 - link

    I think these are the first benchmarks I have seen where Hyperthreading was shown to make a significant performance difference outside of video encoding tasks or a few other specialized apps.

    Overall I think Hyperthreading amongst the enthusiast community has never held much worth mostly because it has little impact on gaming performance. But these benchmarks clearly show in my eyes that whether it be the single-core/hyperthreading or dual core chips, Intel is the way to go. I of course am not a big gamer but nonetheless most computer users, especially power users at least do some moderate multitasking. Having two virtual or real cores really does improve the computing experience up unitl this point, in mostly immeasurable ways.
  • redpriest_ - Monday, April 4, 2005 - link

    When can I buy one? =P

    These previews will probably be followed up by shipping versions 6 months from now.
  • AtaStrumf - Monday, April 4, 2005 - link

    WAU this was a shocker! Sure didn't expect dual cores so soon.

    Great preview Anand! It covered all of the areas I was interested in and it basicly confirmed all my expectations.

    It seems that one thing that can still bring dual cores to a grind is the I/O bottleneck. With everything going dual lately and with RAID controllers being as common as USB ports and HDDs being pretty cheap, I think it's time you retested how much of an impact RAID can have on desktop performance. If I remember correctly it was you who said that RAID made no sense on desktop, which essentially killed my burning desire to get one. What about now? If we're going dual we might as well go all out.
  • tynopik - Monday, April 4, 2005 - link

    try running stuff with software raid5 eating up cpu cycles
  • Beenthere - Monday, April 4, 2005 - link

    Hyperthreading does NOT significantly improve system performance unless the software is written for hyperthreading and there is damned little of that currently available. Dual core when execurted properly offers a considerable performance advantage. Intel's cobbled mess is sure to be a nightmare and when all the facts are known it will be impossible to conclude otherwise despite the cheerleading of the media.
  • sri2000 - Monday, April 4, 2005 - link

    #14 - As you say the enterprise market is where multi-processor rigs live (whether dual-cpu or dual-core), it's also where dual-core makes it's best financial case.

    ie. when Microsoft came out to say that their software license pricing will treat a dual-core cpu as a single processor (as opposed to pricing it as a dual-proc), that really gives businesses (especially small ones with tight budgets) a great incentive for getting dual-core servers (not to mention for those who're using Linux).

    And since AMP will get dual-core Opterons out ahead of dual-core Xeons, it's an opportunity to get some nice growth in their small business server market share.

Log in

Don't have an account? Sign up now