I have built Octave against ATLAS 3.9.56 and found some simple data that causes a floating point exception:
octave:1> load '/home/melrobin/research/nn/coredump.mat'
panic: Floating point exception -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete
Floating point exception (core dumped)
I did some more troubleshooting and found that (X+0)'*X does not produce the same error. I opened up a bug report at Octave and one developer suggested that there may be a problem with ATLAS. I'm also asking the folks at Octave about the differences between what the interpreter would send to the ATLAS routines in the cases of X'*X (which causes the fp exception) and (X+0)'*X (which does not).
To narrow things down even further I entirely rebuilt Octave using the serial libraries and this seems to have fixed the problem. Specifically I configured Octave with options --with-lapack=-llapack --with-blas=-latlas instead of --with-lapack=-lptlapack --with-blas=-ltatlas.
This narrows it down pretty well, but I would like to provide even more information if you will assist me with the huge gaps in my knowledge (abilities).
My machine is an Intel i7 Quad Core 2.8 GHz running Fedora 16.
Upon any floating point exceptions, ATLAS would have to report this back to Octave for further processing, right? Would it also dump to some other files?
If you want to put some hooks to try to catch this, I do not mind rebuilding everything to narrow down things further. If necessary I have the octave-core file which has the dataset.
Log in to post a comment.