Jump to content
The Inquirer-Home

Software lets the hardware revolution down

Core, wot a brain scorcher
Tuesday, 18 December 2007, 16:27

THE LATEST breed of multi-core chips is hardly being taxed because software developers haven't written code that uses them properly.

According to the New York Times, the big software outfits are sitting around trying to work out how to use all this nifty dual and quad core power bought to them by the likes of Intel and AMD.

Apparently, Microsoft is getting close, probably aware that its software will be toast if some smart-arsed open source person beats them to it.

Parallel processing apparently requires complex software that breaks code into bite-sized chunks that the different processors can run. The job is getting more tricky as eight core processors loom above the horizon like a school of Great White sharks.

Yet the developers still have not worked out a way to pen decent parallel programs.

The Times quotes Berkley boffin David Patterson as saying that the whole industry is betting on parallel processing but the software people have not worked out how to catch the ball and run with it. Neither have they worked out how to cross the line, touch down or pass the ball. In fact when it comes to (American) football analogies they are playing badminton.

The hardware people have known this will be a problem for four decades, but stuck it into the someone else will sort out the problem basket.

The Vole has apparently hired some of the best minds in the field. Rather than keeping them in jars, pickled as it usually does, it has wired them together to have a crack at rewriting its software so that it can run multi-core better.

If the Volish brain's trust crack it, that sort of code could be on the market in three years. We are not holding our breath.

More here. µ

Share this:

Comments
Low demand, lazy programers & problems that are serial in nature.

We don´t se much multicore optimized code because moast programs run fast enough on a single core. As long as the extra compute power is not needed the programmer will not bother to optimize. Lots of problems are serial in nature and can not be split up among the available cores.

I think that the way we will be able to utilize all available cores is to run multible programs simultaniously or create really smart compilers that automatically does at least some of what the programmer is to lazy or ignorant to do. How much is down to how much the programmers code gives away about the nature of the problem the program is supposed to solve.

As you probbably figured I don't have high hopes for the future on this matter.

posted by : Rollo Thomasi, 18 December 2007 Complain about this comment
Well...

I wager it's not about 'software' in general being behind the multi-core lag.

You are talking about x86 software. Which has almost always been optimised for single-core.

The two programming paradigms are quite different, but the problems are by no means unsurmountable.

For decent example, the current round of Next-Gen consoles are multicore, and the better games on those platforms are very happily multi-core. As are more recent PC Games, like Quake IV (ok, not-so-recent), Crysis, Orange Box (multi-core source).

Now, while multi-core reaps many benefits for certain applications (gaming, rendering, encoding) it does fairly not much for the standard desktop user. Your experience with Word or Excel will be as smooth on a dual-core as it will on a similarly specced quad, no matter how well optimised the software.

I would say that it is not a point of software slowing the hardware side, so much as software is demonstrating quite clearly that presently there is not much crucial need for multi-cored hardware outside a few applications.

That is much more down to the recent competition between AMD and Intel, who have been pushing the x86 ipc envelope as far as they can, creating a new generation of pc-power, far in advance of the genuine cutomer need.

Anyhows, thanks for the interesting article.

posted by : Dave, 18 December 2007 Complain about this comment
Software lets the hardware revolution down

3D software such as 3DS Max, Maya, and Cinema4D scale very well with added cores. Maybe MS should nick their boffins.

posted by : Muck, 18 December 2007 Complain about this comment
Yeah yeah....

We have been told this every 3 months or so. Get over it.

posted by : name, 18 December 2007 Complain about this comment
How often do we have to read this story

We've been reading the same thing since hyperthreading on the P4, and actually long before then. "Why, oh why, don't developers make everything run in parallel, why aren't there automatic parallelization tools, blah blah blah."

I don't understand the whining. Why does EVERYTHING need to be parallelized? Is your web browser too slow? Word processor? E-mail reader? IM client?

I have a quad core and all my processor-intensive software is already multithreaded. The rest I don't care about and I'm not sure why anybody would.

posted by : Tom, 18 December 2007 Complain about this comment
Software lets hardware down?

If hardware designers are creating CPUs that don't speed up existing software, how is that the fault of the people who designed the software? I'm a programmer, and I have never promised a hardware company that I would start writing code that suits their future CPU designs. Sure, software is always behind the hardware, but that's because it is hard to write and test software without hardware. It would be crazy to develop a program based on a hardware roadmap; hardware companies aren't always correct about what they will be selling a year or two from now.

I'll also point out that the software and hardware industries are aiming at different customers. Hardware customers are looking for a new computer, while software customers are looking for something that runs on their current computer. The typical computer these days still has a single core; why would a software company spend a lot of money developing software that is best suited to computers that aren't mainstream? Hardware companies love it when there is software that requires their most powerful new chips; that sort of software really drives hardware sales. It doesn't usually help a software company to aim for the small, bleeding edge of the market.

posted by : jimsum, 18 December 2007 Complain about this comment
Enjoy it, it wont last

This is the golden year before the Firefox programmers find a way tie down all cores simultaneously when executing buggy Javascript.

We better enjoy running single-threaded apps on our multicores while we can. The next generation of applications will be the same resource hogs we usually get, they will not leave our extra cores in peace.

posted by : niklas, 18 December 2007 Complain about this comment
Some mundane apps could do with a bit of parallelism...

Someone mentioned a lack of need for concurrent functionality in email readers...I would disagree <gripe> try using Outlook in a corporate environment, every time it has to do anything more taxing that just sitting there looking pretty, the whole thing freezes up. Now I know this is just a case of badly written software that can't thread properly, but I would gladly give Outlook a core dedicated to just letting me read my emails while it can schedule the other core to let it do the other boring nonsense it gets up to. Even Outlook Express was better... </gripe>

posted by : Ronan, 18 December 2007 Complain about this comment
Look at it this way .....

I believe the problem has very little to do with programing us such but has more to do with humans and our perceptions. I believe we are dealing with two paradigms that affect our lives - and our ideas on programming.

The first is a model of the real 'real' world. This is a model filled with all sorts of examples of parallelisms in all sorts of forms - including programming. Think about how well we could get robotics to mimic human movement when we have multi-processor (multi-core) systems working in parallel to control the movement - instead of running a linear program. This is what our 'sub-conscious' does.

The second is a model of our interpretation of the 'real' world. This is our 'conscious' world. Because our consciousness is mostly effected by the 4th dimension of time, I believe that just about every task/method/plan devised by us follows a linear process. Since most of the programming (in user space) has been to mimic those tasks that we so mundanely do every day, our programs follow the same paradigm.

What I'm saying in effect is this. Parallel programming is do-able but takes a lot of hard work as it is a very specialized coding sequence that is hard for us, because, I know I can move my arm, but I don't really know how it happens (I don't sense all the processes that take place). As such our conscious self is like a single threaded Master Control Program out of TRON that is only aware of interrupts from its parallel-world universe - well, kinda sorta - you know what I mean. And Parallel programming makes sense for the real 'real' word examples. What does not work is the 80% (if you follow the 80/20 rule) of programs that mimic the tasks we have designed. This is not really a case of programming language, compiler or OS, but one of that one can only break linear code into small chunks so far, before you break the linear line.

It comes down to this. Unless we as humans take a big paradigm shift in how we perform our task or even interface with the events that drive the real world inputs that shape our lives (Technological Singularity? - I hope not) we will be stuck down the path of a linear singularity programming model (pun intended) for a long time.

Multi-core systems are really in the space of servers where multi-threading right now plays a big part - that is, until we as humans can start thinking side-ways.

posted by : Hans, 19 December 2007 Complain about this comment
Ubuntu 64bit takes full advantage.

I have a pentiumD 930 and the amd_64 bit linux kernel with Ubuntu 7.10 takes full advantage of it. I recently got my hands on a core 2 quad q6600 results on that soon. The link below has screenshots of both cores maxed using remastersys 2.0 with Ubuntu 7.10

http://nudepenguin.net/cpuload/

posted by : Clint Brothers, 19 December 2007 Complain about this comment
Old News....

This story could have been written 30 years ago, and probably was. What was going on then was that the only way to build faster computers was to exploit parallelism and this was giving programmers headaches. The problem sort of disappeared because the rise of high density and ever faster logic masked architectural issues -- basically you could continue to make those early to mid 70s computers, you just made them smaller and faster. You replaced the 20MHz mainframe with a few megabytes of RAM with a 2GHz processor with a couple of gigabytes of RAM. But its still the same old, same old -- its just now we can all afford one.

But everyone was being so clever that they overlooked the fundamental questions -- they're still out there, we just had to wait for the technology to play out.

GPUs look like one of the few areas that can usefully exploit parallelism. The problem is that -- as HDTV owners will know -- the average human eyeball isn't very HD, its actually SD (figures, since TV was originally designed around the properties of the Mk. 1 eyeball).

posted by : Martin, 19 December 2007 Complain about this comment
well actually there is something interesting

there is a project for linux that should speed up the boot speed by quite a bit. The difference is that it runs multiple tasks at the same time instead of waiting for a return to continue. Then theres even a machboot cd that boots to x in about 10 seconds or less

posted by : missingxtension, 19 December 2007 Complain about this comment
My web browser is too slow

Then again, I've been running Firefox with 40 tabs open and about 35 plug-ins, on a 2GHz Athlon XP. My new quad-core better do just fine, given that Firefox seems to run a thread for every two tabs or so.

*sigh* It's sad when you can pick the verification code from a list.

posted by : jbo5112, 19 December 2007 Complain about this comment
Software?

Finding it difficult to break tasks up so they can be accelerated effectively by multiple cores is not really a failing of software developers. The problem is far from unique to computing.

Some tasks can be easily parallelised; take fruit picking, for example. If you have twice the number of people working for you, you can get twice as much fruit picked in a given time frame, up to quite a large number of fruit pickers.

At the other extreme -- to use a famous analogy -- it takes nine months to make a baby no matter how many women you assign to the task.

Think about how many people you could usefully employ to do various everyday jobs and you'll start to see what the problem is. Baking a cake? Maybe you could split the tasks up usefully to two people, but even then one of them will probably be sitting around a fair bit and both of them will be twiddling their thumbs once the actual baking starts. Any more than two people would be a waste. Baking hundreds of cakes (a "cake server") with many, many ovens would be easy to parallelise because you can e.g. give one cake to each person. How about writing a letter? Give one secretary the top half and the other the bottom half?

This isn't some temporary problem that stupid and lazy programmers haven't been bothered to solve. Taking a task and thinking of ways to split it up to effectively use the resources at your disposal is *hard*. There is a reason why server software is much more able to use those extra resources (think "lots of cakes needed") than desktop software (the user wants one cake as quickly as possible).

3D rendering, to take another example, is like fruit picking -- in the extreme, you could give one pixel to every CPU. (More realistically, you evenly divide the image by the number of CPUs you have.) Most software isn't like that, just like most tasks in life can't be so readily subdivided.

posted by : JasonB, 19 December 2007 Complain about this comment
another fine mess

If the Vole is involved then all that will happen is that the software will use more cores to do the same thing slower, with more bugs, spyware and DRM.




posted by : Richard, 19 December 2007 Complain about this comment
Wrong problem

Programmers ARE getting into multi-threading - the ones developing apps that actually need it are.
I have a Core 2 Quad at home, and I like it a lot. What does it do for my Windows box ? Nothing perceptible, at least not when I'm using Office, or reading my mail, or programming something.
No, it's the OS allocating tasks to various CPU cores that is interesting. With my Quad, when I'm stumped on IE, I can still get to the Windows menu and launch something else. I can burn a DVD (data, not films !) and continue programming serenely. I can run a game server AND client on the same box.
More importantly, games that have indeed been programmed for multi-core really do come into their own. As a happy Supreme Commander gamer, I have witnessed first-hand just how important more cores are to its performance.
So there are indeed programmers that are working on this threading thing - it's just that Office does not need it.
The only thing Microsoft needs to do is make its bloody Explorer not hang the whole OS when it encounters a problem. That issue has been improved on in XP, but we're still not there yet.

posted by : Pascal Monett, 19 December 2007 Complain about this comment
Occam

Does anyone remember the Transputer and Occam? This was all early-mid 80's 

While the Transputer might have been running slightly slower than my pushbike, for the tine is fast and it was a pluggable parallel device. I remember shedloads of papers being published on all of this, with it all boiling down to "ultra-fast matrix multiplication" and dealing with the real world referred to as an "edge problem". 

There didn't seem to be enough real world problem that required all this thinking and the Transputer (briefly) ended up embedded in graphics cards and disc controllers (IIRC) 

I've always surmised that multiple cores push the problem around rather than solve it. Someone still has to design a universal scheduler (just as soon as they've finished anti-gravity, no doubt).


posted by : Gerry, 19 December 2007 Complain about this comment
omg Ubuntu rocks then!!!

bollocks!!! 
"Ubuntu" has nothing to do with the multithreading power of "linux kernel" so better come clean. I do not know what's the fuss about "64bits" which is a whole different department on this story.

And you can max any number of cores in linux with "make -j <#cores+1>"

raskolnikov

posted by : raskolnikov, 19 December 2007 Complain about this comment
That is old

I already have done it. :)
Others had done it.
But yes you have to rewrite the code.a little,
A magic compiler autoparalizer can't do it all.
Where is the link to get the money ?
Otherwise in the future it will have to be opensource.



posted by : aldo, 19 December 2007 Complain about this comment
Paradigm

Crysis is ridiculous. Rendering and Ray tracing are not hobbies. Word is not a benchmark and lastly why do I care when I can't get better than 5Mbps?

If one more person uses the term Paradigm I will stop using English to communicate. I believe an Englishman said it best... Paradigm is a word too often used by those who would like to have a new idea but cannot think of one. Mervyn Allister King

posted by : Dennis, 20 December 2007 Complain about this comment
and for the OS ?

Are all OS equal in front of multi processing and multi-core ?

OSX seem's to have years of experience from the past when their processor were stuck in low frequency and they began to put two processor in a work station.

Waiting for Windows Seven, working 
- in 32 bits 
- with 4 gig of ram
will be harder and harder and even more in 2 o 3 years. With a task monitor showing only half of the cores at 100% it will be ... ridiculous ?

or people will buy 1000 euro a server version ? or Vista 64 will be usable in this time ?

but for 12 next month ?

posted by : grish, 19 January 2008 Complain about this comment
Advertisement
Subscribe to the INQ Newsletter
Sign-up for the INQBot weekly newsletter
Click here to sign up Existing user
Advertisement
INQ Poll

Christmas computer sales

Will you be buying a new computer this Christmas?