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

  • sharikou - Tuesday, April 5, 2005 - link

    granted, this annand review was only part one, but hexus.net had done it much better in just one set of benches. From reading hexus.net's review, one can clearly see the advantages and limitations of INTEL's two-cpu-in-one-package device, basically, the intel chip are two cpus, so it can do two heavy duty things at the same time, but if you try to do 1 thing at a time, the new chip is slower, or if you do 3 things at the same time, the same slowness will occur.

    So your benchmarks are just designed to fit the new INTEL dual-CPU, doing two things, instead of one or three at the same time.

    One suggestion I have is to do some comparison with a 2P Opteron workstation, we know AMD will release dual core Opterons soon, and using a SUN or BOXX opteron workstation, you can have 4 cores, it will be interesting to see how these 4 cores will perform.

    We know INTEL won't be able to release 2P dual-chips until 2006. AMD forced INTEL to rush to dual chip.

  • Hans Maulwurf - Tuesday, April 5, 2005 - link

    Well, I think I have to open my mind for dual core.

    But maybe you understand my fears about multitasking benchmarks. One could make many different benchmarks performing different on different platforms and chose one to put in his review. This looks a bit arbitrarily.

    If someone benches games, for example, everybody will be curious if there is no Q3, D3 or UT. So the reader knows if a common(realistic) scenario is choosen for benching. Thsi is almost impossible for multitasking, I think.


    I´m really interested in power consumption. Hexus writes there is only a slight increase in TDP, and no voltage drop. It will be interisting to see how this is possible as most parts of the CPU are doubled and I´ve not heard anything about different manufacturing techniques used for DC.
  • sharikou - Tuesday, April 5, 2005 - link

    This is one of the worst reviews, worse than Toms' and worse than the AnndTech Athlon64 3500 vs Xeon 3.6GHZ review.

    1) What's the hardware setup?

    2) why weren't there any game reviews if you are using $600 video cards?

    3) why isn't there any power consumption figures?

    INTEL's dual core isn't really dual-core, it's just two CPUs stick together, the two cpus share the same bus, without any logic in between. performance-wise, it should be the same as two xeon 3.2GHZ, and we know from Toms benchmark, a single Opteron 244 beats 2P xeon 3.2 in real applications.



  • lopri - Tuesday, April 5, 2005 - link

    This is an impressive piece of work. No wonder AT is #1! Refreshingly different but more real-world-like benchmark.

  • SignalPST - Tuesday, April 5, 2005 - link

    Question:

    If you were to force a game to run using the second core, and only that game on the second core, and leaving the rest of the system overhead to the first core, wouldn't that provide a smoother and faster performance compared with the identical clocked single-core CPU?
  • JustAnAverageGuy - Tuesday, April 5, 2005 - link

    Page 12.

    "For this test, we used DVD Shrink, one of the simplest applications available to compress and re-encode a DVD to fit on a single 4.5GB disc."

    Shouldn't that be 4.7GB?

    Distributed Computing programs would be a good idea!
  • michael2k - Tuesday, April 5, 2005 - link

    #51: Well, for people who would/SHOULD buy a dual core system, those are realistic scenarios. For those who game, or don't do those tasks, you won't see any performance benefits*

    #52: They were thinking, "The performance of the dual-core is more or less the same as the equivalent single-core CPU, so let's not be redundant and test dual-core CPUs where single-core CPUs are more cost effective**

    *Performance in games will increase when they effectively do two things at once of roughly equal importance. For example:
    ChessQuake, where one CPU deals with graphics, physics, sound, and AI, while the other CPU plays a game of chess
    DVDooM, where one CPU draws the brightest and darkest blacks anyone has ever seen, while the other CPU is encoding it to DVD for posterity

    As long as sound and light reflects geometry, you can't separate sound and rendering from interaction. Dual CPUs would be useful if you have two keyboards, two mice, and two displays for a two player game of DooM3 on a single computer.

    **See the single core equivalent reviews. AnandTech as done them.
  • kmmatney - Tuesday, April 5, 2005 - link

    misspell:

    Will Dual-Core work in Windows 2000? I don't see why not. I'd like to see a comparison between hyper-threading versus dual core in Win2K...I've heard that hyperthreading support is crippled in Win2K, but perhaps dual-core will work normally.
  • kmmatney - Tuesday, April 5, 2005 - link

    Will Dual-Core work in Windows 2000? I don't see why not. I'd like to see a comparison between hyper-threading a dual core in Win2K...I've heard that hyperthreading support is crippled in Win2K, but perhaps dual-core will work normally.
  • Natronomonas - Tuesday, April 5, 2005 - link

    With two top-notch gaming CPUs (EE, FX), even if they do say the performance of the dual-core is more or less the same as the equivalent single-core CPU, it is disappointing not to see even a single gaming benchmark.
    What were they thinking??

Log in

Don't have an account? Sign up now