SAN JOSE, Calif. Intel Corp. is rolling out the first major upgrade of its C++ and Fortran compilers in two years, adding new features to better exploit programming its X86 multi-core processors. The compilers represent one of several steps Intel plans over the next two years to deliver software that helps developers make better use of the multiple cores it now puts on its CPUs.
The biggest boost in the version 10.0 compilers is an ability simultaneously to optimize applications both for vector processing of multimedia instructions as well as for scalar processing of multi-threaded data parallelism. Version 9.0 compilers rolled out two years ago handled the two jobs separately.
"These are the first compilers that can handle optimization for vector and parallel code in one phase. That makes these compilers faster and their resulting libraries higher in performance," said James Reinders, director of marketing for Intel's software group. "We started a project three years ago to merge these into one process," he added.
The new compilers generally offer a 10-15 percent performance boost over existing compilers, he added. They are also the first to support the new multimedia instructions extensions called SSE4 Intel is rolling out with its 45nm Penryn processors later this year.
The C++ compiler comes in editions for Linux, the Mac OS and Windows that retail for $599, including libraries. To help spread the use of tools for multicore programming, Intel is making the compilers available for the first time at student discounts ranging from $49-$129.
The C++ compiler comes with a set of thread building blocks aimed at shielding programmers from the still-evolving details of Intel's multi-core processors. The building blocks automate some of the low-level decisions about how to make particular tasks parallel.
"We encourage people to use these abstractions," said Reinders. "People need to express parallelism at a high level so they don't have to go back and readjust their assumptions when the system changes," he said.
"For instance the size of the processor cores may not be symmetric in the future. And you don't always want to divide tasks up evenly across processors anyway," he added.
Intel will roll out an upgraded set of thread building blocks in July as the first of several near-term steps to ease the job of programming its multicore CPUs. Next year, the company plans to release additional tools beyond its VTune software to automate the process of determining where applications can best use parallel execution techniques.
Another top priority for the Intel group is to develop debugging tools for its multicore processors.
"This is where we are investing most of our new resources," said Reinders. "The debug tools for multicore CPUs are inadequate today, and if we don't improve them people will just decide programming for multicore processors is too difficult. There is a huge amount we ca do in this area in the next 24 months," he said.
Reinders called on application developers to be more creative about finding ways to find parallelism in their applications, especially in the user interface aspects of their apps.
"The industry issue that concerns me the most is that developers need to change their thinking," he said. "We have been trained to break problems into sequential chunks, but we need to start thinking about parallel processes like the supercomputer people do. It's a new mind set," he added.