Welcome!

.NET Authors: Liz McMillan, Yakov Werde, Matthew Pollicove , Kevin Benedict

Related Topics: Virtualization, SOA & WOA

Virtualization: Article

The World's Eight Most Excellent Software Adventures, Part Three

Client Side Parallel Programming Models

Joel Pobar's Weblog

If we believe that dual/quad/octa/n-tuple cores + cache scaling + internals advancements is going to be the default way that processors are expected to scale, we must adjust the software appropriately to scale with it. When you start to think about how to solve the problem, an interesting meta-question arises: should we really be focusing on making sure client-side platforms scale? Here is Part 3 of Joel Pobar's engaging series on the world's Eight Most Excellent Software Adventures.

Read Part One and Part Two.

I love my dual core Intel Centrino Pro based Thinkpad T61p, except it doesn't make Outlook run any faster than my old T42 which had exactly half the processors and a similar clock speed. Welcome to the reality of multi-core - old single threaded apps humming along at the same speed on dual, quad, octa (n-tuple) core machines.

The reason is now becoming fairly well known: the issue is we're starting to hit physical walls when trying to bump clock speeds higher. I've talked about this problem in depth before, so I won't rehash it, but essentially higher frequencies == more power == more cooling & more leakage, and we've hit walls on how much we can cool, and how much leakage we can cope with. There's been a few interesting CPU design announcements which have helped reduce the problem somewhat (see: High-k and Metal Gate Make-Over at 45nm, and Intels Fundamental Advance in Transistor Design Extends Moore's Law, Computing Performance), but for the foreseeable future, we're stuck with ever expanding L1/L2/L3 caches, higher throughput through architecture innovation, more cores, and slight movements forward in terms of clock frequency.

Now don't get me wrong - more cache, and better per-clock-cycle execution bang for buck is great news, and hopefully it will make Outlook run that little bit faster, but I've got this whole extra processor sitting around waiting to slurp up instructions. Why can't it help render the Outlook UI, or re-index my Mail store?

And let's be clear here - Moore's law is still going strong - we're just getting different processor scaling to what we've enjoyed before. It's a classic software/hardware impedance mismatch that is at the root of this problem.

More Stories By Joel Pobar

Joel Pobar speaks, consults, and teaches .NET technologies: CLR; programming languages; threading; platforms and more. A former Microsoft Program Manager, since leaving Microsoft he has been tinkering with v.next software: machine learning, natural language processing, programming languages and more.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.