Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Overview of experience with icc

dumbledude
Beginner
274 Views
Hi there.

I did a search for a similar post, but couldn't see any.

We have a product, initially developed on solaris (sparc), now sold on Win64 as well. We are CPU-bound and some customers can barely fit our processing into the batch window they have.

Can anyone offer any ideas of what we could experience if we moved to icc? I'm interested in

* debugging under Visual Studio (currently using 2005)
* performance increases likely to be seen
* any problems with libraries we use (Roguewave, STL, CppUnit, OCCI and one lesser-known library that we've purchased as a binary with a "C" interface.)
* compilation/compatibility issues likely to be found
* length of time/effort to switch over to icc

We have 1,000 source files. Providing a line count is not easy, maybe 250,000 to 350,000 lines as a finger-in-the-air count.

Any anecdotes or hard evidence would be welcome.

Thanks!
0 Kudos
1 Reply
TimP
Honored Contributor III
274 Views
Intel C++ has gone through continuing major effort to make it compatible with each version of Microsoft C++ and VS debugger, including compatibility with libraries. I would think that the vendors of commercial libraries could confirm this.
Performance improvements with Intel C++ depend greatly on the nature of the application and the extent to which it has been written to enable or defeat optimization. If your application is amenable to vectorization, it is no contest, you need a vectorizing compiler such as Intel's.
In difficult cases of conversion, it is practical to identify the functions which will benefit from Intel compiler, and change compiler incrementally. The major limitation there is that the Microsoft and Intel whole program optimizations aren't compatible, and would have to be restricted to separate objects. On a project as large as yours, you may not find a single whole program link phase suitable anyway.
Intel has adopted the VC9 conventions for OpenMP, so the Intel OpenMP run-time library works with VC9 /openmp, sometimes significantly improving performance.
0 Kudos
Reply