[SciPy-dev] Building newcore with the intel compilers on Itanium2...

Fernando Perez Fernando.Perez at colorado.edu
Thu Nov 3 00:23:23 CST 2005

Pearu Peterson wrote:
> On Wed, 2 Nov 2005, Fernando Perez wrote:

>>So the question really is: how do we get scipy.distutils to use icc as the
>>LINKER and not to use gcc at all?  Thanks for any pointers...
> This is not really a scipy.distutils issue. A simple answer to your 
> question would be building python with icc.
> Standard distutils has limited support switching C compilers, see 
> `setup.py build_ext --help`. It is also possible to implement support for 
> your own c compiler in scipy.distutils but first I would suggest following 
> the simple answer.

OK, thanks for the info.  I'd like to understand something, though.  Once you 
homebrew this icc-based python, don't you end up forced to maintain off-distro 
ALL python packages you want to use?  This solution would require building a 
parallel python, losing most of the benefits of easy package handling in a 
distro, etc.

As we've seen, all that's needed is to fix the link calls.  If that is done, 
one could use the base platform python for everything, and only build 
numerically critical code with icc.  I really don't look forward to the idea 
that using icc for scipy will force people to build wxpython, pygtk, pyvtk and 
other similarly pleasant-to-build packages ALL from source, and maintain a 
fully separate tree.

For now, a more viable solution (for me) seems to be just to use gcc and lose 
some of the benefits of icc on this architecture.  But I think it would be 
great to be able to offer users the ability to use the C compiler of their 
choice for scipy.

 From looking at the code, I wonder if it's just a matter of overriding the 
link() method in ccompiler, to honor the CC env. variable (as a start).  I may 
have a go at it, at least out of curiosity...

Just as an FYI, with the following two manual link steps:

phillips[newcore]> icc -pthread -shared 
build/temp.linux-ia64-2.3/scipy/base/src/multiarraymodule.o -o 
phillips[newcore]> icc -pthread -shared 
build/temp.linux-ia64-2.3/build/src/scipy/base/src/umathmodule.o -o 

I can get scipy newcore to pass all tests on this Itanium2 box:

In [4]: scipy.test(10,10)
Ran 140 tests in 2.025s


One more 64-bit architecture where things look good, thanks to Travis and 
Arnd's relentless work!

Unfortunately for now I won't be able to test full scipy here, as the number 
of similar manual link steps for the full one is enormous.

Anyway, many thanks for clarifying the issue.



More information about the Scipy-dev mailing list