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

Any published ICC vs GCC benchmark result?

missing__zlw
Beginner
491 Views
Hi,
I was asked to choose which compiler to use for certain project. The choices are GCC (4.5.2) and ICC(whatever the latest version).
I searched for benchmark result and didn't find meaningful ones.

This is targeting on Intel Arch machines(Core i5 etc) , Linux OS.

The project is computational, ie, general searching, data processing. I am looking for runtime performance, not compiling time.

Any reference? Thank you.
0 Kudos
8 Replies
Brandon_H_Intel
Employee
491 Views
Go to http://software.intel.com/en-us/articles/intel-composer-xe/#details and scroll down to the graphs at the bottom for some spec numbers on Linux*.
0 Kudos
TimP
Honored Contributor III
491 Views
It looks like you don't have definite enough criteria to make a choice.
Have you decided between 32- and 64-bit linux?
Current versions of gcc have made significant improvements in run-time performance, even more so than with icc. You aren't likely to see nearly the performance differences that may have been quoted with obsolete gcc benchmarked against current icc. Your quoted gcc version is in between, not so far out of date.
Can we infer from your question that you don't use C++ ? If so, this gives you more latitude to employ the many performance pragmas which may be used to get a performance advantage from icc, particularly if you rule out C99 restrict qualifiers.
Both compilers require some study to decide upon appropriate compile options, gcc more so than icc, in view of your choice of a version which doesn't yet include corei7 options, which balances against the greater amount of study involved with icc pragmas.
0 Kudos
missing__zlw
Beginner
491 Views
I am targeting 64 bit Linux.
gcc 4.5.2 is not out of date, isn't it?
My project is in C++.
0 Kudos
TimP
Honored Contributor III
491 Views
Although the best supported linux distros still use gcc versions that old or older, if you wanted an Intel core architecture option in gcc, you would use a more recent version (4.6.3 is current, 4.7.0 due very shortly). icc can give you much better vectorized performance than gcc default options, if that's relevant.
Also, icpc has some attractive parallelism options beyond OpenMP, which it shares with your g++, such as Cilk+.
0 Kudos
missing__zlw
Beginner
491 Views
Thanks. But I am interested in knowing the benchmark of "better vectorized performance ". Any test data to support it?
0 Kudos
TimP
Honored Contributor III
491 Views
You were already given a reference to some benchmarks of icc vs. an old gcc without corei7 options. If you decide to use gcc, you've been warned that you will need to study the options if you're interested in performance.
You can run published benchmarks yourself on the gcc options, such as the Levine-Callahan-Dongarra vector test suite and recent derivatives of it. Going further into the comparison of gcc versions and options makes no sense in this forum.
0 Kudos
SergeyKostrov
Valued Contributor II
491 Views
Quoting zlw
...The project is computational, ie, general searching, data processing. I am looking for runtime performance, not compiling time...


The best way to proceed is to select a couple of algorithmsimplemented in your project and compare
performance with ICC ( evaluation version, for example) and GCC. It is better to have your own data
because a benchmark from a CompanyA will promote a ProductA, and a benchmark from a CompanyB will
promote a ProductB.Everybody will report that our product isthe best.

0 Kudos
SergeyKostrov
Valued Contributor II
491 Views
Quoting zlw
...Any reference? Thank you.


Please take a look at:
http://software.intel.com/en-us/forums/showthread.php?t=102424&o=a&s=lr
and
http://www.open-mag.com/features/Vol_15/IntelC/intelc.htm Note: It is a link to a very old article...

0 Kudos
Reply