J'ai essayé d'installer numpy-1.7.1
avec MKL-10.3
sur python-2.7.5
en utilisant gcc-4.7.2
sur un système linux-2.6.18-308.24.1.el5
depuis quelques jours maintenant. Il n'y a pas longtemps, j'ai compilé avec succès R-3.0.1
avec MKL
en utilisant le même compilateur.
J'ai modifié le fichier site.cfg
dans numpy-1.7.1
comme suit :
[mkl]
library_dirs = /sb/software/libraries/MKL/10.3/lib/intel64
include_dirs = /sb/software/libraries/MKL/10.3/include
mkl_libs = mkl_rt
lapack_libs =
Quand j'appelle python setup.py install
, il trouve les bibliothèques MKL
pour BLAS
et LAPACK
. Jusqu'à ce point, il n'y a pas de plainte ni d'avertissement. Ça se casse une fois que j'essaie de faire quelque chose avec numpy
.
$ python
Python 2.7.5 (par défaut, le 31 juillet 2013, 16:54:43)
[GCC 4.7.2] sur linux2
Taper "help", "copyright", "credits" ou "license" pour plus d'informations.
>>> import numpy
>>> numpy.test('full')
Exécution des tests unitaires pour numpy
Version de NumPy 1.7.1
NumPy est installé dans /sb/project/mjd-574/ndejay/modules/python-2.7.5/lib/python2.7/site-packages/numpy
Version de Python 2.7.5 (par défaut, le 31 juillet 2013, 16:54:43) [GCC 4.7.2]
Version de nose 1.3.0
.................python: erreur de recherche de symbole: /sb/software/libraries/MKL/10.3/lib/intel64/libmkl_intel_thread.so: symbole non défini: omp_get_num_procs
Il semble s'agir d'un problème connu (lien vers la source) où libiomp5
n'est pas chargé par libmkl_rt
. Quand j'ajoute le chemin vers libiomp5
à la variable library_dirs
dans site.cfg
, numpy
échoue à détecter toutes les bibliothèques MKL
.
J'ai même essayé ce qui suit pour forcer gcc
à utiliser ses propres bibliothèques/entêtes openMP
, mais en vain.
CFLAGS='-fopenmp -lgomp' python setup.py install
Je serais reconnaissant pour tout type d'aide ou de conseils sur ce sujet. N'hésitez pas à me faire savoir si j'ai omis des informations critiques dans ce fil de discussion.
EDIT : Je suis sur une plateforme x86_64
.