[SciPy-User] Compiling SciPy almost works
Søren Gammelmark
gammelmark at phys.au.dk
Thu Aug 5 04:21:28 EDT 2010
You mean setting the environment-variable CXX to icpc? That does not
work (I tried it), but I would not expect it to either -- I did not
think that the numpy distutils listen to those environment-variables?
When I compiled numpy/scipy I had to do a bit of editing in
numpy/distutils/intelcompilers.py, where I changed the line cc_exe =
'icc' to include more command-line arguments, i.e. cc_exe = 'icc -fPIC
-O2 -fomit-frame-pointer -parallel'. One possibility would be to put in
icpc here instead, but then everything will be compiled with icpc. I
tried this, but then the numpy-compilation sprouts errors about missing
libraries (I did not try thi SciPy-compilation).
I then tried adding a cxx_exe = 'icpc .....' line and modifying to
cxx_compiler option i intelcompilers.py. This appears to work (and make
excellent sense). I can then compiler NumPy without problems and SciPy
compiles fine and sparsetools work as they should. Now, however, the
scipy.test() crashes with "*** glibc detected *** free(): invalid next
size (fast): 0x0000000001f6f2b0 ***" when running
test_arpack.TestEigenNonSymmetric.
This is not a big program for me and seems to be related to the issue
stated here http://projects.scipy.org/scipy/ticket/848, but it still
seems a bit strange. If I remove the ARPACK tests things work for the
most part. There is still some issues regarding the interpretation of
NaN and Inf, but I believe that is quite normal.
It would be nice if we could get better support for the Intel-compilers
since I believe they are used by many scientific institutions. For
future reference: A peculiar thing I noticed when compiling SciPy was
that the Intel Fortran compiler setup in numpy.distutils appended the
option "-arch SSE2" on the AMD Opteron machines. This had the peculiar
effect of an error complaining about the command-line " 'ifort ....
-arch SSE2 ��[]^_Ë=0��@ .....'. I guess it is a bug in the Intel Fortran
9.1 compiler (just try ifort -arch SSE2 on an AMD Opteron) and in
addition the compiler claims that neither -arch SSE2 nor -msse2 is
supported on that platform. So if people are trying to compile SciPy
with this compiler they need to change this.
Thanks for all the help
Søren
On 2010-08-05 09:33, David wrote:
> On 08/05/2010 04:28 PM, Søren Gammelmark wrote:
>
>> When trying the manual link everything works out fine. "import _csr"
>> executes without any problem. I also tried using the Intel C++ compiler
>> (icpc) and then everything works out fine. I guess the default
>> link-libraries are different for the programs.
>>
> Hm, so they change the C++ driver - that's almost certainly the root of
> the issue. Does setting CXX to icpc works ?
>
> David
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>
More information about the SciPy-User
mailing list