[SciPy-Dev] Many Problems Building w/ MKL 11, ifort, icc; scipy.test() Fails w/ Undefined Symbols

Ralf Gommers ralf.gommers at gmail.com
Wed Aug 14 17:19:12 EDT 2013


On Wed, Aug 14, 2013 at 9:52 PM, Will Buckner <wbuckner at beatsmusic.com>wrote:

> I've tried this about 6 different ways now, and all successful builds
> result in the same error during scipy.test() (note that NumPy builds fine
> with same site.cfg):
>
> ======================================================================
> ERROR: Failure: ImportError
> (/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
> undefined symbol: mkl_blas_dgemm_blk_info_bdz)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/dist-packages/nose/loader.py", line 413,
> in loadTestsFromName
>     addr.filename, addr.module)
>   File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 47,
> in importFromPath
>     return self.importFromDir(dir_path, fqname)
>   File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 94,
> in importFromDir
>     mod = load_module(part_fqname, fh, filename, desc)
>   File "/usr/local/lib/python2.7/dist-packages/scipy/stats/__init__.py",
> line 320, in <module>
>     from .stats import *
>   File "/usr/local/lib/python2.7/dist-packages/scipy/stats/stats.py", line
> 242, in <module>
>     import scipy.linalg as linalg
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.py",
> line 147, in <module>
>     from .misc import *
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/misc.py", line
> 5, in <module>
>     from . import blas
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/blas.py", line
> 113, in <module>
>     from scipy.linalg import _fblas
> ImportError:
> /opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
> undefined symbol: mkl_blas_dgemm_blk_info_bdz
>
>
> Here's some info on my environment:
>
> Intel Composer XE 2013.5.192, ifort+icc
> icc flags: -fPIC -DMKL_ILP64 -m64 -fp-model', 'strict',
> '-fomit-frame-pointer', '-openmp', '-xhost', '-parallel'
> ifort flags: -fPIC -i8 -xhost -openmp -fp-model strict
> OS: Ubuntu 12.04
> 24 Cores Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
> Intel LibMKL 11.0.5
>
> site.cfg:
>
> [mkl]
> library_dirs = /opt/intel/mkl/lib/intel64:/opt/intel/lib/intel64
> include_dirs = /opt/intel/mkl/include:/opt/intel/include
> lapack_libs = mkl_lapack95_lp64
> mkl_libs = mkl_def, mkl_intel_lp64, mkl_intel_thread, mkl_core, mkl_mc
>
> [fftw]
> library_dirs = /opt/intel/mkl/lib/intel64
> include_dirs = /opt/intel/mkl/include
> libraries = fftw3
>
> [amd]
> amd_libs = amd
> library_dirs = /usr/lib
> include_dirs = /usr/include/suitesparse/
>
> [umfpack]
> umfpack_libs = umfpack
> library_dirs = /usr/lib
> include_dirs = /usr/include/suitesparse/
>
> Built with:
> python setup.py clean
> python setup.py  -v config --compiler=intelem --fcompiler=intelem
> build_clib --compiler=intelem --fcompiler=intelem build_ext
>  --compiler=intelem --fcompiler=intelem install
>
>   FOUND:
>     libraries = ['mkl_def', 'mkl_intel_lp64', 'mkl_intel_thread',
> 'mkl_core', 'mkl_mc', 'pthread']
>     library_dirs = ['/opt/intel/mkl/lib/intel64']
>     define_macros = [('SCIPY_MKL_H', None)]
>     include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
>
>   FOUND:
>     libraries = ['mkl_def', 'mkl_intel_lp64', 'mkl_intel_thread',
> 'mkl_core', 'mkl_mc', 'pthread']
>     library_dirs = ['/opt/intel/mkl/lib/intel64']
>     define_macros = [('SCIPY_MKL_H', None)]
>     include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
>
>   FOUND:
>     libraries = ['mkl_lapack95_lp64', 'mkl_def', 'mkl_intel_lp64',
> 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'pthread']
>     library_dirs = ['/opt/intel/mkl/lib/intel64']
>     define_macros = [('SCIPY_MKL_H', None)]
>     include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
>
> ( library_dirs = /usr/local/lib:/usr/lib:/usr/lib/x86_64-linux-gnu )
>   FOUND:
>     libraries = ['mkl_lapack95_lp64', 'mkl_def', 'mkl_intel_lp64',
> 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'pthread']
>     library_dirs = ['/opt/intel/mkl/lib/intel64']
>     define_macros = [('SCIPY_MKL_H', None)]
>     include_dirs = ['/opt/intel/mkl/include', '/opt/intel/include']
>
>
> **The problem is here:**
>
> ======================================================================
> ERROR: Failure: ImportError
> (/opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
> undefined symbol: mkl_blas_dgemm_blk_info_bdz)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/dist-packages/nose/loader.py", line 413,
> in loadTestsFromName
>     addr.filename, addr.module)
>   File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 47,
> in importFromPath
>     return self.importFromDir(dir_path, fqname)
>   File "/usr/local/lib/python2.7/dist-packages/nose/importer.py", line 94,
> in importFromDir
>     mod = load_module(part_fqname, fh, filename, desc)
>   File "/usr/local/lib/python2.7/dist-packages/scipy/stats/__init__.py",
> line 320, in <module>
>     from .stats import *
>   File "/usr/local/lib/python2.7/dist-packages/scipy/stats/stats.py", line
> 242, in <module>
>     import scipy.linalg as linalg
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.py",
> line 147, in <module>
>     from .misc import *
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/misc.py", line
> 5, in <module>
>     from . import blas
>   File "/usr/local/lib/python2.7/dist-packages/scipy/linalg/blas.py", line
> 113, in <module>
>     from scipy.linalg import _fblas
> ImportError:
> /opt/intel/composer_xe_2013.5.192/mkl/lib/intel64/libmkl_intel_thread.so:
> undefined symbol: mkl_blas_dgemm_blk_info_bdz
>
>
> Now, where is mkl_blas_dgemm_blk_info_bdz defined?
>
> daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$ nm libmkl_core.so |
> grep mkl_blas_dgemm_blk_info_bdz
> 00000000000c59f0 T mkl_blas_dgemm_blk_info_bdz
> daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$
>
> Right there ^.
>
> I included mkl_core in site.cfg and it seems to be linking it, so I'm not
> sure why this symbol is still undefined. Note that it *is* undefined in
> libmkl_intel_thread.so:
>
> daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$ nm
> libmkl_intel_thread.so | grep mkl_blas_dgemm_blk_info_bdz
>                  U mkl_blas_dgemm_blk_info_bdz
> daisy at speedballcompute01:/opt/intel/mkl/lib/intel64$
>
>
> I also tried the instructions provided by intel at
> http://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl, using
> just mkl_rt. This had the same result, and seems incorrect, as it's not
> providing any lapack libraries (I'm assuming it would just fall back to "no
> lapack" and it seems to). This is highly confusing, as all of the MKL
> numpy/scipy instructions seem to be for older MKLs, before mkl_rt.
>

These are fairly recent and mention mkl_rt:
http://scipy.org/scipylib/building/linux.html#any-distribution-with-intel-c-compiler-and-mkl.
Did you find those?

Ralf



>
> Could anyone help me debug this? I'm hopelessly frustrated with it at this
> point and willing to do whatever to help you guys debug.
>
> Thanks! What additional info is needed?
>
> _______________________________________________
> SciPy-Dev mailing list
> SciPy-Dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20130814/c58278b3/attachment.html>


More information about the SciPy-Dev mailing list