libmkl_intel_thread.so: undefined symbol: omp_get_num_procs


MKLを使用するにはOpenMPランタイムのインストールがほぼ必須であるが、Debianでlibomp-devをインストールしても認識されない(表題のエラーが出る)。
libmkl_rt.so内の文字列を探ると、libiomp5.soと見える。aptでインストールされるのはlibomp.so.5であるため、異なっているから認識されないと推測される。
https://xcalablemp.org/download/workshop/7th/kaneko.pdf によると、libompはlibiompをベースにしているため、symlinkを生やせばよかろう。

以下で通すことが可能である。

sudo ln -s libomp.so.5 /usr/lib/x86_64-linux-gnu/libiomp5.so

210906

本件。おそらくBullseyeでは不要です。誤報でした。すみません。

Bullseyeのファイル構造を見ると以下のようになっていた。

/usr/lib/x86_64-linux-gnu/libiomp5.so -> ../llvm-11/lib/libomp.so

どういう理由でこの記事を書いたのか忘れたが、Stretchで https://salsa.debian.org/cielavenir/intel-mkl/-/tree/stretch-bpo を使って入れた場合に必要になるのかも。

210906_2

もしかしたら弊社のdev_package-stripperを通すと/usr/lib/x86_64-linux-gnu/libiomp5.so symlinkが消えるのかもしれない。^^;;;