首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用pyomo建模框架的ipopt中使用(/install) PARDIO线性求解器?

如何在使用pyomo建模框架的ipopt中使用(/install) PARDIO线性求解器?
EN

Stack Overflow用户
提问于 2019-05-28 16:37:27
回答 1查看 543关注 0票数 3

我正在开发一个使用pyomo和python的优化模型(python 3-i manage packages with anaconda on windows)。我需要使用非线性求解器ipopt。似乎ipopt (mumps或ma27)使用的默认线性求解器相对较慢且不可线程,我希望使用pardiso求解器来处理ipopt的线性部分。它似乎有两个版本:MKL-intel pardiso version"independent" version -我对它们中的任何一个都很满意。-但我不能使用pardiso。

我让ipopt工作,我选择它来解决我的pyomo问题:

代码语言:javascript
复制
solver = SolverFactory('ipopt')

我使用ipopt选项选择'pardiso‘作为线性求解器

代码语言:javascript
复制
solver.options['linear_solver']='pardiso'

我得到以下错误:

代码语言:javascript
复制
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.

我猜这意味着没有安装求解器。如果我选择“mumps”或者不指定任何东西,一切都会正常工作。

但是它说pardiso解算器位于mkl库(我有)中,现在理想情况下,我想知道我必须从anaconda安装哪些包才能使pardiso解算器工作?

This post规定,为了正常工作,必须将特定的Anaconda库文件夹添加到系统路径中,我就是这么做的

代码语言:javascript
复制
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')

什么都没变

或者,我从https://www.pardiso-project.org/下载了pardiso模型,它给了我3个文件libpardiso600-WIN-X86-64。do .exp和.lib,我不知道用它们做什么或放在哪里(在求解器网站上没有解释)

谢谢你的帮忙,

EN

回答 1

Stack Overflow用户

发布于 2021-05-18 21:29:00

在此版本的Ipopt中,它查找文件libpardiso.dll。因此,如果您有libpardiso600-WIN-X86-64.dll,请将其重命名为libpardiso.dll,并确保可以找到它。

在Ipopt 3.14中,将有一个选项'pardisolib‘来指定pardiso库的名称(可能包括路径)。

要从MKL加载Pardiso,也许可以尝试将mkl_rt.dll复制到libpardiso.dll

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56338142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档