Overview: Porting Applications

This section describes a basic approach to porting applications from GCC's C/C++ compilers on Linux* to the Intel® C/C++ compilers on Linux. These Linux compilers correspond to each other in the following ways:

Language Intel
Compiler
GCC*
Compiler
C icc gcc
C++ icpc g++

Note

To simplify this discussion on porting applications, the term "gcc" refers to both gcc and g++ compilers from the GNU Compiler Collection*.

Advantages to Using the Intel Compiler

In many cases, porting applications from gcc to the Intel compiler can be as easy as modifying your makefile to invoke the Intel compiler (icc) instead of gcc. Using the Intel compiler typically improves the performance of your application, especially for those that run on Intel processors. In many cases, your application's performance may also show improvement when running on non-Intel processors. When you compile your application with the Intel compiler, you have access to:

Since the Intel compiler is compatible and interoperable with gcc, porting your gcc application to the Intel compiler includes the benefits of binary compatibility. As a result, you should not have to re-build libraries from your gcc applications. The Intel compiler also supports many of the same compiler options, macros, and environment variables you already use in your gcc work.

Porting Strategy

For many gcc applications, porting to the Intel compiler requires little more than modifying your makefile to account for differences that may exist between compiling with gcc and compiling with icc. Other considerations are also noted.

Next Steps