Intel released its version 7.0 compiler suite for Linux and Windows, for the x86 and Itanium1/2 architectures. Optimizations include support for SSE2 in the Pentium 4 CPU and software pipelining in the Itanium1/2 CPUs. Inter-procedural optimization (IPO) and profile-guided optimization (PGO) can provide greater application performance. Intel Compilers support multi-threaded code development and optimization through the Auto-Parallelism feature and OpenMP 2.0 support. Intel claims that the new version of their compilers are now much more compatible with Linux code (including the GCC C++ ABI) and that they also outperform GCC 3.2 by 30% at the produced executables. There is a 30-day evaluation version for everyone to try out.
the compiler to purchase. Also, is it alright to have on your system appilcations compiled in multiple compilers (e.g GCC 2.x, GCC 3.1, Intel’s compiler). The reason why I ask is because it seams that distro don’t like it when you have multiple compilation around
Around $400 bucks I think. Before you scream that it is too expensive, I must say that the price is very good and that we have already talked about it (http://www.osnews.com/comment.php?news_id=56#245). This compiler is not for individuals, but for companies. $400 bucks is just 1-2 days the payment of an engineer, so it is really not an issue for companies. Individuals should only buy it if they really need that featureset and speed. Otherwise, they can stay just fine with GCC.
Yes, it can be installed side by side to GCC.
They didn’t claim that. It was a quote they selected from some guy at CERN, who probably was comparing some esoteric floating-point intensive scientiffic application. What is interesting is that they chose that one out of all the others to put on their front page.
What I can’t seem to find out is if this release includes the latest EDG front-end stuff, which would make ICC pretty much the most compliant C++ compiler out there besides Comeau.
If iam not wrong then the 6.0 version was $0…
My favorite things about icc:
1) Good standard C++ support. On paper, it’s just as good as GCC 3.2 (which means everything in the standard besides ‘export’) while in practice, it’s only nearly as good. Version 6.0, at least, chokes on some of the Boost libraries.
2) Fast! It’s compilation speed to produce an unoptimized binary is a lot faster than GCC’s. This is important during the compile/debug cycle, especially when you take into consideration that (the minute templates are introduced) GCC will take several seconds just to compile Hello World.
3) Great error messages. Better than GCCs (though 3.2’s are better than 2.95.x’s) and a heck of a lot better than Visual C++’s. Of course, my code compiles perfectly the first time, so I don’t notice (for the humor-impaired, that would be a joke)
4) The Linux version is free for non-commercial use.
> If I am not wrong then the 6.0 version was $0…
Only for Linux (free for non-commercial use). The rest of the plarforms which are the main market targets for Intel are still commercial.
Are you referring to the error messages with a carrot printed undearneath the error? As for C++ compliance, as I mentioned earlier I think this release was synched with a new front-end. Even so, last I checked there weren’t any issues that I noticed with compiling boost with 6.0.
The error messages are nice not just because of the carrot, but because they’re worded very well in general. As for compatibility, 6.0 fails several of the tests (check out the boost compiler matrix) especially the lambda stuff.
Thats the EDG front-end-fu there, which you’ll notice on other compilers using it too.
I don’t use the lambda stuff, so that could be why I haven’t noticed. Anyway, I’ll see how it does pretty soon (downloading now).
Anyone out there tried to build an entire OS with this thing yet? Anyone tried to plug it into Gentoo and see if it will work?
I would be interested to see what kind of performance an entire OS compiled with this thing would get.
Then again, I use athlons, so this compiler probably wouldn’t help me too much.
Derek
what about them?
that the GCC compiler team had the money to hire all those nifty intel engineers so we could have a faster, more stable open source compiler.
The GCC team are doing a great job, but they are not moving as fast as the ICC team for obious reasons (money yet again).
It’s not so much the money but the patents. A lot of the nifty stuff with respect to optimization is patented. Besides, GCC isn’t that far back. According to most benchmarks, 30% better than GCC is rather optimistic for integer code. Unless you’re doing lots of calculations, the differential will be less than that. The main advantages of Intel C++ is that it handles heavy duty floating point code very well, and it is _slightly_ better at reducing the cost of C++ abstraction (thanks to high-level optimizations).
“the compiler to purchase. Also, is it alright to have on your system appilcations compiled in multiple compilers (e.g GCC 2.x, GCC 3.1, Intel’s compiler). The reason why I ask is because it seams that distro don’t like it when you have multiple compilation around”
it is my understanding that it is fine but yes apps have a knack to complain when they rely on another app that was compiled with a different compiler.
Like what? The only really “nifty” compiler stuff I know of thats patented are graph coloring algorithms, which GCC can now use. What else is there?
Does this mean that gentoo could use it since the user is ‘personally’ using it to compile the entire OS.
Just want to notice people that gcc also have profile guided optimizations. Play around with the -fprofile-arcs and -fbranch-probabilities switches, and compile your program with it.
When you then run the program it will produce a file which gcc uses when you recompile it, so it can optimize more when it comes to branch predicting, cache hits and similar.
And as always, when after performance. use -march=<yourarch> and defintly -fomit-frame-pointer(makes debugging impossible on atleast x86)
>Does this mean that gentoo could use it since the user is ‘personally’ using it to compile the entire OS.
Only in theory. There are tons of stuff that icc can’t compile, much thanks to autoconf/make, icc is not “command line compatible” with gcc, but also many uses some extensions of gcc or wrote bad C++ code (which gcc 2.9x happens to accept)
phoenix root # emerge -s icc
Searching…
[ Results for search key : icc ]
[ Applications found : 3 ]
*snip snip*
* dev-lang/icc
Latest version available: 6.0-r1
Latest version installed: [ Not Installed ]
Size of downloaded files: 39,820 kB
Homepage: http://www.intel.com/software/products/compilers/c60l/
Description: Intel C++ Compiler – The Pentium optimized compiler for Linux
*snip snip*
there is also an icc USE flag, used by ebuilds like pov-ray which has shown very significant speed increase with icc.
you can emerge icc, but then you need to add the license file which is easily obtained from the intel website. many parts of gentoo wont compile using icc, but many do. icc6 wont, for example, compile a kernel. remember to edit your CFLAGS so that they dont confuse icc and such and CC to icc. you will still need gcc3.2, and it is my opinion that many things should still be compiled with gcc2.95.3 (gcc3 links everything it builds against itself which has introduced problems for me during upgrades/downgrades/errors/etc plus in some situations gcc2 is just less problematic for other reasons). icc is also a lot more strict about what code it will accept.
I’m fairly sure that an icc7 ebuild is on the way if there is still a free for non-commercial use license.