问题标签 [pardiso]

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.

0 投票
2 回答
1724 浏览

c++ - 使用 GCC 编译 PARDISO 线性求解器测试用例

我正在尝试使用PARDISO编译线性系统求解器。测试用例 (pardiso_sym.c) 也是从上面的同一网站下载的。

我在目录中有以下文件:

然后我尝试使用以下命令编译它:

但它给出了这个错误:

我的编译方法有什么问题?

这是我的系统的附加信息:

更新

使用 Dave Gamble 的建议来识别该库。但现在它给出了不同的错误:

0 投票
1 回答
551 浏览

numerical-methods - 将 ARPACK 与 PARDISO 一起使用

这是一个与此处的问题类似的问题

我想知道是否已经有与PARDISO 求解器英特尔 mkl库配合良好的ARPACK Eigensolver的开源实现或示例?

0 投票
2 回答
6653 浏览

graph - 压缩稀疏行 (CSR) 稀疏矩阵的快速访问元素

我想测试一些较新的稀疏线性求解器,我想知道是否有一种快速填充矩阵的方法。我感兴趣的格式是 CSR (http://goo.gl/hLXYd)。假设 CSR 格式的矩阵由下式给出:

所考虑的稀疏矩阵来自网络。所以,我有数千个节点,其中一些节点通过线连接。因此,矩阵在结构上是对称的。每个连接 (i,j) 向对角项 (i,i) 和 (j,j) 以及非对角项 (i,j) 和 (j,i) 添加一些内容。我可以在相同的节点 (i,j,1)、(i,j,2) 之间有多个连接...因此,我可能需要多次重新访问 2 个对角线和 2 个非对角线元素。

我知道我可以通过执行 rowIndex(i) 来获得行的开头。然后,我必须遍历元素 columns(rowIndex(i):rowIndex(i+1)-1) 才能找到 j 的位置。

问题:

有没有一种方法可以在 CSR 格式中更快地访问元素,而无需每次我想更新元素时​​都进行搜索?

一些澄清:我只需要从头开始填写矩阵。矩阵在结构上是对称的,并不是真正对称的。保存的值与网络数据(阻抗、电阻等)有关,它们具有真实值。一般来说,价值(i,j)<>价值(j,i)。我有 (name1,i1,j1,value1), (name2,i2,j2,value2) 等形式的元组。这些元组没有排序,2 个元组可以引用相同的 i,j 值,这意味着它们需要被添加

提前致谢!

0 投票
2 回答
2992 浏览

visual-studio-2010 - 使用 Visual Studio 编译的英特尔 MKL Pardiso 求解器

我正在尝试创建一个简单的示例,以便在 MKL 英特尔库中使用 Pardiso 求解器。我一直在按照提供的示例进行操作,但是如果我将对 Pardiso 的调用放在子例程中,它将不起作用。恐怕这与 INCLUDE 语句或链接方面有关。

所有子程序使用的数组都包含在一个名为 variables 的模块中

包含程序的文件如下:

最后是文件 initpardiso

现在,我还在 Visual Studio 项目配置中添加了 Additional Include Directories(即

如果我评论对 pardiso 的调用,一切正常,否则它将停止编译并出现此错误:

错误 1 ​​错误 #6285:此通用子例程调用没有匹配的特定子例程。[PARDISO_64] ....PardisoFortran\initpardiso.f 144

有什么想法吗?这是顶部的 INCLUDE 语句的问题吗?我应该在哪里包括它?

0 投票
0 回答
2369 浏览

c++ - BLAS、Lapack、Gomp 库(64 位)的链接问题

我一直在尝试使用以下命令编译我的 C++ 程序:

在 Ubuntu 13.04 下,64 位。问题是我仍然不断收到以下错误消息:

它似乎找到了图书馆。我尝试了不同的方法,例如重新安装库、更改库的顺序、检查我是否真的有它们的 64 位版本

以及 http://www.ibm.com/developerworks/aix/library/au-portfortan.html#ur页面上“库的递归引用”中的建议,尽管分组不适用于 g++。还有什么可能是错的?我还尝试为 Theano 安装编译一个优化版本的 openMP(虽然是不同的项目)。难道这会以某种方式弄乱我的openMP吗?我该如何测试呢?我想再次删除该优化版本并从突触包管理器安装一个。我怎样才能做到这一点?

0 投票
1 回答
915 浏览

multithreading - intel MKL pardiso 不会在 fortran 中并行运行

我正在尝试让 intel MKL 版本的 pardiso 与多个内核一起工作。mtype=1我用它来求解具有大约 60K 方程的结构对称系统 ( )。

这些是我的ipram参数。编译时我有

在调用 pardiso 之前,我还设置了 MKL 和 openmp 可用的线程数

call mkl_set_num_threads(3) call omp_set_num_threads(3)

据我了解,如果允许或启用“足够”大问题,所有 MKL 函数都将尝试使用多个线程。我已经使用 OMP 实现了一些并行性,并且代码在多个内核上运行。我称之为 pardiso 的地区是连续的。我的问题是,让 pardiso 与多核一起工作还需要什么?

尝试使用默认值iparm,即iparm(1)=0没有变化

0 投票
1 回答
201 浏览

fortran - Fortran Pardiso 稀疏矩阵格式问题

我目前正在编写一些代码,其中涉及在 Fortran 中构建一个稀疏矩阵并解决一个简单的 AX=b 线性系统。为此,我应项目主管的要求使用 Pardiso 稀疏矩阵库。

代码分为两部分。前半部分构建矩阵和右手边,后半部分调用 Pardiso 解决该系统。我知道前半部分有效,因为将这些数据导出到 Fortran 之外并用 Python 解决系统产生了预期的结果。但是,我无法让 Pardiso 正常工作,主要是因为我误解了它给出的错误消息。该手册解释得很少,互联网论坛上也很少(没有双关语)充斥着与 Pardiso 相关的问题。

我用于 Pardiso 的设置如下:

我得到的错误是:

error PARDISO (sequence_ido,parameters ) error_num= 4 输入检查:

matrix_number_new 22 ido 32675 不兼容

手册或互联网没有说明这意味着什么。pardiso_chkmatrix并且pardiso_printstats不要吐出任何错误,所以我不确定发生了什么。

0 投票
2 回答
1303 浏览

c++ - 如何在 VC++ 中使用 .lib、.dll 和 .exp 文件?

我正在尝试用pardiso求解线性方程组。我已经从网站下载了我可能需要的所有内容(三个文件:.lib、.dll 和 .exp 文件)。

我知道什么是dll和lib,对.exp一无所知。此外,我在互联网上搜索并发现我需要一个头文件。但是pardiso没有提供给我 .h 文件。

更重要的是,pardiso提供了一些我想使用的示例http://www.pardiso-project.org/manual/pardiso_unsym.cpp

现在我的问题来了。如何在没有头文件的 VC++ 2015 中使用 .lib/.dll/.exp 文件?我知道加载 .dll 文件有两种方法:动态和静态,但不知道如何实现。

也许我的问题很简单,因为我对 C/C++ 和 dll 了解不多。所以请帮助我。

太感谢了!

0 投票
0 回答
175 浏览

c++ - 与 Pardsio 5.0.0 和 Intel MKL 链接

我想用 MKL 支持(我使用 Eigen)以及新的Pardiso solver来编译我的代码。问题是 MKL 附带了一个(旧)版本的 Pardiso,其接口功能与 Pardiso 5.0.0 不兼容。

更准确地说,我在编译时收到以下错误:

是否可以在同一个应用程序中编译和链接两者?不幸的是不得不选择,因为我的代码使用 MKL 总体上更快,但 Pardiso 5.0.0 让我成为人群中更快的线性求解器。

0 投票
0 回答
487 浏览

c++ - 并行场景中的 Eigen::PardisoLU (MKL)

我正在尝试将 Eigen(3.3.1 或 3.3.2)与 INTEL 的 MKL PardisoLU 求解器一起使用。我正在使用 EIGEN_USE_MKL_ALL 标志并安装了 IntelSWTools 2017。目前仅在带有 VS C++ 的 Win10 上尝试过,但这不是目标平台。

求解器本身看起来比 SparseLU 工作得快得多,这很好(我对使用非常大的矩阵很感兴趣)。但是在并行场景中,它不能正确解决我的问题。SparseLU 没有这样的问题,或者当我删除上层并行性时(评论pragma parallel for下面)。

PardisoLU 本身应该是线程安全的,那我做错了什么?

该场景非常简短,如下所示