Free Newsletters

   All InfoWorld Newsletters
Tech's Bottom Line | Bill Snyder » Multi-core to leave developers in dust?

March 27, 2008 | Comments: (0)

Multi-core to leave developers in dust?

Multi-core chip rivals AMD and Intel have been beating their chests as of late, but to what end, I wonder, as developers labor to keep up.

AMD, for one, has fixed the embarrassing flaw that delayed the quad-core Barcelona chip. As Terry Malloy put it in On the Waterfront, so what?

Meanwhile, Intel and Microsoft pat themselves on the back because they've donated $20 million to UC Berkley and the University of Illinois to found the Universal Parallel Computing Research Centers. Well, it's about time.

Why so negative? The dirty little secret (and it's not all that secret) is that the gap between hardware and software has never been greater. Today's software can barely (if at all) take advantage of quad-core processors, but Intel and AMD seem to be giddy with rivalry, rushing to push out chips with even more cores. Intel has already demonstrated an 80-core processor, and you can expect x86 servers with as many as 64 processor cores in 2009 and desktops with that many by 2012, says Forrester analyst James Staten.

That's not to say that the IT industry is scoffing at the potential benefits of multi-core processing. But the mountain between IT and some future multi-core promise land -- namely, the task of developing parallelized apps that keep pace with continual core advances -- is huge, says David Patterson, the Pardee Professor of Computing Science at UC Berkeley and director of the parallel computing lab. "It's the biggest challenge in 50 years of computing. If we do this, it's a chance to reset the foundation of computing."

In the short run, Patterson says, we can parallelize legacy software and gamble on getting value out of eight cores. But that would be only an interim solution, as such apps would not scale to 32 or 64 cores, he adds.

What is frustrating is that this problem didn't exactly sneak up on the industry. Chip development cycles are very long, and key software developers are well aware of what's moving through the pipeline. Sure, software always lags hardware. Many of us complained that we didn't have software that would take advantage of 500MHz back in the '90s. But what Patterson and others call the multi-core revolution poses problems for developers that are qualitatively different than the problems of the past. Why wait so long to get serious about solving them?

Making sense of the multi-core muddle

The cynical explanation for this growing gap is that Intel and AMD are running on a treadmill that requires selling more and more transistors to support the cost of developing and building fabs. As long as buyers are willing to spend the money for cool new hardware, who cares if they don't really need it?

Ray DePaul, president and CEO of RapidMind, which sells a multi-core software development platform, has a different take.

"The first multi-core chips were dual core, and that lulled everyone into thinking this is OK," DePaul says.

Taking advantage of the second core was relatively easy with existing software. But four cores is another story.

"It's the classic disruptive technology," DePaul says. "If the Microsofts and the Intels always got it right, you'd never see a Google or an AMD."

RapidMind hopes to avoid following in the wake of companies such as Thinking Machines and nCUBE, which attempted to build businesses around solving the parallel computing problem without success. I'm not qualified to say whether the RapidMind solution, which includes an embedded API to allow legacy software to take advantage of multiple cores, is viable. But I agree with DePaul when he says, "The business opportunity is far more mainstream than it was because every desktop is shipped with a multi-core processor."

RapidMind spun out of the University of Waterloo in Ontario, where co-founder Michael McCool studied the problems of parallel computing for years. A one-time competitor called PeakStream was purchased by Google last year. It's unclear what the search giant intends to do with the technology, though it may well use it internally to bolster its already enormous computing resources.

In addition to the business opportunity, there's an employment opportunity here as well. Developers who can handle parallel processing or concurrent processing are going to be in great demand. Indeed, UC's Patterson says: "We feel a sense of allegiance to our undergrads but don't know what to teach them. Course work is all focused on sequential [programming] problems."

I don't feel like doing the math, but I'll bet Intel and Microsoft earn $20 million in a matter of hours. So, yeah, I congratulate them for funding some research, but they and other industry heavyweights need to do a lot more. If not, maybe we'll wise up and stop buying what they're selling.

I welcome your comments, tips and suggestions. Reach me at bill_snyder@infoworld.com

Posted by Bill Snyder on March 27, 2008 03:00 AM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




Excellent article. One day soon, the computer industry will realize that, 150 years after Charles Babbage invented the concept of a general purpose sequential computer, it is time to reinvent the computer as we know it. AMD and Intel are in big trouble and they know it. Programmers are having a hell of a hard time writing multithreaded applications that can take advantage of parallel cores. Threads were never intended to be the basis of a parallel programming model but as a mechanism to execute multiple sequential programs concurrently. To find out why multithreading is not part of the future of computing read 'Nightmare on Core Street' at the link below:

http://rebelscience.blogspot.com/2008/03/nightmare-on-core-street.html

Posted by: Mapou at March 27, 2008 09:57 AM

What is being ignored is Amdahl's rule. We have very high capacity CPUs, large memory, but the I/O speed to disks is becoming a major bottleneck to speed. While disk capacity climbs to mthe terabyte range, the capacity to move data on and off the disk has not kept up.

Ever wonder why your PC's CPU is four or five times the speed of your old one, has four times the RAM, yet still takes two or three minutes to boot? Look at your C-drive's I/O queue length! Everything is stacked up waiting for the disk heads to move.

Posted by: Psat at March 27, 2008 11:24 AM

This is nothing new. Hardware has ALWAYS outpaced software in the Computer Industry. We were using 10-processor Unix boxes in the eighties (circa 1986) in many Engineering Colleges. This was called Massive Parallel Processing (MPP). Then we started moving to clustering separate compute machines. Now it looks like it is back to MPP, the only difference is that the processors are now on the same substrate. However, writing software for these mult-core chips is the SAME as it was in the 1980s. System Engineers can easily write code (i.e. OSes,DeviceDrivers...) to take advantage of mult-core hardware, usually with well established C code. It's the new breed of Object-Oriented Programmers (i.e. C++,Java,.Net,Ruby) that are going to have headaches re-writing their bloated inefficient APPLICATIONS to properly utilized the underlying OS services, mainly provided by high-performance C code. OOP apps are typically poorly written apps that don't have a clue about the underlying hardware.

Posted by: Master Of C at March 27, 2008 12:39 PM

It is something new. Those Unix boxes with 10 processors in 1986 cost a big chunk of change. I can buy a 16-core box, loaded with memory and a few disks for around $10K today. Multicore has moved to the masses.

Given "massive" parallelism has moved to the masses, software needs to catch up. Not everyone can write multi-threaded code in C. Threads are really the wrong paradigm. At Pervasive, we're working on a framework for building parallel data processing applications. It takes a totally different approach to building parallel applications. Being dataflow based, problem decomposition is data oriented.

Check it out at http://www.pervasivedatarush.com and let me know what you think.

Posted by: Jim at March 27, 2008 01:20 PM

This article takes a very very simplified view of what is happening in computing with respect to multicore today. You cannot seriously say that multicore is a disruptive play that can displace an Intel or AMD or IBM -- it is disruptive for SOFTWARE, but a very natural continuation for hardware. The resources needed to design and build multicore devices with high performance means that mostly our current incumbents will be able to do that reliably.

On the software side, however, things are harder. And the easy place

Note that there are several ways to take advantage of a multicore device:

* You can run a large set of independent tasks that already exist with improved efficiency. There is no attempt to scale peak performance here, only to enhance system throughput. This is where the parallelism of IO that Psat noted comes in. I have noticed the same thing: http://jakob.engbloms.se/archives/36

* You can use a multicore device as a substitute for a set of existing discrete processors, and run it in asymmetric mode with several operating system instances on the same chip. This lets you consolidate hardware, and is a very popular use of current multicore devices in the embedded space.

* You can try to use all cores at the same time on the same problem, which is what RapidMind is looking into doing.

In the first two cases, a very important problem is just how to debug legacy code and make sure it actually works in a truly concurrent world. Which is not a given. See http://www.embedded.com/columns/technicalinsights/183701679?_requestid=171089 for some examples.

Most of the parallel code we will use on a daily basis will not be new code written to take advantage of parallel hardware to solve "large" computational/data processing problems, but rather decision, control systems, and user-interface code that is mostly ported from existing uniprocessor environments. Written in a mix of assembler, C, C++, Java, Python, Perl, Basic, Prolog, Cobol, etc (and custom languages).

Posted by: Jakob at March 28, 2008 12:41 AM

Multi-core computing is more important to the operating system running many applications, the typical software engineer doesn't care. We developers rarely need concurrency. A few of us write Monte-Carlo simulations, a few of us make image processing applications, but concurrency is a niche requirement on the desktop reflected by the niche tools that are already available to us. I enjoyed my Concurrent Programming Techniques module that I took fifteen year ago, maybe it would have been useful if I'd written compilers and operating systems.

Posted by: Riaz Rizvi at March 28, 2008 09:05 AM

"I can buy a 16-core box, loaded with memory and a few disks for around $10K today. Multicore has moved to the masses."

Depends on your terms. Who are the masses with the 16 core processors you are going to be programming for?

A year old MacBook only has a dual processor. Most consumers, ie. masses will not be spending $10K in the next few years for computers.

Are you talking about entertainment systems where multiprocessors will do well for processing graphics?

Are you talking about enterprises where you have sixteen virtual machines running on a single server?

The reason the problem has not been properly addressed yet is because the problem has not been properly defined yet.

When you settle on a design that sells for a thousand bucks a system, not ten thousand, then you will have a target to shoot for. Other than that, it is all an academic exercise, or specialized government project, like weather prediction.

Posted by: Gostak at March 28, 2008 10:54 AM

There once was a tiny OS called BeOS that handled an 8 processor Xeon server better than anything that I have ever seen still.... I wonder what happened to that tiny OS......

Posted by: Vic at March 28, 2008 03:31 PM

It is amazing to me that anyone would have been surprised to see multi-core/multi-CPU systems on the desktop. They knew it was coming in the 70's, 80's and 90's. Low and behold it is here now. Big problems have always needed this type of power but the desktops been able to get by. Not that the applications on the desktop really need it now but it sure is nice.

An aside from this and related of course is the the happy migration back to specialized processors all residing in one system or even on one piece of substrate. So it is not just multiple of the same CPU but of heterogeneous types be it DSP SPU CPU GPU PPU or some other acronym.

It would have been nice to see Universities being more proactive on this. People really need to think about problems in parallel terms. The market really determines the need though. Quick and dirty sequential applications on really powerful single processors always seem to win out over elegant concurrent designs... such is life!

Posted by: Nich at April 1, 2008 01:43 PM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links