问题标签 [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.
matrix - 在 scipy 中解决稀疏 Ax=b
我需要解决表示 PDE 有限差分法的矩阵Ax=b
在哪里。A
二维问题的典型大小A
约为 (256^2)x(256^2),它由几条对角线组成。以下示例代码是我构造 A 的方式:
加matX
和matY
在一起会产生四个对角线。以上是二阶离散化。对于四阶离散化,我有八个对角线。如果我有二阶导数,那么主对角线也是非零的。
我使用以下代码进行实际解决:
我有几个问题:
Ax=b
在 scipy中解决的最佳方法是什么?我在使用 LU 分解spsolve
的sp.sparse.linalg
库中使用 。我尝试使用sp.linalg.solve
密集矩阵的标准,但速度要慢得多。我还尝试使用sp.sparse.linalg
库中的所有其他迭代求解器,但它们也较慢(对于 1000x1000,它们都需要几秒钟,而对于 不到半秒spsolve
,我A
的可能要大得多)。有没有其他方法可以进行计算?
编辑:我试图解决的问题实际上是时间相关的薛定谔方程。如果潜在项与时间无关,那么按照建议,我可以先对矩阵进行预分解A
以加快代码速度,但是如果潜在项是随时间变化的,则这不起作用,因为我需要更改两者的对角项矩阵A
和B
每个时间步。对于这个特定的问题,有没有办法使用类似于预分解的方法或其他方式来加速代码?
- 我已经安装了
umfpack
。我尝试设置use_umfpack
True 和 False 来测试它,但令人惊讶的是,它use_umfpack=True
比use_umfpack=False
. 我认为拥有这个软件包应该可以加快速度。知道这是怎么回事吗?(PS:我正在使用 Anaconda Spyder 运行代码,如果这有什么不同的话)
我cProfile
习惯于分析我的代码,几乎所有时间都花在了spsolve
. 所以我认为代码的剩余部分(矩阵/问题初始化)已经优化很多,需要改进的是矩阵求解部分。
谢谢。
python-poetry - Python Poetry 与 scikit-umfpack 明显不兼容
我写了一个依赖 scikit-umfpack 的包,刚刚发现了 Python Poetry。
我正在尝试为诗歌设置 .toml 文件来管理 umfpack。
在输入poetry add的时候,建议使用scikit-umfpack 0.3.2版本,所以好像poetry知道。
但是,如果我在 .toml 文件中使用以下依赖项:
然后我在诗歌更新时得到以下输出:
有没有人成功地将 scikit-umfpack 与 Python 诗歌一起使用,如果是这样,如何?
openmp - 使用 -fopenmp 编译并同时链接到 UMFPACK?
我希望每个人都做得很好。
我在集群上使用 OpenMP 来并行化计算。我还想链接到 UMFPACK 来求解稀疏方程组。OMP 块中不使用 UMFPACK。
但是我发现当我运行代码时,并行化并不能很好地工作。我使用 htop 来监控 CPU。它确实说有 20 个 CPU 正在运行,但条形图暗示这不是真的:
而且我的代码确实比没有通过 -lumfpack 链接的代码运行得慢得多。实际上,如果不使用 -lumfpack 链接到库,htop 应该显示如下内容:
我使用以下代码来编译和运行代码:
由于 OMP 块中没有使用 UMFPACK,为什么会-lumfpack
与-fopenmp
? 我想知道如何让它们一起工作。任何建议表示赞赏。谢谢!
fortran - Mac更新后编译umfpack时出错
我可以使用umfpack,但我发现我不能像以前那样使用它。我想原因是我最近更新了 Mac。
我已经安装了 SuiteSparse 版本 4.5.4。我使用来自http://geo.mff.cuni.cz/~lh/Fortran/UMFPACK/的 Fortran 接口 umfpack.f90 。并用于gfortran umfpack.f90 umfpack_simple_3subr.f90 -L/usr/local/lib -lumfpack
编译。但我收到以下错误:
我对解决问题一无所知。任何建议表示赞赏!先感谢您!