4

我使用以下链接使用 openblas 编译 Ipopt:./configure --with-blas-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-blas-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/ -libopenblas_sandybridgep-r0.2.14.a"

如果我没有定义任何特定的 LAPACK 库,Ipopt 会自动使用来自 netlib 的 LAPACK。openplas 是否带有自己优化的 LAPACK 实现?

如果我使用--with-lapack-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/include/" --with-lapack-lib="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/lib/"

make 失败是因为某些 Lapack 例程无法解析,例如undefined reference todpotrs_ At least there is the filelapacke.hin the包含lib`folder but there are not LAPACK libraries in the文件夹。

我在 GitHub 上发现了这个问题,说明:

好的,我想我想通了...您可以通过在 make 命令行上指定 NO_LAPACK=1 来构建 OpenBLAS 而不在其中包含 LAPACK。默认情况下,它包含一个完整的 LAPACK 库(优化了某些部分)。

但如果是这种情况,库在哪里?

我应该针对 openblas 编译 LAPACK 吗?

如果有人能对这个问题有所了解,我将不胜感激。

4

1 回答 1

1

在 OpenBLAS 文件夹中的 changelog.txt 上,它说

    * Patched LAPACK to fix bug 114, 117, 118. 
  (http://www.netlib.org/lapack/bug_list.html)

还要查看这个页面的源代码布局,这个页面:“OpenBLAS实现了一些LAPACK功能的优化版本”

基于这些,我认为 OpenBLAS 从 netlib 下载 Lapack,然后对其进行一些优化。你能找到替代方案吗?

顺便说一句,仅当您打算在 Ipopt 中使用准牛顿选项时才需要 LAPACK

于 2017-07-22T06:38:32.533 回答