we migrated our simulation code from ifort 11.1.056 to ifort 14.0.2. With the new exec compiled with ifort 14.0.2 we get different results on different Xeon CPUs for some of our test cases. We never encountered this for the old exec with ifort 11.1.
ifort 220.127.116.11, Linux RHEL 6.4 x64, statically linked.
Executable built on Xeon 5680, tests are OK. But some tests give different results when the same executable is executed on a Xeon E5-2670 or E5-2650 machine. The tests use only one OpenMP thread.
F95 Flags used to compile:
-g -nbs -convert big_endian -fp-model source -override-limits -I$(MKLROOT)/include -I$(MKLROOT)/include/intel64/lp64 -traceback -O -xW -c
-static-intel -traceback -openmp -Bstatic -lmpich -lmpl $(MKLROOT)/lib/intel64/libmkl_blas95_lp64.a $(MKLROOT)/lib/intel64/libmkl_lapack95_lp64.a -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group
Identical sources and Makefiles (except for the MKL pathes, i.e. em64t instead of intel64) are used for compilation.
Adding flag –fimf-arch-consistency=true or using -fp-model precise does not help. Same deviations in results. The different results are also generated with the debug executable (-check bounds -check format -check uninit -check pointers -warn unused -fpe0 -ftrapuv -debug extend instead of -O).
Running the tests with the ifort 11.1 exec always gives identical results on the different Xeons.
Any hint or help would be highly appreciated.