With Intel Corp.'s quad-core technology only six months old in the market and Advanced Micro Devices Inc. (AMD) still preparing to open the gates for its own four-way processor, there are a number of software applications that aren't designed to use quad-core processors yet.
Thus, data center managers considering new server purchases should consider whether or not their applications can make effective use of a new
"The presence of multicore chips shouldn't drive the decision to buy. Users should make upgrade decisions based on their specific needs," said Tom Halfhill, senior analyst and senior editor for Microprocessor Report.
In fact, many independent software vendors (ISV) have yet to design applications that take full advantage of quad-core technology, since their applications run just fine on a single core.
A poll released this month shows that ISVs are unprepared for the industry's shift to multicore processors. The results are based on responses from a webinar in 2006 cosponsored by chipmaker AMD and PeakStream Inc., a California-based software application platform provider that helps developers port their applications to multicore chips.
The results showed more than 50% of ISVs weren't planning to migrate their applications to multicore processors or had not made migration plans.
More than half of the respondents said that less than 25% of their application programmers have expertise in multithreaded coding, the poll found.
"It's important to understand that if the software developer doesn't do something, the majority of software applications will run on a single core. The application will not leverage the multiple cores available and, in fact, the application may even get slower," said Ray DePaul, president and CEO of RapidMind Inc., in Waterloo, Ont., that makes a software development platform.
In the past, software performance improved as processor clock speeds went up. When processors went from 1 GHz to 2 GHz to 3 GHz, the software just ran faster, and developers didn't have to change a thing, DePaul said.
Because of heat and power issues, processor manufacturers looking to increase performance stopped increasing clock speeds and started adding additional cores to the same processor die.
"There is talk about 80-core processors (from Intel) now and this is scary to software developers. They can't wrap their head around how that is going to work," DePaul said.
That means that software developers can no longer lie in the back seat and let the processors do the driving. Developers have to figure out how to get their applications running in multiple cores and maximize performance potential for users who invest in quad-core chips, DePaul said.
Vendors who can parallelize applications -- break them up for processing across multiple cores -- should see huge increases in the performance of their products when going from single to multiple-core processors. Those who do not or cannot parallelize their applications will not be able to take advantage of multiple cores, said Joe Clabby, Clabby Analytics.
And there are some applications that simply don't need to leverage multiple processing cores, so ISVs don't need to rewrite them.
"It all depends on the application itself…What good would it do to run Microsoft Word across multiple cores? It performs just fine as a single-threaded application," Clabby said.
The main stumbling block around developing applications that takes advantage of multiple cores surrounds multithreading, a programming technique.
Software designed to be multithreaded -- that performs task parallelism -- does well in systems with mutlicore processors.
To multithread, software developers break up an application into multiple tasks that can be run in parallel, all with approximately the same workload.
"It is not only conceptually difficult for developers to break up their program, but is very impractical when you get beyond two or three tasks. Issues, such as deadlock, synchronization and race conditions, have plagued this model for years," DePaul said. "And if you are successful in utilizing four cores, what do you do when an eight-core processor comes along? It's back to the drawing board."
The RapidMind Development Platform scales workloads across many cores by enabling parallelism of the applications. Software developers identify areas where their applications are running slowly and would most benefit from running on multiple cores. Those portions of the application are handed over to RapidMind's platform, which distributes them among the cores, DePaula explained.
"The software developer focuses on their application, and the platform focuses on extracting performance from the processor cores," DePaul said.
California-based PeakStream Inc. also offers a platform for creating data parallelism. Called Stream Programming, software developers can download it from the company Web site and use to create quad-core compatible programs, said Michael Mullany, vice president of product management,.
AMD has a division focused solely on working with software vendors to redesign programs so they are quad-core friendly.
"We are designing our quad-core processor to run all software, but how well the applications take advantage of the technology differs," said Margaret Lewis, AMD's director of commercial solutions.
What applications are ready for quad core?
The type of applications already designed to use quad-core processors are those that multithread and keep all available cores busy.
Multiple processors on servers have been available for a long time, so most performance-hungry applications already support multiple processors -- whether on one chip or several, said Gordon Haff, principal analyst with Illuminata Inc. in Nashua, NH.
"To be sure, different applications have differing degrees of parallelism. Many apps are quite multithreaded today and, in any case, a typical server has lots of processes running at the same time. So even if one app can't consume all the cores, there are plenty of other applications and system processes that can," Haff said, who also noted that desktop migration will be slower to upgrade.
Heavy workloads from the use of virtualization, Java, expansive databases and notoriously complex enterprise resource planning (ERP) applications, for example, will significantly improve performance-wise when going from dual-core to quad-core processors, said Bob Burroughs, Intel's performance marketing manager.
"Workload performance improves 50% to 75% when using quad core compared to dual core," Burroughs said.
Quad-core processors don't automatically double the performance of a dual-core chip because performance scenarios, such as software applications and memory bandwidth, vary. Given certain workloads, they may deliver anywhere from 30% to 70% better performance, according to an AMD spokesman.
And then there are applications that are inherently multithreaded, like Java, for example.
"The big package software folks have seen multicore coming and were prepared for it, but there are folks building applications that could do a lot better, and a lot of that has to do with education. It's a matter of difficulty in multithreading the applications," said Dan Roberts, director, Solaris Core and Open Solaris, Sun Microsystems Inc.
"It's partly a case of large software vendor versus small. Writing usefully multithreaded code does take certain skill sets that may be missing in a small development shop that hasn't had to worry about such things in the past," Illuminata's Haff said. "In some cases it's just hard to wring a lot of parallelism out of the workload."
Roberts agreed that the types of applications that haven't evolved toward multithreading are typically written by medium to large companies with in-house software developers that aren't abreast of multithreading techniques, Roberts said.
Companies, like AMD and Sun, are working with these types of developers to help them move onto multicore platforms.
"Sun has been working with software developers, like Oracle and IBM software group, to get applications multithreaded, and there are a lot of applications that are already capable of multithreading," said Hugo Rivero, senior staff engineer, Sun's ISV Engineering Group. "When we speak with software developers, we encourage them to design programs that can take advantage of many cores, not just four, because the processor world is advancing so rapidly."
The operating system comes multithreaded
The operating system is less important for full use of multicore than the actual application running on it, since most operating systems are already capable of multithreading, said Margaret Lewis, AMD's director of commercial solutions.
"Modern OSes, like Novell, Red Hat Linux and Solaris, already do a good job of scheduling multithreads, since they are designed to do so by nature. Depending on how scaleable the OS is, it can pool the application loads across four cores," Lewis said.
Likewise, Solaris has been built for markets where scaleup is required, running up to 128 processors in a single server, so multithreading is natural for Solaris, Sun's Roberts said.
Microsoft server software, like the Windows Server 2003 Standard Edition, for example, run on single-core, hyperthreaded or multicore processors but will perform better with multiple cores, as will the upcoming Windows Server "Longhorn," a Microsoft spokesperson said.
Unfortunately, if the application needs all the performance available in a multicore processor, it can't rely on the operating system. The onus is on the software developer to make its application multicore aware. If software developers do nothing, the operating system will allow multiple applications to run on separate cores, but no individual application will realize a real performance increase, RapidMind's DePaul said.
But don't expect ISVs to go back and rewrite older applications. Instead, look for them to rewrite their next generation of applications for multicore processors, AMD's Lewis said. "The hardware has to be out there for awhile so the software can be written for it."
Let us know what you think about the story; email: Bridget Botelho, News Writer
Also, check out our news at serverspecs.blogs.techtarget.com