02-10-2009 06:11 AM
In case it's of any interest, my results on Levine-Callahan-Dongarra "vectors" show gfortran 4.4 and ifort 10.1 or 11.0 perform within 10% on 10 of 12 OpenMP parallel cases. In the other 2, ifort comes way ahead. For C code, gcc beats icc more often, when run with the Intel library, but it's much the same story.
These are cases which combine opportunities for vectorization and OpenMP parallel, and are sufficiently well optimized that HyperThreading shows no advantage.
The 2 cases where gcc/gfortran fall behind show off the ability of Intel compilers to vectorize a wider range of intrinsic functions. Combined vector and parallel shows the greatest payoff for those cases.
Comparing gcc and MSVC9, gcc shows relatively little advantage in the OpenMP parallel cases, when running on CPUs from the recent past, as memory bandwidth limitations cut the advantage which gcc has for single thread benchmarks. MSVC9 has the best optimization of max_element/min_element, a remarkable recovery from earlier MSVC where those weren't supported.
02-11-2009 07:51 PM
g++ -O3 -fopenmp -msse3
icpc -openmp -msse3 -ansi-alias -fp-model source
If your question should be phrased more precisely as "which compiler has better default options?" that one won't be solved here.