Hello,

We noticed you're browsing in private or incognito mode.

To continue reading this article, please exit incognito mode or log in.

Not an Insider? Subscribe now for unlimited access to online articles.

Intelligent Machines

Multicore Processors Create ­Software Headaches

For decades, improving processor performance meant cranking up a chip’s clock speed. The payoff was immediately obvious to users: applications ran faster. But a faster chip consumes more electricity, draining batteries dry in mobile devices. Consequently, chip makers moved to energy-saving multicore designs, where multiple low-power processors on a single chip combine to replicate the performance of a single, faster processor (see “Designing for Mobility”).

Unfortunately, applications on multicore systems don’t get faster automatically as cores are added. Software has to be written to take advantage of the parallel processing power. And writing programs that run efficiently and stably across multiple cores is hard. Unless we solve this programming problem, says Prith Banerjee, Hewlett-Packard’s senior vice president of research, users won’t see any speed advantage in new microprocessors. Banerjee adds, “This is a very fundamental problem.”

This story is part of our May/June 2010 Issue
See the rest of the issue
Subscribe

DATA SHOT

8.2 gigahertz
The current speed record for a desktop microprocessor, achieved by enthusiasts who “overclocked” a chip designed to run at three gigahertz. To prevent the chip from melting, it was cooled with liquid nitrogen.

A promising potential solution is to take human programmers out of the loop as much as possible: rather than have individual programmers work out how to make their applications run across two, four, or more cores, the messy details could be left to compilers, the software used to convert high-level programming languages into the machine code a computer can understand. All the major software and chip companies, along with many academic researchers, are working to develop compilers that can handle such tasks. The biggest obstacle is that it’s difficult to identify the parts of a program that don’t depend on other parts, so that a core won’t be left idle while it waits for some piece of data. Simply persuading developers to write cleaner programs, with well-defined interfaces between blocks of code, would make the job much easier, says Wen-mei Hwu, a professor of electrical and computer engineering at the University of Illinois. But he estimates that it will be five years before multicore-friendly compilers and matching programming practices diffuse through the computer industry.

Tech Obsessive?
Become an Insider to get the story behind the story — and before anyone else.

Subscribe today
More from Intelligent Machines

Artificial intelligence and robots are transforming how we work and live.

Want more award-winning journalism? Subscribe to Insider Online Only.
  • Insider Online Only {! insider.prices.online !}*

    {! insider.display.menuOptionsLabel !}

    Unlimited online access including articles and video, plus The Download with the top tech stories delivered daily to your inbox.

    See details+

    Unlimited online access including all articles, multimedia, and more

    The Download newsletter with top tech stories delivered daily to your inbox

/3
You've read of three free articles this month. for unlimited online access. You've read of three free articles this month. for unlimited online access. This is your last free article this month. for unlimited online access. You've read all your free articles this month. for unlimited online access. You've read of three free articles this month. for more, or for unlimited online access. for two more free articles, or for unlimited online access.