Как использовать (/ установить) линейный решатель pardiso в ipopt, используя среду моделирования pyomo? - PullRequest
2 голосов
/ 28 мая 2019

Я занимаюсь разработкой модели оптимизации с использованием 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, с которыми я не знаю, что делать и где размещать (без объяснений на веб-сайте решателя)

спасибо за вашу помощь,

...