RealTime IT News

Intel Updates Compilers For Multi-Core Development

Intel has updated its C++ and Fortran compilers for the first time in two years, adding new features to support the multi-core processors that have become the focus of the company recently.

Intel also announced a new package for students that includes the compilers plus its VTune Performance Analyzer, Thread Checker and Thread Profiler source code analysis tools in one discounted package for students who qualify.

The Intel C++ Compiler and Fortran Compiler Professional Editions version 10.0 can optimize applications for both vector processing of multimedia instructions and scalar processing of multithreaded applications.

It examines code and looks for places where code can be multithreaded and does it automatically, so code can benefit from simply being loaded and recompiled without any manual tweaks. It will also be the first compiler to support the new SSE4 instruction set in Intel's forthcoming "Penryn" processors.

Intel's compilers are packaged with Microsoft's Visual Studio 2005 compiler, out of necessity, according to James Reinders, director of marketing and business development for Intel's  software division.

The reason for this is Intel wanted to use the linker, a program that takes objects generated by the compiler and assembles them into a single executable, in Visual Studio for the sake of having one industry standard linker to build applications.

Other platforms, like Unix, Linux and Macintosh, provide a linker within the OS but Microsoft only makes it a part of Visual Studio, and to get at it, Intel had to license the entire Studio product in the process.

"Intel has had its own linker in the past, but Microsoft does a lot of innovations in their environment, including their linker. It's not a value add for Intel to make its own linker and can be a source of incompatibilities," Reinders told internetnews.com.

Intel took four specific steps to improve the parallelism in the C++ and Fortran compilers. First was adding support for OpenMP, a shared memory multiprocessing API that has been in use for more than a decade and is widely supported.

Intel also added Threading Building Blocks to the C++ compiler to improve parallelism and a new Math Kernel Library for specific threaded scientific routines. Finally, it added Integrated Performance Primitives (IPP) for improved multimedia performance.

Performance improvements will depend on the kind of application. Some, what Reinders called "embarrassingly parallel," are applications that spend more than half of the time in tight loops or subroutines.

These are scientific, modeling, physics, and some financial applications. Those tend to be the best candidates for parallelization. On a four core system, expect improvements from 2.5 times to four times the performance over a single core machine. An eight-core machine will be five to eight times faster.

Apps with a mix of multimedia and then user interaction and file interaction have more mixed performance. They might have moments of parallelism and perform really well, and other moments of being totally serial in performance. These could be 1.5 to 2.5 times faster on a quad core machine vs. a single core machine, Reinders said.

Then there's those applications where the code doesn't spend much time in one part of the application, such as databases. Those do run well in parallel but require a whole lot of manual hand coding, he said.

The C++ and Fortran compilers comes in Windows, MacOS and Linux editions and have a price range of $599 to $1,499, depending on what extra bundles are included.