Вызов многопоточной функции MKL из python: библиотека openmp не найдена? - PullRequest
3 голосов
/ 25 января 2012

Я использую модуль ctypes для загрузки Intel MKL в 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).

В чем здесь фокус?

Обратите внимание, что хотя я также использую numpy, я не построил numpy против MKL.Но я сомневаюсь, что это должно иметь значение, потому что я должен быть в состоянии звонить вещи из MKL, не делая ничего с NumPy в первую очередь.

1 Ответ

3 голосов
/ 26 января 2012

NVM, оказывается, у меня установлена ​​более старая версия MKL.

Следуя инструкциям по ссылке, которую я дал для версий старше 10.3, я запустил его и запустил.

...