Xgboost: OMP : Erreur #15 : Initialisation de libiomp5.dylib, mais libiomp5.dylib est déjà initialisé.

Créé le 28 oct. 2016  ·  63Commentaires  ·  Source: dmlc/xgboost

Pour les bogues ou les problèmes d'installation, veuillez fournir les informations suivantes.
Plus vous fournirez d'informations, plus nous pourrons vous proposer facilement
aide et conseils.

Informations sur l'environnement

Système d'exploitation : Mac OSX Sierra 10.12.1

Compilateur:

Package utilisé (python) :

xgboost version utilisée : xgboost 0.6a2

Si vous utilisez un package python, veuillez fournir

  1. La version et la distribution de python :
    Python 2.7.12
  2. La commande pour installer xgboost si vous n'installez pas à partir des sources
    pip installer xgboost

Étapes à reproduire

  1. de xgboost importer XGBClassifier
    importer numpy en tant que np
    importer matplotlib.pyplot en tant que plt
    x = np.tableau([[1,2],[3,4]])
    y = np.tableau([0,1])
    clf = XGBClassifier(base_score = 0,005)
    clf.fit(x,y)
    plt.hist(clf.feature_importances_)

    Qu'as-tu essayé?

    Voir le message d'erreur :
    "OMP : Erreur #15 : Initialisation de libiomp5.dylib, mais trouvé libiomp5.dylib déjà initialisé.
    OMP : Indice : cela signifie que plusieurs copies de l'environnement d'exécution OpenMP ont été liées au programme. C'est dangereux, car cela peut dégrader les performances ou provoquer des résultats incorrects. La meilleure chose à faire est de s'assurer qu'un seul runtime OpenMP est lié au processus, par exemple en évitant la liaison statique du runtime OpenMP dans n'importe quelle bibliothèque. En tant que solution de contournement dangereuse, non prise en charge et non documentée, vous pouvez définir la variable d'environnement KMP_DUPLICATE_LIB_OK=TRUE pour permettre au programme de continuer à s'exécuter, mais cela peut provoquer des plantages ou produire des résultats incorrects en silence. Pour plus d'informations, veuillez consulter http://www.intel.com/software/products/support/. "

J'ai essayé:
importer le système d'exploitation
os.environ['KMP_DUPLICATE_LIB_OK']='True'

Il peut faire le travail pour moi. Mais c'est un peu moche.


Je sais que ce n'est peut-être pas le problème de xgboost, mais je suis presque sûr que ce problème s'est produit après la mise à niveau de xgboost à l'aide de 'pip install xgboost'. Je poste le problème ici pour voir si quelqu'un a le même problème que moi. J'ai très peu de connaissances sur OpenMP. S'il vous plaît aider!
Merci d'avance!

Commentaire le plus utile

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Tous les 63 commentaires

J'ai le même problème lorsque j'essaie d'utiliser à la fois xgboost et matplotlib.

OS X 10.10.5
Python 2.7.12
xgboost 0.6
matplotlib 1.5.1

J'ai rencontré le même problème avec xgboost et matplotlib. Même symptôme... le noyau meurt avec le même message d'erreur que celui signalé par @symPhysics

Mac OS X 10.12.3

Python 3.5.2 |Anaconda personnalisé (x86_64)| (par défaut, le 2 juillet 2016, 17:52:12)
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] sur darwin

xgboost 0.6a2

matplotlib 2.0.0

FWIW... cela semble être un problème spécifique à MacOS. Je n'ai pas pu recréer le problème sur une machine virtuelle Linux CentOS.

Au moins pour Mac,

brew uninstall libiomp clang-omp

tant que vous avez gcc v5 de brew, il est livré avec openmp

suivez les étapes dans :
https://github.com/dmlc/xgboost/tree/master/python-package

Nous pouvons clore ce problème maintenant.

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Pour moi, le problème (sur un Mac) a été résolu avec
pip désinstaller xgboost
suivie par
pip installer xgboost

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

merci, ça marche !!!

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

merci beaucoup, ça marche.

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

Merci aussi, ça marche pour moi aussi.

@gpetty Vous, monsieur, êtes un vrai héros. Merci!

@gpetty ça marche ! MERCI :))

Étrangement, conda install nomkl n'a pas fonctionné pour moi (je n'ai pas non plus libiomp clang-omp installé sur Brew), seulement
import os os.environ['KMP_DUPLICATE_LIB_OK']='True'
pourrait fonctionner

brew uninstall libiomp clang-omp

Error: No such keg: /usr/local/Cellar/libiomp

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

merci beaucoup, même si je ne sais pas ce qu'est nomkl. Cela m'a dérouté quelques jours lorsque j'ai exécuté un modèle CNN-RNN à l'aide de tensorflow. Lorsque j'ai utilisé os.environ['KMP_DUPLICATE_LIB_OK']='True' , cela a fonctionné, mais le programme s'est exécuté si lentement.

Mes problèmes n'étaient absolument pas liés à xgboost, mais je suis arrivé ici via google afin de partager pour le bien des autres.

J'utilise keras et matplotlib installés via conda. Le paramètre KMP_DUPLICATE_LIB_OK vient de changer mon expérience d'un avertissement à une exception/crash. L'installation de nomkl n'a rien changé pour moi. Finalement, j'ai rétrogradé ma version de matplotlib et cela a corrigé les choses pour moi
conda install matplotlib=2.2.3

Pour les personnes qui recherchent cette erreur sur Google, la meilleure solution que j'ai trouvée est répertoriée ici .

Le site répertorie deux méthodes. Je préfère la méthode 1, qui consiste à aller dans votre répertoire anaconda3/lib et à supprimer l'ancien fichier libiomp5.dylib . Agréable et simple.

Pour les personnes qui recherchent cette erreur sur Google, la meilleure solution que j'ai trouvée est répertoriée ici .

Le site répertorie deux méthodes. Je préfère la méthode 1, qui consiste à aller dans votre répertoire anaconda3/lib et à supprimer l'ancien fichier libiomp5.dylib . Agréable et simple.

S'il vous plaît soyez très prudent si vous voulez essayer la méthode 1. Tout s'est écrasé après avoir supprimé le fichier et je dois réinstaller openmp. Même problème signalé dans le lien csdn d'origine (en chinois).

Merci!!
Pour moi sur MAC :
importer le système d'exploitation
os.environ['KMP_DUPLICATE_LIB_OK']='True'

J'ai eu le même problème après être passé de homebrew/virtualenv installé numpy/keras/matplotlib/tensorflow à miniconda installé. Résolu en exécutant conda install nomkl bien que je pense que keras (et numpy) ne fonctionneront pas aussi vite qu'ils le pourraient s'ils n'utilisent pas Math Kernel Lib d'Intel mais au moins mon code fonctionne toujours donc ¯\_(ツ) _/¯

@sam1902 qui a fonctionné pour moi aussi - la mise à jour de la variable os.environ n'a pas fonctionné. Merci!

j'ai le même problème sur mon Mac
Exécutez simplement - conda update -n base conda
il installe et met à jour les dépendances nécessaires

J'ai le même problème sur mon mac, j'ai essayé la méthode suggérée et ça marche

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

J'ai utilisé anaconda pour faire l'installation de nomkl. Cela a réglé le problème.

De plus, la tentative de "désinstallation du brew..." a donné l'erreur "No such keg".

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Il convient de noter que cela est fortement déconseillé par les développeurs OpenMP . De leur message d'erreur :

La meilleure chose à faire est de s'assurer qu'un seul runtime OpenMP est lié au processus, par exemple en évitant la liaison statique du runtime OpenMP dans n'importe quelle bibliothèque. En tant que solution de contournement dangereuse, non prise en charge et non documentée, vous pouvez définir la variable d'environnement KMP_DUPLICATE_LIB_OK=TRUE pour permettre au programme de continuer à s'exécuter, mais cela peut provoquer des plantages ou produire des résultats incorrects en silence.

conda install nomkl fonctionné pour moi.

Quelqu'un peut-il expliquer ce que cela fait et pourquoi cela résout le problème?

@georgeu2000 , je me

Merci beaucoup.

J'ai déjà vu quelques benchmarks entre openblas et mkl, mkl n'est pas supérieur. Y a-t-il une raison d'utiliser mkl sur openblas ? Expliquer quelque chose sans le code source à portée de main n'est pas très motivant.

Sur MacOS Mojave :

conda installer nomkl

fonctionne mais il doit rétrograder :

 mkl_fft 1.0.10-py36h5e564d8_0 --> 1.0.1-py36h917ab60_0
 mkl_random 1.0.2-py36h27c97d8_0 --> 1.0.1-py36h78cc56f_0
 numexpr 2.6.9-py36h7413580_0 --> 2.6.9-py36hafae301_0
 numpy 1.15.4-py36hacdab7b_0 --> 1.15.4-py36h926163e_0
 numpy-base 1.15.4-py36h6575580_0 --> 1.15.4-py36ha711998_0
 scikit-learn 0.20.2-py36h27c97d8_0 --> 0.20.2-py36hebd9d1a_0
 scipy 1.2.1-py36h1410ff5_0 --> 1.2.1-py36h1a1e112_0

Mes problèmes n'étaient absolument pas liés à xgboost, mais je suis arrivé ici via google afin de partager pour le bien des autres.

J'utilise keras et matplotlib installés via conda. Le paramètre KMP_DUPLICATE_LIB_OK vient de changer mon expérience d'un avertissement à une exception/crash. L'installation de nomkl n'a rien changé pour moi. Finalement, j'ai rétrogradé ma version de matplotlib et cela a corrigé les choses pour moi
conda install matplotlib=2.2.3

Hey mon pote, tu m'as sauvé le cul

J'ai eu le même problème après être passé de homebrew/virtualenv installé numpy/keras/matplotlib/tensorflow à miniconda installé. Résolu en exécutant conda install nomkl bien que je pense que keras (et numpy) ne fonctionneront pas aussi vite qu'ils le pourraient s'ils n'utilisent pas Math Kernel Lib d'Intel mais au moins mon code fonctionne toujours donc ¯_(ツ)_ /¯

^^^^ C'est ce qui a fait l'affaire pour moi. Merci!

Merci!!
Pour moi sur MAC :
importer le système d'exploitation
os.environ['KMP_DUPLICATE_LIB_OK']='True'

FONCTIONNE POUR MOI MERCI

Dans ma conda lib , j'ai plusieurs libgomp :

J'ai l'erreur attendue :

OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

Cela aide certainement:

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

Voici toutes mes versions :

(µ_env) jespinozlt-osx:lib jespinoz$ pwd
/Users/jespinoz/anaconda/envs/µ_env/lib
(µ_env) jespinozlt-osx:lib jespinoz$ ls -lhtr | grep "omp"
-rw-rw-r--    4 jespinoz  tigr   165B Oct 28  2016 libgomp.spec
-rw-rw-r--    4 jespinoz  tigr   108K Oct 28  2016 libgomp.a
-rwxrwxr-x   11 jespinoz  tigr    62K Oct 28  2016 libgomp.1.dylib
-rwxrwxr-x    6 jespinoz  tigr   489K Oct 27 17:30 libomp.dylib
-rwxrwxr-x    5 jespinoz  tigr   176K Mar 14 13:10 libiompstubs5.dylib
-rwxrwxr-x    5 jespinoz  tigr   296K Mar 14 13:10 libiomp5_db.dylib
-rwxrwxr-x    5 jespinoz  tigr   2.7M Mar 14 13:10 libiomp5.dylib
lrwxr-xr-x    1 jespinoz  tigr    15B Apr 10 14:51 libgomp.dylib -> libgomp.1.dylib

Dois-je en supprimer un ? Si oui, dois-je garder libiomp5.dylib au lieu de libgomp.1.dylib et juste un lien symbolique ?

OMP : Erreur #15 : Initialisation de libiomp5.dylib, mais libiomp5.dylib est déjà initialisé.

OMP : Indice : cela signifie que plusieurs copies de l'environnement d'exécution OpenMP ont été liées au programme. C'est dangereux, car cela peut dégrader les performances ou provoquer des résultats incorrects. La meilleure chose à faire est de s'assurer qu'un seul runtime OpenMP est lié au processus, par exemple en évitant la liaison statique du runtime OpenMP dans n'importe quelle bibliothèque. En tant que solution de contournement dangereuse, non prise en charge et non documentée, vous pouvez définir la variable d'environnement KMP_DUPLICATE_LIB_OK=TRUE pour permettre au programme de continuer à s'exécuter, mais cela peut provoquer des plantages ou produire des résultats incorrects en silence. Pour plus d'informations, veuillez consulter http://www.intel.com/software/products/support/.

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Résout le problème. Merci

J'ai rencontré ce problème lors d'une nouvelle installation d'anaconda sur un tout nouveau Mac book pro dans Anaconda en essayant d'utiliser tensor-flow et keras. J'ai utilisé. 'conda update --all' et cela a résolu le problème.

brew uninstall libiomp clang-omp

Error: No such keg: /usr/local/Cellar/libiomp

j'ai la même erreur comment l'avez-vous résolu, et conda insatll nomkl ne fonctionne pas non plus
ça donne l'erreur
UnavailableInvalidChannel : le canal n'est pas accessible ou n'est pas valide.
nom de la chaîne : torche
URL de la chaîne : https://conda.anaconda.org/torch
code d'erreur : 404

Vous devrez ajuster la configuration de votre conda pour continuer.
Utilisez conda config --show channels pour afficher l'état actuel de votre configuration,
et utilisez conda config --show-sources pour afficher les emplacements des fichiers de configuration.

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

J'ai rencontré le même problème et j'utilise keras, numpy et tensorflow 1.14.
conda install nomkl résout mon problème ! Merci @gpetty

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. je l'ai résolu avec
'conda installer nomkl'.

Cela a fonctionné pour moi aussi. J'obtenais une erreur lors de l'exécution du package LightGBM, une erreur se produisait après un certain nombre de lignes ou un certain nombre de fonctionnalités.

Je suppose que cela a quelque chose à voir avec l'utilisation de la mémoire ou le processus de parallélisation. Ce serait formidable si quelqu'un pouvait expliquer ce que fait exactement 'libomp' et pourquoi 'nomkl' le résout. Merci @gpetty.

Étrangement, conda install nomkl n'a pas fonctionné pour moi (je n'ai pas non plus libiomp clang-omp installé sur Brew), seulement

os.environ['KMP_DUPLICATE_LIB_OK']='True'

pourrait fonctionner

Bonjour
Idem pour moi mais
conda install -c anaconda nomkl
travaillé pour moi
J'espère que ça aide

Salut à tous,

bien que l'utilisation de os.environ['KMP_DUPLICATE_LIB_OK']='True' soit absolument désapprouvée, mais finalement, j'ai dû l'utiliser car conda install -c anaconda nomkl ne fonctionnait pas pour moi. D'autres idées ?

utiliser le os.environ['KMP_DUPLICATE_LIB_OK']='True' fonctionne mais n'était pas recommandé. use Conda install nomkl semble fonctionner sans fin, doit le tuer. utiliser conda update -n base Conda fonctionne et il a mis à jour la lib

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Merci beaucoup! Ça marche pour moi!

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

ça marche pour moi, merci.

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

Merci Bro! Cela a fonctionné pour moi!

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

Merci Bro! Cela a fonctionné pour moi!

Je viens de tester l'API tensorflow object_detection et d'exécuter le fichier object_detection_tutorial.ipynb

je suis sur un MBP 2010, exécutant le fichier python (3.7) sur anaconda; donc je suppose que c'était quelque chose à voir avec mon "ancien" système - je n'ai aucune idée des territoires sur lesquels je marche ici - j'ai essayé de désinstaller xgboost, j'ai réalisé qu'il n'était pas installé, j'ai essayé de l'installer, il est juste resté bloqué ; essayé conda install nomkl, puis mon script python lui-même ne s'exécuterait pas ( illegal instruction: 4 ); nomkl désinstallé; a finalement fonctionné quand j'ai utilisé

import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'

je ne sais toujours pas comment et pourquoi ça a fonctionné, mais bon, ça marche maintenant

Merci pour cela; conda update --all était ce qui a fonctionné pour moi. Exécution de Mac OS Mojave avec Python 3.7 Anaconda (pas la nouvelle installation... date de l'année dernière).

Réouverture, si quelqu'un a une idée du problème, merci de partager.

Nous pouvons clore ce problème maintenant.

LMAO

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

ça marche pour moi merci

Pour moi, cette combinaison a fonctionné:

brew uninstall libiomp clamp-omp
conda uninstall intel-openmp -n base
conda install -c intel openmp -n myenv
conda install nomkl -n myenv

Le conflit principal provenait du brew libiomp mais ensuite des conflits avec le conda base env et mon python 3.7 env sur openmp m'a fait tourner en rond jusqu'à ce que je résolve la chaîne de dépendance/le repli. La distinction de la source du canal a fait une énorme différence.

J'ai essayé ceci et l'erreur s'est arrêtée !

importer le système d'exploitation

os.environ['KMP_DUPLICATE_LIB_OK']='True'

Ça marche pour moi aussi

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

Merci! Cela fonctionne pour moi à partir d'aujourd'hui! Quelqu'un peut-il expliquer pourquoi cela fonctionne?

Nous proposons maintenant une roue binaire pour Mac OSX, qui renvoie à /usr/local/lib/libomp.dylib . Installez XGBoost en exécutant

python -m pip install xgboost

Merci cela a résolu mon cas. Mon Mac n'avait pas libiomp et clamp-omp, et je n'ai pas installé nomkl.
Je ne fais donc que ces deux étapes.

conda uninstall intel-openmp
conda install -c intel openmp

Pour moi, cette combinaison a fonctionné:

brew uninstall libiomp clamp-omp
conda uninstall intel-openmp -n base
conda install -c intel openmp -n myenv
conda install nomkl -n myenv

Le conflit principal provenait du brew libiomp mais ensuite des conflits avec le conda base env et mon python 3.7 env sur openmp m'a fait tourner en rond jusqu'à ce que je résolve la chaîne de dépendance/le repli. La distinction de la source du canal a fait une énorme différence.

(macOS Catalina 10.15.5)

En parcourant le package installé dans mon environnement, j'ai remarqué qu'il y avait une mise à jour pour mkl.

J'ai donc pu résoudre mon cas en mettant à jour mkl.

conda install -c intel mkl

vous pouvez exécuter ce commentaire conda install nomkl

J'ai eu la même erreur sur mon Mac avec un programme python utilisant numpy, keras et matplotlib. Je l'ai résolu avec 'conda install nomkl'.

Quelle est la magie derrière cela ?

J'ai eu la même erreur sur mon window10.

os.environ['KMP_DUPLICATE_LIB_OK']='True', j'ai essayé cette commande et le problème est résolu grâce à @Toooodd

J'ai trouvé une solution alternative à ce problème ici , qui consiste à précharger le runtime OpenMP à l'aide de la variable LD_PRELOAD :

LD_PRELOAD=<path_to_libiomp5.so> <path_to your_executable>

Cela élimine les chargements multiples de libiomp et fait que tous les composants utilisent cette version spécifique d'OpenMP.

importer le système d'exploitation
os.environ['KMP_DUPLICATE_LIB_OK']='True'

Suivie par

conda installer nomkl

A travaillé pour moi. Merci!

Cette page vous a été utile?
0 / 5 - 0 notes