ie8 fix
madison

The death of single threaded development

By | June 6, 2007, 1:02am PDT

Applications use to get free performance boosts whenever the clock speed on the CPU and memory bus went up at an exponential rate.  For two decades, applications just magically doubled in speed every two years without any requirement to redesign the code but the era of the “free lunch” performance boosts is over.  That end started around 2003 when CPU makers hit the 3 GHz thermal wall in microprocessors, but some modest per-core gains - although nothing like the old days - were made since 2003 in execution optimization with the transition to newer CPU micro-architectures despite the fact that clock speeds are lower.  The Lion’s share of progress made within the microprocessor industry for the last two years is the shift to multi-core processors, first dual core and now quad core processors.  From this point forward we’re only going to see a multiplication of CPU cores with relatively fixed clock speeds mostly in the 2 to 3 GHz range and maybe eventually close to 4 GHz on some premium products.

The consequence of this seismic shift in microprocessor development means that traditional single threaded applications will no longer see any significant gains in performance let alone exponential gains.  That means a typical single-threaded application will probably not be that much faster 8 years from now even if there are 16 times the number of CPU cores.  That’s because even if we had 32-core CPUs, a single threaded application will only be able to leverage 1 of the 32 cores within that CPU while 31 cores sit idle.  Of course some people might be wondering if it would be better to just keep scaling the clock speeds of single core processors and have something like a 20 GHz processor.  Yes that would be the ideal solution but it simply can’t be done short of using insane amounts of power and exotic liquid nitrogen cooling systems.  The entire microprocessor industry was forced to shift to a process of putting more cores in to a CPU versus ramping up the clock speed.

The only way to scale applications to take advantage of all that extra processing power in the extra cores requires a fundamental shift in the way programs are written.  This new programming technique is called “multithreaded programming” or “parallel programming”.  Here are a few ways to tackle multithreaded programming:

  • Use multithread optimized libraries
  • Use multithreaded development APIs like OpenMP and pthreads
  • Use automated parallelization and vectorization compilers
  • Hand threading (manual threading)

Multithread optimized libraries:
One of the easiest ways to do multithreaded programming is to take advantage of multithread optimized libraries.  In the latest Intel compiler 10.0, you have Intel’s MKL (Math Kernel Library) and multimedia processing functions which are optimized to run on multi-core processors with concurrent threads.  The hard work was already done and the developer merely takes advantage of what was already written.  Since math and science functions and multimedia processing have some of the heaviest computation requirements, these libraries and functions are a huge boost to developers.

Multithreaded development APIs:
OpenMP is a multithreaded development API designed to make multi-core optimization easier than manual “hand threading”.  OpenMP allows the automation of multithreaded parallel processing on multi-core processors and sometimes it even scales better than hand threading.  Intel’s Director of Marketing James Reinders explained to me that one might see a 400 to 500 percent performance gains over a single-threaded application on an 8-core processor.  Considering the fact that 700% scaling is the theoretical maximum gain on an 8-core computer, 500% gains from automated multithreading is extremely tempting since it saves the programmer from having to manually chop up the workload among multiple CPU cores.

Automated parallelization and vectorization compilers:
The new parallelization optimizations in the latest Intel compiler 10.0 allow applications that haven’t been coded with any multithreading in mind to get small boosts for multi-core computers.  These typically take loops in programs and tries to divide up the test cases across multiple CPU cores.  This isn’t just limited to “for” or “do while” loops but also for more complex loop structures.  The typical gains made are usually modest single digit or low tens percentage gains.  While that isn’t a lot, it is essentially a free boost with a simple compiler switch on all existing code.  You can basically try it with and without and see if it makes a difference in your application without doing any modifications to the code.  These parallelization and vectorization techniques have gotten a lot of press lately but they don’t even come close to replacing OpenMP or hand threading.

Hand threading (manual threading):
Hand threading is a manual process where the developer decides exactly how to break up a workload across multiple CPU cores and it can scale perfectly when done right.  With enough time and skill at one’s disposal, manual hand threading performance should always beat OpenMP performance but the skills needed for multithreaded programming are a very rare commodity.  The demand for skilled multithread programmers is huge and it isn’t something your run of the mill programmer can do.  For more on parallel programming, here’s a great article by Herb Sutter and James Larus.

What scales and what hasn’t:
The most obvious example of perfect multi-core scaling are 3D rendering and multimedia encoding applications all of which require a lot of processing time and have the most to gain.  Server applications also tend to scale fairly well because by their very nature they have a lot of concurrent and independent tasks to handle which can be divided up across multiple CPU cores.

The difficulty lies in getting games to scale well on multi-core processors.  Office productivity applications are another category of applications that generally don’t scale well either because there’s very little developer experience dealing with multi-CPU computers on the desktop platform.  Furthermore, you only have a single user generating the workload and that’s a lot harder to chop up than the server environment where you can just assign different user sessions to different CPU cores.  Office productivity performance is also less of an issue since you can’t possibly need that much more performance for mundane office tasks until computers start requiring more human-friendly interfaces.  Voice dictation for example would be one area where you can have one CPU core doing the actual dictation and the other core handing the rest of the workload on the PC.

Kick off your day with ZDNet's daily e-mail newsletter. It's the freshest tech news and opinion, served hot. Get it.

Topics

Disclosure

George Ou

http://blogs.zdnet.com/Ou/?page_id=557

Biography

George Ou

George Ou, a former ZDNet blogger, is an IT consultant specializing in Servers, Microsoft, Cisco, Switches, Routers, Firewalls, IDS, VPN, Wireless LAN, Security, and IT infrastructure and architecture.

Related Discussions on TechRepublic

Did you know you can take part in these discussions with your ZDNet membership?
54
Comments

Join the conversation!

Just In

RE: The death of single threaded development
jfalgout@... 4th Dec 2007
The thing about OpenMP and other efforts to scale hot "for" loops is they have limited applicability. There is a high priority need to build scalable applications, not just scalable algorithm implementations.

An architecture such as dataflow can be used to build scalable data processing applications. The pipeline nature of dataflow intuitively creates task-based parallelism. It also supports partitioning of data, the standard divide and conquer technique.
0 Votes
+ -
With multiple cores, a badly-written program is less likely to slow your entire machine down to a crawl as it consumes every last CPU cycle in sight. And with CPU cores not getting much faster, maybe some programmers will put a little more thought into the efficiency of their algorithms rather than hoping that "Moore's Law" will rescue their behinds.

Hey, I can dream... wink
0 Votes
+ -
Very true, good point. NT
georgeou 6th Jun 2007
nt
0 Votes
+ -
Bad developers?
Mikael_z 7th Jun 2007
It can't be the only reason to blame.
What about the development environment?
What if the OS is badly designed? After all, you've had MS Windows to fight with,
you poor souls. Lots and lots of code gets executed in the OS.

Microsoft Visual C++, C# and other languages may have evolved but is likely a big
part of the problem (and not just poor compiler optimizations).

At least Xcode in Mac OS X has had vector optimizations and created
multithreaded apps for years, much like on other hardware and OS:es.
0 Votes
+ -
Don't be silly
georgeou 7th Jun 2007
Linux and Windows NT have had SMP support for years long before Apple jumped on the bandwagon of supporting multiple CPU cores.

If you're suggesting that MS Windows doesn't support SMP Multi-Threading, you've got some seriously faulty information.
0 Votes
+ -
Crappy support as usual I think.
Mikael_z 8th Jun 2007
Microsoft's record for making great software isn't exactly impressive.
Bloated and too feature rich software to rub the hardware industry the right way.

I'm interested in making music with software synthesizers (Propellerhead's
Reason) and many of the users with C2D processor equipped computers report
better performance by dedicating one core to Reason, which suggests to me that
Windows' scheduler leaves a lot to desire while the Mac OS X version screams
ahead faster.

I have no insight in Microsoft development of course, but this and Microsoft's
history filled with bad software tells us you're wrong.
0 Votes
+ -
MS software runs fast by comparison
georgeou 8th Jun 2007
Compare MS Office to Open Office and it's blatently obvious. What you call "feature bloat" is good for people who want those features. The kind of bloat that offends me is resource bloat.
0 Votes
+ -
MS Office is built into the Win OS.
Mikael_z 9th Jun 2007
Office is a cash-cow, it has to work well, in Windows that is.....
MS Office works better running inside VMware or Cross Office on Linux than native OpenOffice.org running on Linux.
0 Votes
+ -
Bloat is bloat.
B.O.F.H. 9th Jun 2007
In both cases, it makes the applications fat and slow.
MS Office with more features is still much faster than Open Office or those feature-lacking java based Office Suites. MS Office is coded with a very light weight class because it was developed during a time when it had to run on 386/486 computers with 8 MB RAM. MS Office is probably one of the best examples of a very full featured application with a very small foot print.
0 Votes
+ -
Yawn
Yagotta B. Kidding 6th Jun 2007
The main performance-critical software that $COMPANY uses has been multithreaded for at least seven years; it's the kind of problem domain that lends itself very readily to multithreading.

However, nobody uses the multithreaded option. It's too expensive, since every additional thread sucks up another license. In theory, I could tie up every license that $COMPANY owns on one job and it would run like blazes, but all of the other engineers would have to wait for my job to finish. The policy is (IMHO wisely) to disable that option.

Multithreaded processes always run less efficiently. Amdahl's Law. Therefore, maximum aggregate throughput comes from using independent processes rather than threads.

Put another way, George: there's no point in developing software to take advantage of multiple CPUs if the business side puts disincentives in place to keep customers from using that feature.
0 Votes
+ -
Thanks for that article George.
BillyG_n_SC 6th Jun 2007
I learned a few things I didn't know already. With the drop in CS, etc. degrees already, how in the world is multi-threaded programming going to catch on?
0 Votes
+ -
It will catch on where performance is needed and tools will get better eventually. We'll also see more CPU-intensive libraries going multi-threaded.
0 Votes
+ -
Well written
dragosani 6th Jun 2007
Easy to read and nicely broken down into easily digestible chunks.

It may be a little early to call 4GHz the limit. Some new manufacturing process or other solution could allow the scaling of speed again. I don't like counting out "human ingenuity".

Of course, you may just ignore me and not even read this. wink
0 Votes
+ -
I've asked about that
georgeou 6th Jun 2007
I've asked about that. In fact when we had the Intel Fellow blogging here, I asked him about that and he didn't seem to think we were going back to the old model of producing faster single cores. We we look at the new Penryn chip, they did manage to make some functions 40% faster with SSE4 so that's an improvement on execution optimization.

Maybe we'll crack 4 GHz or maybe even 5 GHz some day, but it will never be the exponential rate we've had in the past. Bear in mind that we actually dropped in clock rate going from NetBurst to Core 2 architecture but we saw a per-core boost in performance.
0 Votes
+ -
Games can parallelize fine
CobraA1 6th Jun 2007
Games, especially the newest ones, paralellize fine actually.

You average gamer has a lot of CPU intensive tasks that can be split up among cores:

-AI
-Graphics
-Physics
-IK Animation ("ragdolls")

There, that's enough to divide among four cores. In addition, some tasks such as physics can be implemented in a way that is easily parallizeable into more cores if needed.

And oh, yeah, you say that 3D and multimedia apps scale easily? Well, guess what: That's essentially what today's games are! Gamers have been pushing hard on the 3D front for years, a trend I think will continue indefinitely. If 3D is easily made into a multithreaded task, it will help games tremendously!
I was pointing out the success rate of current games. So far they're not scaling very well. Oh sure you might get a 30% boost out of a dual-core, but that's hardly 100%.

3D rendering applications seem to have always scaled perfectly. You give it two processors and it goes twice as fast. I'm not sure what the difficulty in game development is. So far I haven't seen anything that scales perfect yet.
0 Votes
+ -
Dual-core and multi-core have only recently come out for personal computing - they're been mostly for business computing until recently.

Right now, they're mostly trying to add it to existing engines. Newer engines should handle multiple cores better and achieve better gains.

In addition, what you may be seeing is that different parts of the engine push the game harder than others: The AI may take a lot of the CPU, but not as much as the physics. Also, 3D is usually pushed to the GPU, so it actually doesn't take much CPU at all. Different parts of the game have very different demands.

In a raytracer, the image can be divided up into different portions quite easily: With dual cores, you can have one processor rendering the top half of the image while the other processor renders the bottom half. This makes doubling the performance easy, as both the top and bottom halves of the image probably require the same amount of computation power.

In realtime rendering, however, the tasks are often unequal, with some tasks requiring more power than others. That's why the gains are fairly modest at the moment. As game engines improve, however, they should divide the work up more evenly, and you should better performance in the future.

In addition, it may also depend on the algorithms being used: Raytracing has linear running time, so it doubles whenever the power is doubled. Many AI algorithms have a quadratic or polynominal running time, so doubling of power does not equate to double the AI.
0 Votes
+ -
In a sense, already being done.
linux for me 6th Jun 2007
The difficulty lies in getting games to scale well on multi-core processors..

In a sense, games are already multi-core, as the heavy graphics are left to the CPU on the graphics card for processing. So game actually have a head start.

Programming tools, such as compilers, assemblers, debuggers, etc... will need major overhaul to accommodate this kind of programming. Maybe we will start seeing these updated tools soon, but I would hold my breath waiting for these new tools to hit mainstream.
0 Votes
+ -
No argument there....
linux for me 6th Jun 2007
But the game graphics are being done on the video processor, giving some multi-core performance gains. It's not perfect, of course, but games are a step ahead in the multi-core processing area at the moment.
0 Votes
+ -
It will take years for the change to happen
No_Ax_to_Grind 6th Jun 2007
Given the installed base of development environments and the learning curve that will go with coding a multi-CPU application I don't expect to see the change happen very quickly.

Heck, look around, how many (desltop) apps do you see using 64-bit CPUs effectively?
0 Votes
+ -
I've just looked around...
Zogg 6th Jun 2007
... and I can't even see a single 64 bit desktop, let alone any 64 bit desktop apps. There are plenty of multi-core desktop PCs, though.

Mind you, multi-threading is hardly a new concept.
0 Votes
+ -
You didn't look hard enough then
Linux User 147560 6th Jun 2007
Because 64 bit has been around since 1961 when IBM delivered the 7030 stretch computer. Granted it wasn't a desktop... but in 1997 the PowerPC cpu, you know the one used in Macintosh desktops... was manufactured with a 64 bit model.

Then starting in 2003, Linux took off on the 64 bit desktop porting the kernel and several applications over to the new 64 bit architecture.

Mac was the first desktop with applications though to reach the 64 bit desktop. Linux came in second (and for that matter I am using a dual core 64 bit desktop with about 40% of my applications having been ported to address the added memory space). Windows is just now starting to enter the 64 bit desktop market and they are having their fair share of issues with it.

No, you didn't look very hard at all did you?

IBM even has a link to tell you how to port to 64 bit. devil
0 Votes
+ -
History error
Yagotta B. Kidding 6th Jun 2007
Then starting in 2003, Linux took off on the 64 bit desktop porting the kernel and several applications over to the new 64 bit architecture.

You're about five years late. I was running 64-bit Linux desktops in 1997 (SPARC and DEC Alpha.) Most Linux applications have been 64-bit clean for a decade now.
0 Votes
+ -
Thanks for the correction...
Linux User 147560 6th Jun 2007
I was speed reading... no excuse on my part. Good catch, thanks! devil
0 Votes
+ -
Both of you are correct in a way
nucrash 6th Jun 2007
Just YBK is properly correct. However, if you consider 64 bit for x86, this would have started in 2003 when AMD released the Opteron.
0 Votes
+ -
All the PCs that I could see around me were 32 bit machines, and a lot of them were multi-core.

A comment on the computing "mainstream", if you will wink
0 Votes
+ -
Huh? Ever heard of AMD? (nt)
No_Ax_to_Grind 6th Jun 2007
.
0 Votes
+ -
What about AMD????
Zogg 6th Jun 2007
I think you're having a totally different conversation here??!
0 Votes
+ -
About 70% of their current offerings
Linux User 147560 6th Jun 2007
are 64 bit CPU's. That was his point. devil And it's a valid one at that.
0 Votes
+ -
Only a few really low-end processors from AMD and some left-over Core Duo (not Core 2 Duo) mobile chips are non x64.
0 Votes
+ -
The difference is
Linux User 147560 6th Jun 2007
that AMD at least puts 64 in the CPU nomenclature so you know it's 64 bit. I am not an Intel user but from what I have seen only a few openly state they are 64 bit which would lead one to conclude (if not doing in depth research that is) that Intel only has a small line of 64 bit procs. What I don't like about AMD is the damn numbering system they use!

Example: AMD Athlon 64 X2 3800+ now I know this is a 2.0GHz cpu, but I had to go dig around for it! At least with the Intel CPU you know what the speed is up front. I think this is the only problem I have with AMD at the moment, is how they identify their CPU's. devil
0 Votes
+ -
AMD has been bragging about 64 bit for a long time. Intel on the other hand has sold many times more x64 processors without talking about it.
The original comment that I was responding to was:

Heck, look around, how many (desltop) apps do you see using 64-bit CPUs effectively?

So when I replied:

I've just looked around and I can't even see a single 64 bit desktop, let alone any 64 bit desktop apps.

I meant that "No one round here is even running a 64 bit OS on his/her desktop". In that context, it is irrelevant whether the CPU inside any of those PCs was from Intel or AMD. (Although it so happens that they were all Intel PCs.)

I confess that I have no idea which CPUs today are capable of running in a 64 bit mode. In fact it's quite possible that my new Core 2 Duo desktop at work can. But, like the rest of the PCs at our company, it isn't running in 64 bit mode, although it is using its multiple cores quite happily. And I strongly suspect that we are not alone in that regard.
0 Votes
+ -
There are applications out there to answer your
Linux User 147560 6th Jun 2007
question for desktops, just not that many for Windows... at the moment. BUT there are far more 64 bit systems out there than you realize. AMD has been pushing them since 2003 as their new mainstay CPU. Intel also has a large offering (according to George and I am an AMD guy... so I don't know much about Intel).

As for seeing a 64 bit desktop, you are not going to see anything different about it, other than snappier app response times and faster boot times (after the BIOS relinquishes control). I don't know if Windows has a special moniker for 64 bit systems or not. I know Linux doesn't. devil
0 Votes
+ -
Intel has more a lot more x64 chips (server or desktop market) than AMD for the sole fact that Intel has a larger market share.

Microsoft uses the "x64" moniker for Windows running on Intel "EM64T" or AMD "Athlon64" hybrid 32-bit chips with 64-bit extensions. It's all the same thing because of the cross-patent agreement between Intel and AMD which allows Intel to use AMD's Athlon64 and AMD to use Intel's MMX or SSE 1/2/3/4 instruction sets.
0 Votes
+ -
It doesn't make sense not to advertise
Linux User 147560 7th Jun 2007
they have 64 bit. But if that is how Intel wants to do it... fine by me. I don't really care, since I will never own an Intel CPU ever again. devil
0 Votes
+ -
Office productivity apps
filker0 6th Jun 2007
Office productivity apps definitely can benifit from multiple threads. In fact, even on single core systems, this is the case. In the 1980s, I designed and wrote much of a DOS hosted terminal emulator (a successful commercial product) that used two threads; we wrote our own multi-threader and inter-thread communications package that lived on top of DOS. It very much reduced the complexity of the overall code.

A well designed WYSIWYG word processor can have the UI handled by one thread, the presentation handled by another, spell/grammer checking by another, and recovery as another. The threads do have to communicate with eachother, and it's not trivial to design a good MT app, but it's actually easier to write the payload for each thread if it doesn't have to break itself into little chunks in order to poll for user-input or scroll/update/repaint the display.

Similarly for spreadsheets, recomputation can be triggered by UI events, but be independent of them.
0 Votes
+ -
One minor quibble about clock speeds
Letophoro 6th Jun 2007
"From this point forward we?re only going to see a multiplication of CPU cores with relatively fixed clock speeds mostly in the 2 to 3 GHz range and maybe eventually close to 4 GHz on some premium products."

I remember some few years ago having a discussion with an electrical engineer that was firmly convinced that the FSB would never get faster than 66MhZ. History has shown him to be incorrect. I believe with some of the materials advances that are occurring now, there will be processors well in excess of 4GhZ. I will however agree that the giddy pace of clock speed increases is over for now.

Other than that, this was a pretty good article.
0 Votes
+ -
IBM's Power6 is 5 GHz or more
georgeou 6th Jun 2007
IBM's Power6 is 5 GHz or more. But that is an exotic and $$$$$$$ beast.
0 Votes
+ -
Good news for Computer Programmers
nucrash 6th Jun 2007
Though the industry has been stagnant for a few years now, since Y2K. Now there is an entirely new reason to hire up programmers and get them busy coding. Not saying that this will be as big as or as rushed as Y2K, but the industry could definitely use the boost to get income flowing a little better.

I still have to disagree with the 4 GHz limit. I have heard about limits time and again about how we will never pass 333 MHz or 66 MHz and yet each time that limit is blown away. Infact, the 1 GHz barrier was more like a speed bump when it was passed. Where Intel ran into a problem was with the Pentium 4, claiming Netburst would take them into 10GHz territory.

IBM is demonstrating 4 GHz with the Cell. Why can't Intel or AMD eventually do the same with x86.
0 Votes
+ -
Ah Y2K... the disaster
Linux User 147560 6th Jun 2007
that never happened! And really, what would have been the worst that could have gone wrong? devil

The wife and I recently had a discussion about the "terror" of the Y2K bug... and where did all the doomsayers go when nothing (like I said would be the case) happened?
0 Votes
+ -
Well much was done to stop Y2K
nucrash 6th Jun 2007
Thanks to the programming of several COBOL Junkies, the confusion that would have happened was avoided. The dependence on PCs wasn't as great and our ties to our mobile devices weren't quite as ingrained as they are becoming with the Crackberries.

Financially things really could be a mess. The end of the world wouldn't have happened, but I have seen a computer system shut down a facility because the FTZ documents couldn't be produced by the computer system.
0 Votes
+ -
Though I am technically inclined
Linux User 147560 6th Jun 2007
I still refuse to allow it to run my life or become an integral need in my life. Hence why I have no cell phone, PDA or any other easily portable electronic gadget that seems to be altering peoples social skills as well as their perception of what is really important.

If all PC's and cell phones died and were never to be resurrected I, and my family would still be able to go on with my daily life... they just are not that important! They are fun, and when they work like they are supposed to, they can make data tracking and manipulation easy and less time consuming. But it seems to me that instead of simplifying our lives so we can enjoy quality time with our family and friends, it has done quite the opposite and that is rather frightening if you think about the long term social impact.

One of the most ironic things I have encountered is the following:

{B]Some Business Assoc.: What's your cell number?
Me I don't have one. Here is my office number.
{B]Some Business Assoc.: You don't have a cell phone!? said with wide eyes and a very incredulous voice...
Me: Yeah, why?
{B]Some Business Assoc.: How do you get by without one!?
Me: Easy, the same way I did as a kid. I have a phone in my office and at home. If it's work related you call me at the office. It have voice mail. If it's personal, you call me at home. Nothing is that important that I need to have a cell phone.
{B]Some Business Assoc.: Man, you know now I think about it, you're the lucky one.

I have that conversation at least 5 times a month or one very similar to that. My point? People that have these toys are envious of the freedom I have. devil

Okay I am off my rant for now.
0 Votes
+ -
Though I am technically inclined
Linux User 147560 6th Jun 2007
I still refuse to allow it to run my life or become an integral need in my life. Hence why I have no cell phone, PDA or any other easily portable electronic gadget that seems to be altering peoples social skills as well as their perception of what is really important.

If all PC's and cell phones died and were never to be resurrected I, and my family would still be able to go on with my daily life... they just are not that important! They are fun, and when they work like they are supposed to, they can make data tracking and manipulation easy and less time consuming. But it seems to me that instead of simplifying our lives so we can enjoy quality time with our family and friends, it has done quite the opposite and that is rather frightening if you think about the long term social impact.

One of the most ironic things I have encountered is the following:

Some Business Assoc.: What's your cell number?
Me I don't have one. Here is my office number.
Some Business Assoc.: You don't have a cell phone!? said with wide eyes and a very incredulous voice...
Me: Yeah, why?
Some Business Assoc.: How do you get by without one!?
Me: Easy, the same way I did as a kid. I have a phone in my office and at home. If it's work related you call me at the office. It have voice mail. If it's personal, you call me at home. Nothing is that important that I need to have a cell phone.
Some Business Assoc.: Man, you know now I think about it, you're the lucky one.

I have that conversation at least 5 times a month or one very similar to that. My point? People that have these toys are envious of the freedom I have. devil

Okay I am off my rant for now.

YO HOWARD SARIN! ONCE AGAIN, WHEN THE F*** ARE YOU GOING TO PUT THE GOD**** PREVIEW BUTTON BACK SO WE CAN DO A BETTER JOB OF CHECKING OUT F***ING POSTS BEFORE WE POST THEM!?
My point is that the era of exponential growth for clock ended in 2003. From this point forward we'll only see small gains in clock speeds. It's much more feasible to put in twice as many CPU cores within a thermal envelop.

IBM Power 6 can do 5 GHz or more, but that's really an exotic and EXPENSIVE beast of a processor.
0 Votes
+ -
Power6
andrnils 7th Jun 2007
IBM Power 6 can do 5 GHz or more, but that's really an exotic and EXPENSIVE beast of a processor.

Well, get M$ to port Windows (linux already runs fine wink ) and some OEM manufacturer to build pcs with a power6 and we'll see a tremendous price drop... At least according to capitalism wink

I guess I should start saving money for a power6 based system...

I believe that one of the problems with todays x86-64 CPus is that they do both 32 and 64 bit... There should be enormous performance gains if they did only one or the other. And as a sideeffect the switch to 64-bit would finally take place.
"I believe that one of the problems with todays x86-64 CPus is that they do both 32 and 64 bit... There should be enormous performance gains if they did only one or the other. And as a sideeffect the switch to 64-bit would finally take place."

Yeah and it's called Itanium. Then AMD came along and forced Intel to extend x86 with "Athlon64" extensions though Intel calls it "EM64T".

The Itanium is fundamentally a better chip, but it was a commercial failure because it couldn't bridge the gap seamlessly enough since emulation performance was lousy. Perhaps if AMD hadn?t forced Intel?s hand to extend the x86, MAYBE Itanium architecture would have had a chance.
0 Votes
+ -
Overly optimistic
Mark Miller 8th Jun 2007
I'm usually more optimistic about technology, but in this case I'm not. Not until people switch over to the 64-bit architecture, which people don't seem to be doing for some reason. Maybe MS has to take some of the blame for this. The complaints I've heard about 64-bit is there's hardly any software/driver support for it. The transition to 32-bit from 16-bit was quicker than this.

From my recollection this is the first time that CPU manufacturers have felt it necessary to offer multi-core processors on most PCs. I think that should tell you something. There have been PCs around with multiple CPUs for years, but they were high end systems that were expected to run multiple processes. With multiple CPUs becoming commonplace I think that threading will be a more sought after feature in software. I don't expect to see it in word processors. It would be nice in something like Excel, I'm sure.

As for it driving hiring, companies are going to find that it's not easy to find the right talent for this. I used to think multi-threading was a skill most programmers knew how to do. From what I've been reading in the last several months I've become more skeptical. All you need to do is look up "FizzBuzz" on the internet and read what interviewers are finding: masters and Ph.D.'s in CompSci, and developers with 10 years of experience who can't write a simple algorithm for a simple problem. I find this astounding, but from the number of sources I'm hearing this from, I'm inclined to believe it. I wonder what crap schools are graduating these people, or if there's some rampant trend of people lying on their resumes. If they can't solve a simple problem, there's no way they're going to be able to do multi-threading.
0 Votes
+ -
The thing about OpenMP and other efforts to scale hot "for" loops is they have limited applicability. There is a high priority need to build scalable applications, not just scalable algorithm implementations.

An architecture such as dataflow can be used to build scalable data processing applications. The pipeline nature of dataflow intuitively creates task-based parallelism. It also supports partitioning of data, the standard divide and conquer technique.

Join the conversation!

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]
ie8 fix
Click Here
ie8 fix

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity

White Papers, Webcasts, & Resources
ie8 fix
ie8 fix