モジュールを使用してctypes
IntelMKLをPythonにロードしているので、openmp並列化を必要とするルーチンを呼び出したいと思います(pardiso
私の場合は)
プロセスの詳細を説明するこの便利なリンクをIntelサイトで見つけました。サンプルコードを実行できますが、openmpスレッド関数を使用する独自のサンプルを実行すると、プログラムがクラッシュしてメッセージが表示されます。
python: symbol lookup error: /opt/intel/Compiler/11.1/072/mkl/lib/em64t/libmkl_intel_thread.so: undefined symbol: omp_get_num_procs
libmkl_rt.so
をロードしても、のロードが適切にトリガーされないことを強く疑っていますlibiomp5.so
Intel MKLライブラリパス(および「通常の」Intelライブラリパス)をとの両方LD_RUN_PATH
に追加しようとしLD_LIBRARY_PATH
ましたが、これらのパスにはmklライブラリとopenmpライブラリ(Intelバージョン)の両方が含まれていますが、役に立ちませんでした。
ここでの魔法のトリックは何ですか?
私も使用していますが、mklに対してnumpy
ビルドしていないことに注意してください。numpy
しかし、そもそもnumpyで何もしなくても、mklから何かを呼び出すことができるはずなので、これが問題になるとは思えません。