Я занимаюсь разработкой модели оптимизации с использованием pyomo с python (python 3 - я управляю пакетами с помощью anaconda на windows).Мне нужно использовать нелинейный решатель, ipopt.Похоже, что по умолчанию линейный решатель, используемый ipopt (паротит или ma27), является относительно медленным и не потоковым, я хочу использовать решатель pardiso для линейной части ipopt.Кажется, существует две версии: MKL-intel pardiso и «независимая» версия - я в порядке с любой из них.- но мне не удается использовать pardiso.
У меня работает ipopt, я выбираю его для своей задачи pyomo:
solver = SolverFactory('ipopt')
И я выбираю 'pardiso' в качестве линейного решателя, используяОпции ipopt
solver.options['linear_solver']='pardiso'
Я получаю следующую ошибку:
Exception message: Selected linear solver Pardiso not available.
Tried to obtain Pardiso from shared library "libpardiso.dll", but the following error occured:
Windows error while loading dynamic library libpardiso.dll, error = 126.
Я предполагаю, что солвер не установлен.Если я выбираю «паротит» или ничего не указываю, все работает.
Однако там говорится, что решатель pardiso входит в библиотеку mkl (которая у меня есть), теперь в идеале я хотел бы знать, какие пакеты у меня есть.установить из anaconda для работы решателя pardiso?
В этом посте указано, что для работы необходимо добавить определенные папки библиотек Anaconda в системный путь, что я и сделал
sys.path.append('C:\Programs\pkgs\mkl-2019.3-203\Library\bin')
sys.path.append('C:\Programs\pkgs\intel-openmp-2019.3-203\Library\bin')
Ничего не меняется
В качестве альтернативы я скачал модель pardiso из https://www.pardiso -project.org / , которая дала мне 3 файла libpardiso600-WIN-X86-64.dll.exp и .lib, с которыми я не знаю, что делать и где размещать (без объяснений на веб-сайте решателя)
спасибо за вашу помощь,