英特尔
® 
数学核心函数库 10.0 - 稀疏矩阵解算器
PrintEmail to a friendSupportNewsletterRSSDigg thisdel.icio.us

LINPACK


免费评估版软件 ›

Linux*免费非商业下载 ›

购买产品 ›

英特尔® 数学核心函数库既包含使用直接方法的稀疏矩阵解算器,也包含使用间接/迭代方法的稀疏矩阵解算器。


矩阵类型
英特尔® 数学核心函数库稀疏矩阵解算器
直接
间接/迭代
常规
PARDISO(d、z)
(并行直接解算器)
FGMRES (d)
对称矩阵
正数
PARDISO(d、z)
(并行直接解算器)
共轭梯度 (d)
无穷大
PARDISO(d、z)
(并行直接解算器)
 

d:支持双精度数据
z:支持双精度复杂数据

PARDISO* – 并行直接稀疏矩阵解算器
新增核外支持

在 10.0 版本中,我们增加了对 PARDISO 的核外内存的支持。虽然计算机的内存容量已大幅增加,但是仍然有许多问题因为规模过大而无法通过内存中解决方案加以解决。对于受到规模问题限制的那些客户,我们鼓励您尝试新推出的核外内存 PARDISO 解决方案。我们已经认识到还有进一步优化性能的余地,并且计划在最近几个月内发布一个英特尔® MKL 更新以获得显著的性能提升。

经巴塞尔大学授权许可的 PARDISO* 解算器是一种线程安全、高性能且内存利用率高的软件库,用于在共享内存的多处理器上解算稀疏的对称以及不对称的大型线性方程组。

PARDISO 解算器综合运用左右标准的级别 3 BLAS 超节点技术,来利用管道并行处理功能和内存层次结构。要提高串行和并行稀疏矩阵数值因数分解的性能,算法将以级别 3 BLAS 更新为依据。

对于大型问题,数值实验表明,并行算法的可伸缩性几乎独立于共享内存的多处理架构,观测到的处理速度提高了七倍(在八个处理器上)之多。这种并行处理的方式以 OpenMP* 指令为基础。1

CCLRC (UK) 已就直接稀疏矩阵解算器发布了一份详细的分析报告,该报告表明 PARDISO 相对其他备选方案而言效果非常好。查看报告主页  或直接转至 .PDF 文件 [401KB] 。

Cranes Software 也发表了一篇论文,主要讨论英特尔® MKL PARDISO 在有限元分析应用中的作用。下载 .PDF 文件 [187KB]

PARDISO 支持多种稀疏矩阵类型,可对共享内存的多处理架构中的以下矩阵求解:实数和复数矩阵,对称、结构对称或不对称矩阵,以及正定、不定或厄密共轭稀疏线性方程组。



除标准 PARDISO 接口外,英特尔® MKL 提供了一个先进易用的直接稀疏矩阵解算器(DSS)接口。如果不使用 PARDISO,我们推荐使用 DSS 接口。如欲了解更多信息,请查阅 DSS 接口规格 

迭代解算器
英特尔® MKL 包含迭代稀疏矩阵解算器,该解算器可用于解算一般和对称的正定线性代数方程组。

解算器以反向通信接口(RCI)方案为基础,由用户负责为解算器提供特定运算(例如矩阵矢量乘法)。由于解算器独立于运算的特定实现(例如矩阵矢量乘法),因而该方案为解算器提供了极大的灵活性。

FGMRES 解算器
FGMRES 是一种常用解算器,用于解算一般的稀疏线性方程组。这种普遍适用性使得解算器能够应用于各种情况。解算器能够解决矩阵中的稀疏问题,因此,可以对密集方式不能处理的某些大型问题求解;而对于较大的稀疏问题,其处理速度也比密集方式快。

共轭梯度解算器
共轭梯度 (CG) 解算器适用于线性方程组的数值求解,这些等式由一个对称正定矩阵表示。共轭梯度方法是一种迭代方法,因此它可以应用于由于过于庞大而无通过直接方法处理的稀疏方程组。当通过数值方式求解偏微分等式时通常会生成此类方程组。CG 解算器有两种版本:一种用于右侧只有一项的方程组,另一种用于右侧有多项的方程组。

ILU0/ILUT 预解算子
预解算子(又称为“加速器”)用于加速迭代求解过程。在某些情况下,使用预解算子可大大减少迭代的次数,从而提高解算器性能。英特尔® MKL 目前包含了两种预解算子,它们分别为 ILU0(不完全 LU 因数分解)和 ILUT(带阈值的不完全 LU 因数分解)。ILU0/ILUT 预解算子适用于任何非退化矩阵,既可单独使用,也可与 MKL FGMRES 解算器一起使用。这两种预解算子都基于大家所熟悉的一种因数分解,即将原始矩阵分解为两个三角形矩阵(下三角形矩阵和上三角形矩阵)的乘积。此类分解通常会导致在生成的矩阵结构中添加一些内容(与原始矩阵相比),而 ILU0 预解算子的独特之处正是在于它会保留原始矩阵的结构;而 ILUT 预解算子则可控制填充数量。ILUT 预解算子更稳定,而使用 ILU0 进行计算时通常处理速度较快,占用的内存也较少。

稀疏 BLAS
稀疏矩阵解算器通常会与稀疏 BLAS 结合使用。稀疏 BLAS 是一组函数,它们针对稀疏数据执行大量常见的矢量和矩阵运算。稀疏矢量和矩阵指的是大多数元素都为零的矢量和矩阵。英特尔® MKL 提供了稀疏 BLAS 的实现,它经过特别实现,可以利用数据的稀疏特性。稀疏 BLAS 的范围包括为所有数据类型选定的 BLAS 级别 1 例程,以及用于双精度实函数的 BLAS 级别 2 和级别 3 例程。矩阵类型包括一般矩阵、对称矩阵、三角形矩阵、反对称矩阵和对角矩阵。所支持的数据结构包括压缩稀疏行(CSR)、压缩稀疏列(CSC)、对角、坐标和地平线(skyline)格式。关于英特尔® MKL 中支持 BLAS 的详细信息位于英特尔 MKL BLAS 页面中。

参考
1来自 PARDISO 网站



英特尔® 软件   
网络
英特尔® 软件网络
  • 简单几步,免费成为会员,立即加入吧!