April 2008


concurrency and technology21 Apr 2008 04:53 pm

OK, so I promised to add some more traces showing speedups of real user applications, i.e. not developer tools or benchmark suites.  The weekends over, but I thought that I would add an application that I’m confident a lot of people are using… Internet Explorer 7.

How does IE use 4-cores?

Well, if you remember that IE let’s you have multiple home pages in multiple tabs.  I use this feature to track the news sites I read and my web-mail, and it’s definitely using so here’s what it looks like on a quad core:

ie_4way

You should be able to see that it’s taking about 7.5 seconds to launch IE then the CPU to settle down.  More importantly, there’s a period of approximately 2 seconds between the 3.5 &  5.5 second tickmarks where the CPU utilization is at > 70%.

What about 8-cores?

I happen to be fortunate enough to run this same scenario on a dual-socket quad core and so I collected a trace on that as well.  Keep in mind that the clock speeds of these 2 are completely different so comparing benchmarks between them is quite inadvisable, but I’m going to do it anyways :).

You can see in the capture below that on the 8-way the time has been reduced to 5.5 seconds… it’s still using > 70% of the CPU but now it’s 70% of  8 cores instead of 4…

ie_8way

And that period of high CPU utilization (between 8.5 seconds & 9 seconds on this box) is now only about a second long.

Hey it didn’t get twice as fast, why is this good?

 

I could very easily have shown a paint.net application getting twice as fast as it did on my quad-core, but that’s actually not very interesting.  The point here is that we took a look at an existing application that was easy to find use that was already multi-threaded and was designed to take advantage of inherent latencies in I/O and showed that some decent speedups were available to be taken advantage of with a multi-core system.   This is really just an opportunistic performance win and real users,  using real applications will see some noticeable improvements without installing developer tools or running gadzillions of applications at once (and don’t knock that – I think I have about 40 windows open on my desktop right now).

Perhaps in a future post, I’ll post a couple ideas of how to take even better advantage of multiple cores using something like the Task Parallel Library or PLINQ, but for now that’s it.

-Rick

Uncategorized19 Apr 2008 09:42 am

Continued from "Is 4 cores really the end? (Part 1)".  I see Jeff has posted another blog in response and it looks like he noticed the application  I use all the time…   paint.net.  I use this a lot because it’s free, multi-threaded and it also happens to be open source.  As I mentioned, most of the filters are multi-threaded and here’s a trace from one, it’s got all 4 cores pegged at 100% for about 7 seconds. I didn’t try hard to find this at all, I just picked a blur filter that I use frequently and ran it…

paintdotnet 

 

I’m afraid that since it’s Saturday and I’ve a full schedule, this post is also going to be a bit short, but I will come back and add some more traces over the weekend.

Uncategorized18 Apr 2008 08:51 pm

I often read Jeff’s popular blog coding horror and in fact I have every intention of continuing to read it because I often find his blog astute, intelligent and enjoyable to read.  I also often agree with his sentiments, but his post today is something that I have to quite emphatically and respectfully disagree with because it borderlines on disinformation.  

I’ve in fact drafted this post about 3 times now trying to state my disagreement concisely and effectively.  So here goes:

those four cores provide almost no benchmarkable improvement in the type of applications most people use

Let’s take a look at some benchmarks of just a few applications that I think most people use.  I’m going to use my favorite profiler, ‘xperf’ low overhead, accurate and provides a good view of system performance and it’s free.

Quad Core vs Dual Core on some real user scenarios…

Jeff is using a dual core CPU overclocked to 4 GHz.  I have a quad core that’s overclocked to 3GHz, so as near as I can tell as long as I can come up with profiles of several common user scenarios that use more than 75% of the CPU (9GHz > 8GHz) for any measurable length of time then I’ll claim there’s user benefit.

To be continued…

Next Page »