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
POST A COMMENT

141 Comments

View All Comments

  • Da DvD - Wednesday, April 6, 2005 - link

    Many of you are making a huge mistake. You are proposing insane multitasking tests to 'bring these processors to their knees'. This is wrong! Since when do we adjust the review to the product?
    This is similar to only running benchmarks whose working sets fit completely into the 2mb cache of a new cpu. In other words, when you review a product like this, do NOT suddenly change all your variables, keep them as you always had them. Later on, you can adjust variables (tests), and draw your conclusions accordingly.

    Also, I hope people understand that when Anand would have run these test on a dual Xeon 3.2 system, the results would have been virtually the same. You ALREADY KNOW dual cpu systems can be twice as fast as single cpu systems in certain tests, and show no improvement at all in others.

    I really appreciate the article in general, but it would have been SO much better when the PICTURE would have been complete. For this, a dual Opteron system and a dual Xeon system should have been included, AND the tests should have a reflected typical user workloads. If for some reason all cpu's would have been dualcore already, -I- still wouldn't be importing PST files while running my games. Again, when reviewing something, it's wrong to adapt the workload to the product. This is why some people now question your integrety, Anand, because quickly reading through the article DOES give the impression Dual-Core is THE thing, while there's so much it is not!

    And yes, i do realize you don't have dual Opteron/Xeon rigs at hand, but still, you choose to present this incomplete picture. It was a choice, but not necessarily the correct one ;-)

    Regards,

    DvD
    Reply
  • Zebo - Wednesday, April 6, 2005 - link

    Anand for game marks I like to see a dvdshrink deep analysis/encode, with grabit downloading 8 threads with plenty more cued, some seti at home, then run farcry and report FPS.:D

    That will bring these single procesors to thier knees obviously but I want to see if DC is really worth it since that's the type of choices I'm forced to choose between.
    Reply
  • tjahns - Wednesday, April 6, 2005 - link

    As I am not a regular reader nor familiar with the benchmarks used in this article, I am rather disappointed that the scales on the graphs in this article do not indicate what is being measured nor whether "higher is better" or "lower is better". Reply
  • Calin - Wednesday, April 6, 2005 - link

    What would be better in games (I think), especially in first person shooter games, would be to compare the lowest frames per second, and not the highest or the averaged frame rate. And I think this would represent an tremendous advantage for multiprocessors/multicore Reply
  • Calin - Wednesday, April 6, 2005 - link

    "Nice article, as always. I wonder how memory bandwidth increases/decreases will effect the performance of the already bandwidth hungry intel processors."
    The Intel processors are no longer bandwidth hungry, as the move to the 1066FSB showed. However, throw a second processor into the mix, and things might change
    Reply
  • Calin - Wednesday, April 6, 2005 - link

    The Register has a small review on it, and compare it against a dual Xeon rig
    http://www.theregister.co.uk/2005/04/05/review_int...
    Reply
  • Icehawk - Wednesday, April 6, 2005 - link

    Great article - loved the multitasking benchmarks.

    Here's what I have running all the time:

    WinAmp 5
    Outlook 2003
    Firefox 1.02
    ICQQ2003Pro
    Norton A/V2005
    drivers for audio & video :)

    How is my performance affected by multiple Word, Excel, Pshop CS windows? Can I game with them open or do I still need to shut everything down like on my current system? Could I encode a DVD and play a game? Play a DVD off one drive and encode off another?

    As mentioned some of what I want to know is can I do things that currently require me to really run two boxes? I recently moved Azareus (torrent client) and all of my DVD encoding & burning to a second rig.
    Reply
  • Macro2 - Wednesday, April 6, 2005 - link

    No games tested at all? Since when does this happen? Intel doesn't want dual core to look bad so Anandtech doesn't bench ANY games at all.

    Come on guys, judging by the article below on the Inquirer I'm not the only one who is suspicious.

    http://theinquirer.net/?article=22332

    Same ole' same ole'
    Reply
  • snorre - Wednesday, April 6, 2005 - link

    Why did you exclude dual CPU (Opteron/Xeon) systems from your comparisons?

    I recommend that you guys at Anandtech read this:
    http://theinquirer.net/?article=22332

    Well said! ;-)
    Reply
  • Bathrone - Tuesday, April 5, 2005 - link

    What about the new extreme edition and I think WinXP only supports a maximum of two cpus? Im not keen to goto 2003 Server. What are Microsoft going to do - patch XP to support 4 cpus? Reply

Log in

Don't have an account? Sign up now