Xgboost: OMP: Erro # 15: Inicializando libiomp5.dylib, mas encontrou libiomp5.dylib já inicializado.

Criado em 28 out. 2016  ·  63Comentários  ·  Fonte: dmlc/xgboost

Para erros ou problemas de instalação, forneça as seguintes informações.
Quanto mais informações você fornecer, mais facilmente seremos capazes de oferecer
ajuda e conselhos.

Informação do ambiente

Sistema operacional: Mac OSX Sierra 10.12.1

Compilador:

Pacote usado (python):

xgboost versão usada: xgboost 0.6a2

Se você estiver usando o pacote python, forneça

  1. A versão e distribuição do python:
    Pythong 2.7.12
  2. O comando para instalar xgboost se você não estiver instalando da fonte
    pip install xgboost

Passos para reproduzir

  1. from xgboost import XGBClassifier
    importar numpy como np
    import matplotlib.pyplot as plt
    x = np.array ([[1,2], [3,4]])
    y = np.array ([0,1])
    clf = XGBClassifier (base_score = 0,005)
    clf.fit (x, y)
    plt.hist (clf.feature_importances_)

    O que você tentou?

    Veja a mensagem de erro:
    "OMP: Erro # 15: Inicializando libiomp5.dylib, mas encontrado libiomp5.dylib já inicializado.
    OMP: Dica: Isso significa que várias cópias do tempo de execução do OpenMP foram vinculadas ao programa. Isso é perigoso, pois pode degradar o desempenho ou causar resultados incorretos. A melhor coisa a fazer é garantir que apenas um único runtime OpenMP seja vinculado ao processo, por exemplo, evitando a vinculação estática do runtime OpenMP em qualquer biblioteca. Como uma solução alternativa não segura, não suportada e não documentada, você pode definir a variável de ambiente KMP_DUPLICATE_LIB_OK = TRUE para permitir que o programa continue a ser executado, mas isso pode causar travamentos ou produzir resultados incorretos silenciosamente. Para obter mais informações, consulte http://www.intel.com/software/products/support/. "

Eu tentei:
importar os
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro'

Pode fazer o trabalho por mim. Mas é meio feio.


Eu sei que pode não ser o problema do xgboost, mas tenho certeza que esse problema aconteceu depois que eu atualizei o xgboost usando 'pip install xgboost'. Eu posto o problema aqui para ver se alguém teve o mesmo problema que eu. Tenho muito pouco conhecimento sobre OpenMP. Por favor ajude!
Desde já, obrigado!

Comentários muito úteis

Tentei fazer isso e o erro parou!

importar os

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

Todos 63 comentários

Estou tendo o mesmo problema quando tento usar o xgboost e o matplotlib.

OS X 10.10.5
Python 2.7.12
xgboost 0.6
matplotlib 1.5.1

Encontrei o mesmo problema com xgboost e matplotlib. Mesmo sintoma ... o kernel morre com a mesma mensagem de erro relatada por @symPhysics

Mac OS X 10.12.3

Python 3.5.2 | Anaconda customizado (x86_64) | (padrão, 2 de julho de 2016, 17:52:12)
[GCC 4.2.1 compatível com Apple LLVM 4.2 (clang-425.0.28)] em darwin

xgboost 0.6a2

matplotlib 2.0.0

FWIW ... este parece ser um problema específico do MacOS. Não consegui recriar o problema em uma VM CentOS Linux.

Pelo menos para Mac,

brew uninstall libiomp clang-omp

contanto que você tenha o gcc v5 da brew, ele vem com o openmp

siga as etapas em:
https://github.com/dmlc/xgboost/tree/master/python-package

Podemos encerrar este problema agora.

Tentei fazer isso e o erro parou!

importar os

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

Para mim, o problema (em um Mac) foi corrigido com
pip uninstall xgboost
Seguido por
pip install xgboost

Tentei fazer isso e o erro parou!

importar os

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

obrigado, funciona !!!

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

muito obrigado, funciona.

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Obrigado também, funciona para mim também.

@gpetty Você é um verdadeiro herói. Obrigada!

@gpetty Funciona! THANKSSS :))

Estranhamente conda install nomkl não funcionou para mim (não tem libiomp clang-omp instalado no Brew também), apenas
import os os.environ['KMP_DUPLICATE_LIB_OK']='True'
poderia trabalhar

brew uninstall libiomp clang-omp

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

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

muito obrigado, embora eu não saiba o que é nomkl. Fiquei confuso alguns dias quando executei um modelo CNN-RNN usando tensorflow. Quando usei os.environ ['KMP_DUPLICATE_LIB_OK'] = 'True', funcionou, mas o programa rodou tão lento. Você acertou o ans.

Meus problemas não tinham nenhuma relação com o xgboost, mas cheguei aqui via google para compartilhar pelo bem dos outros.

Estou usando keras e matplotlib instalados via conda. Definir KMP_DUPLICATE_LIB_OK mudou minha experiência de um aviso para uma exceção / falha. A instalação de nomkl não mudou nada para mim. Eventualmente eu rebaixei minha versão do matplotlib e isso corrigiu as coisas para mim
conda install matplotlib=2.2.3

Para as pessoas que procuram esse erro no Google, a melhor solução que encontrei está listada aqui .

O site lista dois métodos. Eu prefiro o método 1, que é ir para o diretório anaconda3/lib e remover o arquivo libiomp5.dylib antigo. Bom e simples.

Para as pessoas que procuram esse erro no Google, a melhor solução que encontrei está listada aqui .

O site lista dois métodos. Eu prefiro o método 1, que é ir para o diretório anaconda3/lib e remover o arquivo libiomp5.dylib antigo. Bom e simples.

Tenha muito cuidado se quiser tentar o método 1. Tudo travou depois que excluí o arquivo e tive que reinstalar o openmp. Mesmo problema relatado no link csdn original (em chinês).

Obrigado!!
Para mim no MAC:
importar os
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro'

Tive o mesmo problema depois de mudar de homebrew / virtualenv installed numpy / keras / matplotlib / tensorflow para miniconda instalado. Resolvido executando conda install nomkl embora eu reconheça que keras (e numpy) não funcionarão tão rápido quanto poderiam se não fizerem uso do Math Kernel Lib da Intel, mas pelo menos meu código ainda é executado assim ¯ \ _ (ツ) _ / ¯

@ sam1902 que funcionou para mim também - atualizar a variável os.environ não funcionou. obrigado!

tenho o mesmo problema no meu Mac
Basta executar - conda update -n base conda
instala e atualiza dependências necessárias

Tenho o mesmo problema no meu mac, tentei o método sugerido e funciona

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

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Usei o anaconda para fazer a instalação do nomkl. Isso resolveu o problema.

Além disso, a tentativa de "desinstalar a cerveja ..." gerou o erro "No such keg".

Tentei fazer isso e o erro parou!

importar os

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

Deve-se notar que isso é fortemente desencorajado pelos desenvolvedores OpenMP . Da mensagem de erro:

A melhor coisa a fazer é garantir que apenas um único runtime OpenMP seja vinculado ao processo, por exemplo, evitando a vinculação estática do runtime OpenMP em qualquer biblioteca. Como uma solução alternativa não segura, não suportada e não documentada, você pode definir a variável de ambiente KMP_DUPLICATE_LIB_OK=TRUE para permitir que o programa continue a ser executado, mas isso pode causar travamentos ou produzir resultados incorretos silenciosamente.

conda install nomkl funcionou para mim.

Alguém pode explicar o que isso faz e por que corrige o problema?

@ georgeu2000 , estou pensando o mesmo. Também corrigiu o problema para mim. Estou usando Numpy, Matplotlib, Keras e Tensorflow como backend. Não consigo entender o que esse pacote faz. Alguém poderia explicar?

Muito obrigado.

Eu vi alguns benchmarks entre openblas e mkl antes, mkl não é superior. Existe alguma razão para usar mkl em vez de openblas? Explicar algo sem o código-fonte em mãos não é muito motivador.

No MacOS Mojave:

conda install nomkl

funciona, mas tem que fazer o downgrade:

 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
 base numpy 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

Meus problemas não tinham nenhuma relação com o xgboost, mas cheguei aqui via google para compartilhar pelo bem dos outros.

Estou usando keras e matplotlib instalados via conda. Definir KMP_DUPLICATE_LIB_OK mudou minha experiência de um aviso para uma exceção / falha. A instalação de nomkl não mudou nada para mim. Eventualmente eu rebaixei minha versão do matplotlib e isso corrigiu as coisas para mim
conda install matplotlib=2.2.3

Ei amigo, você salvou minha bunda

Tive o mesmo problema depois de mudar de homebrew / virtualenv installed numpy / keras / matplotlib / tensorflow para miniconda instalado. Resolvido executando conda install nomkl embora eu reconheça que keras (e numpy) não funcionarão tão rápido quanto poderiam se não fizerem uso do Math Kernel Lib da Intel, mas pelo menos meu código ainda funciona, ¯_ (ツ) _ / ¯

^^^^ Isso é o que funcionou para mim. Obrigado!

Obrigado!!
Para mim no MAC:
importar os
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro'

TRABALHA PARA MIM OBRIGADO

No meu conda lib , tenho vários libgomp :

Recebi o erro esperado:

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/.

Isso definitivamente ajuda:

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

Aqui estão todas as minhas versões:

(µ_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

Devo apenas remover um deles? Se sim, devo manter libiomp5.dylib vez de libgomp.1.dylib e apenas um link simbólico?

OMP: Erro # 15: Inicializando libiomp5.dylib, mas encontrou libiomp5.dylib já inicializado.

OMP: Dica: Isso significa que várias cópias do tempo de execução do OpenMP foram vinculadas ao programa. Isso é perigoso, pois pode degradar o desempenho ou causar resultados incorretos. A melhor coisa a fazer é garantir que apenas um único runtime OpenMP seja vinculado ao processo, por exemplo, evitando a vinculação estática do runtime OpenMP em qualquer biblioteca. Como uma solução alternativa não segura, não suportada e não documentada, você pode definir a variável de ambiente KMP_DUPLICATE_LIB_OK = TRUE para permitir que o programa continue a ser executado, mas isso pode causar travamentos ou produzir resultados incorretos silenciosamente. Para obter mais informações, consulte http://www.intel.com/software/products/support/.

Tentei fazer isso e o erro parou!

importar os

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

Resolve o problema. Obrigado

Corri para este problema em uma nova instalação do anaconda em um novo Mac book pro no Anaconda tentando usar tensor-flow e keras. Eu usei. 'conda update --all' e corrigiu o problema.

brew uninstall libiomp clang-omp

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

eu tenho o mesmo erro, como você resolveu, e conda insatll nomkl também não está funcionando
está dando o erro
UnavailableInvalidChannel: O canal não está acessível ou é inválido.
nome do canal: tocha
url do canal: https://conda.anaconda.org/torch
código de erro: 404

Você precisará ajustar a configuração do conda para continuar.
Use conda config --show channels para ver o estado atual de sua configuração,
e use conda config --show-sources para ver os locais dos arquivos de configuração.

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Encontrei o mesmo problema e uso keras, numpy e tensorflow 1.14.
conda install nomkl resolve meu problema! Obrigado @gpetty

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Eu resolvi com
'conda install nomkl'.

Isso funcionou para mim também. Eu estava recebendo um erro ao executar o pacote LightGBM, ele estava errando após um certo número de linhas ou certo número de recursos.

Suponho que tenha algo a ver com o uso de memória ou com o processo de paralelização. Seria ótimo se alguém pudesse explicar o que exatamente 'libomp' faz e por que 'nomkl' resolve isso. Obrigado @gpetty.

Estranhamente conda install nomkl não funcionou para mim (não tem libiomp clang-omp instalado no Brew também), apenas

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

poderia trabalhar

Olá
O mesmo para mim, mas
conda install -c anaconda nomkl
trabalhou para mim
Espero que ajude

Olá a todos,

embora usar os.environ['KMP_DUPLICATE_LIB_OK']='True' seja absolutamente desaprovado, mas eventualmente, eu tive que usá-lo porque conda install -c anaconda nomkl não funcionou para mim. Alguma outra ideia?

use o os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro' funciona, mas não é recomendado. use Conda install nomkl parece rodar sem fim, tem que matá-lo. use conda update -n base Conda funciona e atualizou a lib

Tentei fazer isso e o erro parou!

importar os

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

Muito obrigado! Funciona para mim!

importar os

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

funciona para mim, obrigado.

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Obrigado mano! Funcionou para mim!

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Obrigado mano! Funcionou para mim!

Acabei de testar tensorflow object_detection API e executar o arquivo object_detection_tutorial.ipynb

estou em um MBP de 2010, executando o arquivo python (3.7) no anaconda; então acho que era algo a ver com meu 'antigo' sistema - não tenho ideia de quais territórios estou pisando aqui - tentei desinstalar o xgboost, percebi que não está instalado, tentei instalá-lo, ele simplesmente travou; tentei conda install nomkl, e então meu script python propriamente dito não rodou ( illegal instruction: 4 ); nomkl desinstalado; finalmente funcionou quando eu usei

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

Eu ainda não sei como e por que funcionou, mas hey, funciona agora

Obrigado por isso; conda update --all foi o que funcionou para mim. Executando o Mac OS Mojave com Python 3.7 Anaconda (não a nova instalação ... data do ano passado).

Reabrindo, se alguém tiver alguma ideia sobre o problema, compartilhe.

Podemos encerrar este problema agora.

rindo muito

Tentei fazer isso e o erro parou!

importar os

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

funciona para mim thx

Para mim, essa combinação funcionou:

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

O conflito primário veio de brew libiomp mas depois entrou em conflito com conda base env e meu python 3.7 env sobre openmp me enviou em círculos até que eu resolvesse a cadeia de dependência / fallback. A distinção da fonte do canal fez uma grande diferença.

Tentei fazer isso e o erro parou!

importar os

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

Funciona pra mim também

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Obrigado! Funciona para mim a partir de hoje! Alguém pode explicar por que isso funciona?

Agora fornecemos uma roda binária para Mac OSX, que se vincula a /usr/local/lib/libomp.dylib . Instale o XGBoost executando

python -m pip install xgboost

Obrigado, isso resolveu meu caso. Meu Mac não tinha libiomp e clamp-omp, e eu não instalei o nomkl.
Então, eu só faço essas duas etapas.

conda uninstall intel-openmp
conda install -c intel openmp

Para mim, essa combinação funcionou:

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

O conflito primário veio de brew libiomp mas depois entrou em conflito com conda base env e meu python 3.7 env sobre openmp me enviou em círculos até que eu resolvesse a cadeia de dependência / fallback. A distinção da fonte do canal fez uma grande diferença.

(macOS Catalina 10.15.5)

Analisando o pacote instalado em meu env, percebi que havia uma atualização para mkl.

Portanto, consegui resolver meu caso atualizando o mkl.

conda install -c intel mkl

você pode executar este comentário conda install nomkl

Eu tive o mesmo erro no meu Mac com um programa python usando numpy, keras e matplotlib. Resolvi com 'conda install nomkl'.

Qual é a magia por trás disso?

Eu tive o mesmo erro na minha janela10.

os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro', tentei este comando e o problema foi resolvido graças a @Toooodd

Encontrei uma solução alternativa para esse problema aqui , que é pré-carregar o tempo de execução do OpenMP usando a variável LD_PRELOAD :

LD_PRELOAD=<path_to_libiomp5.so> <path_to your_executable>

Isso elimina vários carregamentos de libiomp e faz com que todos os componentes usem esta versão específica do OpenMP.

importar os
os.environ ['KMP_DUPLICATE_LIB_OK'] = 'Verdadeiro'

Seguido por

conda install nomkl

Funcionou para mim. Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

tqchen picture tqchen  ·  4Comentários

nicoJiang picture nicoJiang  ·  4Comentários

nnorton24 picture nnorton24  ·  3Comentários

trivialfis picture trivialfis  ·  3Comentários

choushishi picture choushishi  ·  3Comentários