问题标签 [umfpack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scipy - scipy中稀疏正定线性系统的推荐直接求解器?
如果在 scipy.sparse 文档中对此进行了清楚的解释,我很抱歉。
使用 scipy 时,您建议使用什么函数来求解稀疏的正定线性方程组?我想使用直接方法,并且我希望对列进行重新排序,以便在系数矩阵的 Cholesky 分解中尽可能地保持稀疏性。理想情况下,我可以尝试各种重新排序选项。
scipy.sparse 中是否存在稀疏正定系统的直接求解器?scikit.sparse 是要走的路吗?
c++ - 改进稀疏线性系统的解
我在 Linux 系统上用 C++ 编写了一个代码,它解决了线性系统A x = b
,其中A
是使用以下两种方法的稀疏对称矩阵:
- 用于
UMFPACK
顺序分解并进行向后前向替换。 - 使用
UMFPACK
顺序分解,然后使用cuSPARSE
库进行向后前向替换。
我的系统配置是:CUDA 5.0UMFPACK
版本,5.6.2版本,Linux内核版本Debian 3.2.46-1,使用的显卡:GeForce GTX Titan。
从理论上讲,第二种方法应该比第一种方法执行得更好,并且错误最少或没有错误。但是,我观察到以下问题:
- 使用
UMFPACK
函数umfpack_di_solve的向后/向前替换几乎2x
比 CUDA 变体快。 - 对于某些矩阵,使用 CUDA 得到的结果之间的误差
UMFPACK
非常大,最大误差为3.2537
,而对于其他矩阵,则为1e-16
.
附件是我的 tar 文件,其中包含以下组件:
- 一个文件夹 factorize_copy,其中包含我用来求解线性系统的主文件fc.cu。它从同样存在于同一目录中的grid_*_CSC.m文件中读取稀疏矩阵。为方便起见,提供的三个稀疏矩阵的结果也在文本文件中给出。
- 一个包含用于编译和运行的所有依赖项的文件夹
UMFPACK
(我们也将其用于计算)。
tar 文件的链接是 https://www.dropbox.com/s/9qfs5awclshyk3b/code.tar.gz
如果您希望运行代码,我在 factorize_copy 目录中提供了我在系统中使用的MAKEFILE 。您可能需要重新编译UMFPACK
库。
下面还显示了我们的稀疏矩阵程序的示例输出586 x 586
(请注意,与我们检查的其他稀疏矩阵相比,这种情况下的错误非常高)。
如果有人能指出在这种情况下可能出现的错误,我将不胜感激。如果我错过了使用 CUDA 解决稀疏线性系统的更好方法,请告诉我。
编辑:我弄清楚为什么它在某些情况下会出错,而在某些情况下不会。在代码中调用内核函数时,每个块的线程数有误。但是,我仍然有获得加速的问题。
scipy - 在 Linux 上使用 Intel 编译器编译 SciPy 和 UMFPACK
我们的目标是使用英特尔编译器编译 SciPy(和 UMFPACK),以使用英特尔的(多线程)MKL BLAS,已经为 NumPy 成功完成了这项工作。在各种网站的帮助下,我们已经为 UMFPACK 和 SciPy 实现了这一目标,而没有任何明显的错误消息。然而,我们怀疑生成的 SciPy 没有找到我们的 UMFPACK,而是默默地使用了慢得多的替代函数 (SuperLU)。
谁能帮助我们(a)如何确定 SciPy 是否正在找到我们的 UMFPACK,以及(b)如何在编译或执行阶段将 SciPy 指向我们的 UMFPACK 库?
python - FEniCS:UMFPACK 报告正在求解的矩阵是奇异的
我用第一个子域中的斯托克斯方程和第二个子域中的混合泊松方程(达西)创建了一个划分域。我使用 UnitSquare,子域 1 应该是从 0 到 0,5 的区间,子域 2 应该是从 0,5 到 1 的区间。
但现在我收到以下错误:
解决线性变分问题。与调用 numeric 相关的 UMFPACK 问题 * 警告:UMFPACK 报告正在求解的矩阵是奇异的。与调用求解有关的 UMFPACK 问题 *警告:UMFPACK 报告正在求解的矩阵是奇异的。断言 vmax>=vmin, "空范围,请指定 vmin 和/或 vmax" 断言错误:空范围,请指定 vmin 和/或 vmax
任何人都可以帮忙吗?谢谢!
这是代码:
我忘记了这个术语中的 dx(0)。但这不是问题所在。
在代码的第一部分(Stokes)中,我尝试用以下方式编写无滑移条件:
但现在我收到以下错误:
任何人都可以帮忙吗?谢谢!
macos - 'umfpack.h' 未找到,但它位于 /opt/local/include/
我正在尝试在 OSX 10.8 上编译一个名为 hiQlab 的程序
但我刚刚通过包含 umfpack 的 macports 安装了 SuiteSparse umfpack.h
,实际上它存在于默认目录中/opt/local/include/
我需要添加路径还是什么?
好的,经过更多搜索后,我找到了答案——我没有将 macports 路径添加到我的搜索路径中
多么愚蠢 =p,因为我 8 小时都无法回答我自己的问题,所以我将在这里进行编辑
matlab - Dynare 安装问题:umfpack
我正在尝试在我的 rosa linux r3 (64bit) 上为 matlab R2013a 编译 dynare 4.4.2。配置步骤是
但我得到了错误
我一直在尝试
,但错误仍然存在。安装了umfpack(lib64umfpack-devel、lib64umfpack5.6.1 包),所以我不知道该怎么办。有任何想法吗?提前致谢!
c++ - NaN 在 C++ 增强绑定中使用 Umfpack 解线性方程组。
我正在通过Boost bindings使用Umfpack。在大多数情况下,它在求解大尺寸线性方程时工作得非常快。但在某些情况下,我发现结果是 NaN。一开始我认为矩阵是奇异的。但后来我意识到事实并非如此,方程可以通过 Matlab mldivide(反斜杠)函数求解。那么 NaN 结果的原因是什么?C++
python-2.7 - 没有名为 scipy.linalg.dsolve.umfpack 的模块
我试图使用python setup_win_32.py install
.
在安装过程中,我收到以下错误:
没有名为 scipy.linalg.dsolve.umfpack 的模块
有谁知道我该如何解决这个问题?
我在 Windows 7(32 位)上运行并安装了以下所有必需的库:
- 蟒蛇2.7
- PyQt4
- 麻木的
- scipy
- pyFAI
- 法比奥
- pyqtgraph
- scikit 图像
- pyopencl
- fftw3
matlab - 是否可以使用预先计算的分解来加速具有稀疏矩阵的反斜杠\mldivide
我执行求解线性方程组的多次迭代:Mx=b
使用大而稀疏的 M。M 在迭代之间不会改变,但 b 会改变。我尝试了几种方法,到目前为止发现反斜杠\mldivide 是最有效和最准确的。
以下代码与我正在做的非常相似:
现在我想通过利用 M 是固定的事实来进一步加速计算。
设置标志spparms('spumoni',2)
允许求解器算法的详细信息。
我运行了以下代码:
输出(监控):
观察线条:
这表明 M 的因式分解花费了求解方程所需总时间的 2.59546e+007/2.77385e+007 = 93.6%。
我想在我的迭代之外提前计算分解,然后只运行最后一个阶段,这需要大约 6.5% 的 CPU 时间。
我知道如何计算分解 ( [L,U,P,Q,R] = lu(M);
),但我不知道如何将其输出用作求解器的输入。
我想本着以下精神经营一些事情:
有没有办法在 Matlab 中做到这一点?
c++ - 在 Linux 上使用 Openblas 编译 Suitesparse 4.4.4
我下载并编译了 Openblas,现在我正在尝试编译并将 openblas 链接到 Suitesparse 4.4.4。编译所有 lib 文件后,当编译器尝试编译umfpack_di_demo.c时出现以下错误:
我的意思是链接不正确。但是,按照 SuiteSparse_config.mk 中的指示,我给出了 libopenblas.a 在我的系统上的绝对位置。此外,我还使用 gcc-nm 查看符号 dtrsv_ 是否在 libopenblas.a 中定义,我得到以下输出,表明该符号是在库中定义的:
我不确定这里出了什么问题。我应该在 suitesparse_config.mk 文件中包含带有 openblas 的 lapack 吗?任何帮助表示赞赏。谢谢。
注意:如果有帮助,我使用gcc 4.4.7进行所有编译,我的系统详细信息是:
== 编辑1:我遵循的步骤==
对于 Openblas:
- 从 http://github.com/xianyi/OpenBLAS/zipball/v0.2.14 下载 openblas。
- 使用 gcc-4.4.7 和以下命令在我的系统上解压缩并编译它 make FC=/usr/bin/lgfortran-4.4 我必须提供 'FC' 因为我的系统没有 libgfortran.* 存在于 /usr/lib /。
- 编译完成后,我键入 make install 以安装到我的主文件夹中的自定义目录。
对于套件稀疏:
- 从 http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.4.tar.gz 下载suitesparse
- 解压它,并编辑 suitsparse_config.mk 文件以进行以下修改:A) 启用 CHOLMOD 和 SPQR 的 GPU 配置,B) 不使用 metis,因此注释“METIS_PATH = ../../metis-4.0”和“METIS = ../../metis-4.0/libmetis.a”。此外,未提交的“CHOLMOD_CONFIG = -DNPARTITION”。C)给出了openblas的自定义安装路径:BLAS = -L//OpenBLAS/local/lib/libopenblas.a -lpthread -L/usr/lib/gcc/x86_64-linux-gnu/4.4.7/libgfortran.so
- 在 srcdir 中键入 make。