2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

intelMKLを用いたライブラリとNumpyを併用した際に生じるエラーの解消

Posted at

起きた問題の内容

intelMKLを利用するFortranライブラリをPythonからCtypesを用いて利用する際にNumpyと併用しようとすると以下のエラーが出た。行った対処法と情報ソースをメモとして残す。

MKL FATAL ERROR: Cannot load neither libmkl_avx.so nor libmkl_def.so

環境は以下の通り

  • Python 3.6.3
  • Ubuntu 16.04.4
  • Numpy 1.14.5
  • MKL 2018 update?

対応

.bashrcにて次のような環境変数を追加した。

export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so

LD_PRELOADに登録すると同じ関数が複数見つかった場合、LD_PRELOADの対象となるライブラリのものを優先して利用するようになるらしい。

原因と情報ソース

Numpy内部で利用しているMKLとFortranで利用している。MKLが干渉してしまっているようだ。NumpyのMKLの関数と自分でインストールしたMKLのどちらを利用してよいか混乱している状態というところだろうか?

この対応によってNumpy側のMKL利用時に問題が生じないかどうかは検討していないので、副作用には要注意かもしれない。

下記リンク先の情報を参照している。

StackOverFlow:
https://stackoverflow.com/questions/13951953/linking-intels-mkl-within-python-c-c-fortran-2003-program

上のStackOverFlowフォーラムにて回答してくれてる方のブログ:
http://debugjournal.tumblr.com/post/98401758462/intel-mkl-dynamic-link-library-error

Intel Forumの関連投稿:
https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/300857

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?