I did some more investigating on this and found a very useful intel
document:
https://secure-software.intel.com/sites/default/files/article/326703/fp-control-2012-08.pdf
Basically, intel turns on several unsafe floating point optimizations by
default with -O2, where gcc does not. In gcc you must specify
-ffast-math to get the same optimizations that are the default with icc.
Compiling GSL with gcc -O2 -ffast-math produces many of the same errors
we are seeing with the default icc behavior.
To turn off the unsafe intel optimizations, use:
make CFLAGS="-fp-model precise -g -O2"
These flags pass all tests for me with icc 13.0.1. Could you check this
with your 12.1 and 13.1? If it works I think we can close this bug. I
suppose its another (rather complicated) question whether we want to get
GSL to pass all the tests with gcc -ffast-math.
Patrick
On 06/03/2013 06:02 AM, Rhys Ulerich wrote:
I have uploaded a test release for gsl 1.16 here:
http://alpha.gnu.org/gnu/gsl/gsl-1.15.90.tar.gz
All reports are welcome
An an x86-64 Ubuntu box I see a good 'make check' for GCC 4.4, 4.6,
4.7, and 4.8.
On the same system, Intel 12.1 and 13.1 have multiple tolerance and
convergence issues within linalg/ on the default -O2 optimization.
Backing off using CFLAGS="-g -O1" still does not pass. Using
CFLAGS="-g -O0" succeeds in getting a clean 'make check'.
Want me to file a ticket on these post-release? It would be nice to
have sorted out for 1.16, but I doubt that I can investigate and
resolve within the next two weeks.
- Rhys