[SciPy-dev] more 64 Bit testing (was linspace)

Travis Oliphant oliphant.travis at ieee.org
Tue Dec 6 04:36:30 EST 2005


Arnd Baecker wrote:

>For the icc situation (Intel compiler on Itanium) I get
>(basically the same as yesterday + the new ones) those listed below.
>
>I don't know about the quality of the intel compilers,
>but the amount of warnings (1438 +  3025 remarks),
>just for the core, is discouraging.
>At the end of this mail I also attach the result of
>  cat build_log_scipy_new_core.txt  | grep warning
>(only those related to arraytypes.inc and ufuncobject.c).
>
>For full scipy things get even more problematic with icc
>as cephes does not compile due to the
>  double NAN = 1.0/0.0 - 1.0/0.0;
>definitions leading to an error (see at the end for the 3 errors of this
>type).
>How should one define NAN when using icc?
>  
>
NAN can be defined as a bit-field.

>Commenting out the build of special in Lib/setup.py
>the next problem sits in
>
>compilation aborted for build/src/Lib/interpolate/dfitpackmodule.c (code
>2)
>error: Command "icc -fno-strict-aliasing -OPT:Olimit=0 -DNDEBUG -g -O3
>-Wall -Wstrict-prototypes -fPIC -fPIC -Ibuild/src
>-I/home/baecker/python/newscipy/lib/python2.4/site-packages/scipy/base/include
>-I/home/baecker/python/include/python2.4 -c
>build/src/Lib/interpolate/dfitpackmodule.c -o
>build/temp.linux-ia64-2.4/build/src/Lib/interpolate/dfitpackmodule.o"
>failed with exit status 2
>
>Here icc does not like thoses places with:
>
>build/src/Lib/interpolate/dfitpackmodule.c(2976): error: expected a ";"
>         int calc_lwrk1(void) {
>
>In code like
>       int calc_lwrk1(void) {
>         int u = nxest-kx-1;
>         int v = nyest-ky-1;
>         int km = MAX(kx,ky)+1;
>         int ne = MAX(nxest,nyest);
>         int bx = kx*v+ky+1;
>         int by = ky*u+kx+1;
>         int b1,b2;
>         if (bx<=by) {b1=bx;b2=bx+v-ky;}
>         else {b1=by;b2=by+u-kx;}
>         return u*v*(2+b1+b2)+2*(u+v+km*(m+ne)+ne-kx-ky)+b2+1;
>       }
>
>Is this code f2py generated??
>  
>
I don't think so.  The f2py-generated code should be clean;

>Ok, kicking out interpolate in Lib/setup.py ...
>I finally get to some place, where magically g77 is
>called, despite
>  python setup.py config --fcompiler=intel install --prefix=$DESTDIR
>I will retry this with additional options for the fortran side.
> a) python setup.py config --compiler=intel config_fc --fcompiler=intel
> b) Maybe setting
>      export F77=ifort
>      export CC=icc
>      export CXX=icc
>    (will report later)
>
>Any advice on how to attack these various issues is very welcome!
>  
>
I know that there are issues with distutils not allowing you to change 
certain things.  Perhaps better support for icc is needed for 
scipy-distutils.

Try your tests again on the recent code-base.  I think I've fixed 
them.... fingers crossed.

Perhaps there are options to icc to make it compile with fewer 
warnings.  The problem with arithmetic on void pointers is a little 
bothersome.  There are lots of void * pointers in scipy_core.  They 
could all be changed to char *, but I think David M. has been doing work 
to get them changed from char * to void *

Alternatively casts could be done in the right places.  My suggestion 
would be to just turn that warning off in icc.  

The other issues may require some more attention.    We may need a 
better header file to support icc.

-Travis





More information about the SciPy-Dev mailing list