Threading

Replace the gcc by icc, but meet performance problem

Hi, all,

Now our team try to use the icc replace gcc which we have used years. But find the icc compiled executable file performance is bad than gcc.

We use the script generated some small demos to test this, all in the attached test.tar.gz

Test machine CPU: Intel(R) Xeon(R) CPU E7-4850 v2 @ 2.30GHz
OS: Centos 6.6
GCC: 4.7.2
ICC: parallel_studio_xe_2015_update3

hybrid MPI+OpenMP

I am running a hybrid MPI/OpenMP code which is:

call MPI_Init( ierr )
call MPI_Comm_rank( MPI_COMM_WORLD, rank, ierr )
call MPI_Comm_size( MPI_COMM_WORLD, size, ierr )

t1 = MPI_Wtime( )

!$omp parallel do private(i, x) reduction(+ : pi_partial)
do i = rank, N-1, size
x = (dble( i ) + 0.5_DP) * dx
pi_partial = pi_partial + f( x )
end do

pi_partial = pi_partial * dx
call MPI_Reduce( pi_partial, pi_estimate, 1, MPI_DOUBLE, MPI_SUM, 0, &
MPI_COMM_WORLD, ierr )

Boost error only with the Intel compiler

I'm currently trying to port a big application from gcc to the Intel Compiler. I managed to compile it with 13, but I have to do it again for 15, especially since a lot of the code now uses C++11.

Unfortunately, a piece (a Boost::Spirit grammar) that compiled fine with icpc 13 (and gcc and Visual Studio) now fails to compile, and I have absolutely no clue as to what is happening. I managed to limit the code to this grammar:

 

Subscribe to Threading