[Numpy-discussion] glibc memory corruption when running numpy.test()

David Cournapeau cournapeau at cslab.kecl.ntt.co.jp
Thu Nov 20 03:45:21 EST 2008


On Thu, 2008-11-20 at 00:26 -0800, Hoyt Koepke wrote:
> Hi,
> 
> Sorry; my first message wasn't under 40 KB with the attachments, so
> here's the same message but with the log files at
> http://www.stat.washington.edu/~hoytak/logs.tar.bz2.
> 
> 
> > Which ones ?
> 
> Sorry; ATLAS = 3.9.4 and lapack=3.2.  I'll give 3.8.2 a shot per your advice.

Sorry, I meant which problems did you get when trying to build numpy
with those ? Lapack 3.2 is really recent, and seems to use a new BLAS,
which is likely not supported by ATLAS. 

But to be faire, that won't explain most failures you get.

> 
> > You should not do that, it won't work as you would expect. It is a good
> > rule to assume that you should never set the *FLAGS variable unless you
> > really know what you are doing.
> 
> Fair enough.  In my case I was having some issues with 32 bit and 64
> bit mismatches (I think that fftw defaulted to 32 bit), so I set the
> flags variables.  I also wanted to get the extra few percent of
> performance by using the tuning flags.  I'll back up a bit now before
> playing with them now, though.

I honestly don't think those flags matter much in the case of
numpy/scipy. In particular, using SSE and co automatically is simply
impossible in numpy case, since the C code is very generic (non-aligned
- non contiguous items) and the compiler has no way to know at compile
time which cases are contiguous.

FFTW support has been removed in recent scipy, so this won't be a
problem anymore :)


> This now works in the sense that it doesn't hang.  I still get a
> number of test failures, however (build + test logs attached).

Those errors seem link to  the flags you have been using. Some errors
are really strange (4 vs 8 bytes types), but I don't see how it could be
explained by a mismatch of 32 vs 64 bits machine code (to the best of my
knowledge, you can't mix 32 and 64 bits machine code in one binary).
Maybe a compiler bug when using -march flag. 

Please try building numpy wo BLAS/LAPACK and wo compiler flags first, to
test that the bare configuration does work, and that the problems are
not due to some bugs in your toolchain/OS/etc... The test suite should
run without any failure in this case; then, we can work on the
BLAS/LAPACK thing,

cheers,

David




More information about the NumPy-Discussion mailing list