Please wait while the page is being loaded Skip this advertisement >
Friday | 5 December, 2008
Hard cores

He says Fortran and C++ don't contain parallel constructs natively, whereas Java does, so the move to CMP may boost Java's fortunes.

But the CMP train has left the station, whether software developers like it or not. Intel says 85 percent of its server processors and 70 percent of its PC processors will be dual-core by year's end. Halfhill predicts that in five years, microprocessor chips in servers will have eight to 16 cores, and desktop machines will have half that number. And, he says, each core will be able to process at least four software threads simultaneously, a technique Intel calls hyperthreading.

The angst today over optimizing software for CMPs is a little like that of 20 years ago when developers obsessed about the amount of memory and disk space available, says Halfhill. Now both resources are so cheap and plentiful that most applications just assume that they will get whatever they need. "In five to 10 years, we'll get to the same place with processor cores," Halfhill predicts. "There will be so many that the operating system will just dedicate how many cores the application needs, and you won't worry if some cores are being wasted."

Intel's Reinders says CMPs will give a boost to hardware virtualization -- by which a computer is made to run multiple operating systems -- with CMPs allowing for a more fine-grained partitioning of a machine. It is possible to carefully control and allocate processing resources by specifying, for example, that a certain application may use two cores and no more, while some higher-priority application gets four cores. "If you map virtualization onto individual cores, you can get more predictable response," he says.

CMPs offer performance advantages over systems with multiple, separate processors, because interprocessor and processor-memory communication is much faster when it's on a chip. Rice University's Kennedy predicts that will lead to hybrid systems consisting of clusters of computers running multicore processors. "Then you have two kinds of parallelism: cross-chip parallelism, perhaps with message passing and a shared memory, and on-chip parallelism," he says. Then, functions that require very high interprocessor bandwidth can be put on a CMP, and those that don't can be distributed across the cluster. Various types of transaction processing and database systems could make good use of such an architecture, Kennedy says.

While everyone agrees that more processors, more cores and more power can generally be put to good use in big enterprise-wide systems, the future of CMPs on desktops and laptops -- where even single-core processors are idle much of the time -- is not quite so clear. Multithreaded game software can put the parallelism to good use, and so perhaps can a few specialized applications, such as speech recognition.

Single-processor-core PCs today can take advantage of multitasking, in which one thread, for example, deals with display while another does a long-running computation and another goes out to a server. But what to do with eight processor cores all running at 3.6 GHz?

Microsoft's Larus says he knows people are probably having trouble imagining how a single user might take advantage of that kind of system. "To be honest, so are we," he says. "This is a subject of very active discussion here."

Multi- this, parallel that

Multitasking: gives the user the impression of concurrency. A sequence of code is suspended briefly while some other code runs on the same processor. In multithreading, one thread pauses while another runs on the same processor.

Hyperthreading: an Intel term; multiple threads run simultaneously on one processor.

Chip multiprocessor: two or more processing units on one chip running separate applications or a single parallel application. They may have their own cache or share cache.

Instruction pipelining: the processor begins work on the next instruction before the previous one is complete. Speed is increased by storing the next instruction in cache.

Superscalar processing: the ability to execute two instructions per clock cycle.

Branch prediction, out-of-order execution and speculative execution: various techniques to allow simultaneous execution of parts of a program that may not be strictly parallel. Instructions are executed conditionally and sometimes have to be reversed.

Vector processing: scientific or engineering calculations in which an entire string (vector) of numbers is processed with one operation.

Computerworld Buyer's Guide - Vendors Matched to this Article
Computerworld Buyer's Guide - Vendors Matched to this Article
Additional Resources
Executive Guides
Whitepapers
Zones
Zone logoZones provide focussed content from Computerworld and leading technology partners.
Newsletter Subscription
Sign up for our Computerworld newsletters!
RSS Feeds
Market Place

 

Smart SOA World Tour

Discover how SOA can create smarter outcomes for your business.

Attend and learn:

  • How SOA is helping leading companies to become more agile
  • Where you should be applying SOA processes in your company
  • The top SOA implementation mistakes to avoid

Click here for more information.
Whitepaper

Delivering the Power of Choice with Microsoft Dynamics CRM

Join Ed Thompson, Research VP, featured analyst firm, Gartner, Inc., and Brad Wilson, General Manager CRM Microsoft Dynamics, for a new webcast, Delivering the Power of Choice with Microsoft Dynamics CRM, available now. Our panel will break down the best practices for getting the most out of CRM and you'll learn key recommendations you can implement in your organization. Additionally, you'll also hear Microsoft's vision for CRM.

Enterprise IT Buyer's Guide
Find Technology Vendors Fast
 
Find vendors by name | Find by category
Sponsored Links