[SciPy-dev] segmentation with scipy+icc during test

Matthieu Brucher matthieu.brucher@gmail....
Tue Dec 9 03:25:45 CST 2008


Hi,

I'm downloading numpy and scipy to try to reproduce what you did. But
I saw something that I didn't expect: you are using fftw for the FFT.
Why don't you use the MKL, which should be faster ?

Matthieu

2008/12/5 Stijn De Weirdt <stijn.deweirdt@ugent.be>:
>> > no. i modified the numpy distutils a little bit so it would accept the
>> > -Bstatic and -Bdynamic switches, for everything else i used standard
>> > numpy buld procedure (i also change intelccompiler.py a bit so numpy
>> > would use icpc as cxx compiler)
>>
>> I think a lot of people would love to what you did ;)
>>
> i paste my site.cfg and a patch here (i have no idea if the mailing list
> accepts attachments ;)
> keep in mind that -Bstatic and -Bdynamic are toggles and this has been
> tested with ictce 3.2.0.017
>
> (warning: ugly ;)
>
> stijn
>
>
> site.cfg (mkl related stuff, you get the idea)
> -----------------------------------------------
> [fftw]
> libraries = -Bstatic,fftw3xc_intel,fftw3xf_intel,-Bdynamic
> [mkl]
> lapack_libs = -Bstatic,mkl_lapack,-Bdynamic
> #mkl_libs = -Bstatic,mkl_intel_lp64, mkl_intel_thread,
> mkl_core,-Bdynamic,iomp5, guide
>
> mkl_libs = -Bstatic,mkl_em64t,-Bdynamic,iomp5, guide
>
> -----------------------------------------------
>
> patch for numpy, against 1.2.1
>
> -----------------------------------------------
> diff -ur --exclude='*pyc' --exclude='*~'
> numpy-1.2.1.orig/numpy/distutils/fcompiler/intel.py
> numpy-1.2.1/numpy/distutils/fcompiler/intel.py
> --- numpy-1.2.1.orig/numpy/distutils/fcompiler/intel.py 2008-10-28
> 12:21:48.000000000 +0100
> +++ numpy-1.2.1/numpy/distutils/fcompiler/intel.py      2008-12-04
> 22:40:19.000000000 +0100
> @@ -152,9 +152,9 @@
>
>     executables = {
>         'version_cmd'  : None,
> -        'compiler_f77' : [None, "-FI", "-w90", "-w95"],
> -        'compiler_fix' : [None, "-FI"],
> -        'compiler_f90' : [None],
> +        'compiler_f77' : [None, "-FI", "-w90", "-w95","-v"],
> +        'compiler_fix' : [None, "-FI","-v"],
> +        'compiler_f90' : [None,"-v"],
>         'linker_so'    : ['<F90>', "-shared"],
>         'archiver'     : ["ar", "-cr"],
>         'ranlib'       : ["ranlib"]
> @@ -166,6 +166,13 @@
>             opt.extend(['-tpp7', '-xW'])
>         return opt
>
> +    def library_option(self, lib):
> +        if lib[0]=='-':
> +            return lib
> +        else:
> +            return "-l" + lib
> +
> +
>  # Is there no difference in the version string between the above
> compilers
>  # and the Visual compilers?
>
> diff -ur --exclude='*pyc' --exclude='*~'
> numpy-1.2.1.orig/numpy/distutils/intelccompiler.py
> numpy-1.2.1/numpy/distutils/intelccompiler.py
> --- numpy-1.2.1.orig/numpy/distutils/intelccompiler.py  2008-10-28
> 12:21:49.000000000 +0100
> +++ numpy-1.2.1/numpy/distutils/intelccompiler.py       2008-12-04
> 23:28:08.000000000 +0100
> @@ -8,16 +8,30 @@
>     """
>
>     compiler_type = 'intel'
> -    cc_exe = 'icc'
> +    cc_exe = 'icc -v'
> +    cxx_exe = 'icpc -v'
>
>     def __init__ (self, verbose=0, dry_run=0, force=0):
>         UnixCCompiler.__init__ (self, verbose,dry_run, force)
>         compiler = self.cc_exe
> -        self.set_executables(compiler=compiler,
> -                             compiler_so=compiler,
> -                             compiler_cxx=compiler,
> -                             linker_exe=compiler,
> -                             linker_so=compiler + ' -shared')
> +        compiler_cxx = self.cxx_exe
> +
> +        opt=' -fPIC -O3 -unroll'
> +        linkopt=' -shared -static-intel '
> +
> +        self.set_executables(compiler=compiler+opt,
> +                             compiler_so=compiler+opt,
> +                             compiler_cxx=compiler_cxx+opt,
> +                             linker_exe=compiler+opt,
> +                             linker_so=compiler+linkopt)
> +
> +    def library_option(self, lib):
> +        if lib[0]=='-':
> +            return lib
> +        else:
> +            return "-l" + lib
> +
> +
>
>  class IntelItaniumCCompiler(IntelCCompiler):
>     compiler_type = 'intele'
> diff -ur --exclude='*pyc' --exclude='*~'
> numpy-1.2.1.orig/numpy/distutils/system_info.py
> numpy-1.2.1/numpy/distutils/system_info.py
> --- numpy-1.2.1.orig/numpy/distutils/system_info.py     2008-10-28
> 12:21:49.000000000 +0100
> +++ numpy-1.2.1/numpy/distutils/system_info.py  2008-12-04
> 01:18:43.000000000 +0100
> @@ -559,6 +559,9 @@
>             lib_prefixes = ['lib']
>         # for each library name, see if we can find a file for it.
>         for l in libs:
> +            if l[0]=='-':
> +                liblist.append(l)
> +                continue
>             for ext in exts:
>                 for prefix in lib_prefixes:
>                     p = self.combine_paths(lib_dir, prefix+l+ext)
> -----------------------------------------------------------------------
>
> _______________________________________________
> Scipy-dev mailing list
> Scipy-dev@scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-dev
>



-- 
Information System Engineer, Ph.D.
Website: http://matthieu-brucher.developpez.com/
Blogs: http://matt.eifelle.com and http://blog.developpez.com/?blog=92
LinkedIn: http://www.linkedin.com/in/matthieubrucher


More information about the Scipy-dev mailing list