稀疏特征问题求解 赵永华 中国科学院计算机网络信息中心 超级计算中心 yhzhao@sccas.cn.

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

第九章 常微分方程数值解法 §1 、引言. 微分方程的数值解:设方程问题的解 y(x) 的存在区间是 [a,b] ,令 a= x 0 < x 1
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
常系数线性微分方程组 §5.3 常系数线性方程组. 常系数线性微分方程组 一阶常系数线性微分方程组 : 本节主要讨论 (5.33) 的基解矩阵的求法.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
§3.4 空间直线的方程.
3.4 空间直线的方程.
1.非线性振动和线性振动的根本区别 §4-2 一维非线性振动及其微分方程的近似解法 方程
——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
一、二阶行列式的引入 用消元法解二元线性方程组. 一、二阶行列式的引入 用消元法解二元线性方程组.
第三章 函数逼近 — 最佳平方逼近.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第四节 一阶线性微分方程 线性微分方程 伯努利方程 小结、作业 1/17.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
第三讲 矩阵特征值计算及其应用 — 正交变换与QR方法.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第2章 Z变换 Z变换的定义与收敛域 Z反变换 系统的稳定性和H(z) 系统函数.
Hadoop I/O By ShiChaojie.
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
SOA – Experiment 3: Web Services Composition Challenge
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
What have we learned?.
数据挖掘工具性能比较.
动态规划(Dynamic Programming)
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
C语言程序设计 主讲教师:陆幼利.
Partial Differential Equations §2 Separation of variables
顺序表的删除.
概 率 统 计 主讲教师 叶宏 山东大学数学院.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
柱坐标 Bessel函数 b.c. basis J0(ωa)=0 J0(ωnr) J1(ωnr) J0'(ωa)=0 J1(ωa)=0
用计算器开方.
3. 分子动力学 (Molecular Dynamics,MD) 算法
人工压缩性方法 郭 红.
(七)不可压缩流的数值方法 7.1 MAC方法 7.2 投影法 7.3 人工压缩性方法 7.4 SIMPLE方法 7.5 其他方法:
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
3.16 枚举算法及其程序实现 ——数组的作用.
位移法 —— 例题 主讲教师:戴萍.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
基于最大margin的决策树归纳 李 宁.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
线 性 代 数 厦门大学线性代数教学组 2019年5月12日4时19分 / 45.
§2 方阵的特征值与特征向量.
§7.3 离散时间系统的数学 模型—差分方程 线性时不变离散系统 由微分方程导出差分方程 由系统框图写差分方程 差分方程的特点.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
教学大纲(甲型,54学时 ) 教学大纲(乙型, 36学时 )
线性规划 Linear Programming
第六章 线性方程组的迭代法 — Jacobi, G-S and SOR.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
第十七讲 密码执行(1).
插入排序的正确性证明 以及各种改进方法.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
《偏微分方程》第一章 绪论 第一章 绪论 1.1.
§4.5 最大公因式的矩阵求法( Ⅱ ).
入侵检测技术 大连理工大学软件学院 毕玲.
§1 向量的内积、长度及正交性 1. 内积的定义及性质 2. 向量的长度及性质 3. 正交向量组的定义及求解 4. 正交矩阵与正交变换.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
学习目标 1、什么是列类型 2、列类型之数值类型.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
百万行、千万行数据查询教程 老黄牛.
Presentation transcript:

稀疏特征问题求解 赵永华 中国科学院计算机网络信息中心 超级计算中心 yhzhao@sccas.cn

提要 稀疏特征值问题背景 稀疏矩阵特征值问题软件包列表 稀疏矩阵特征问题求解方法 单/多向量(single and multiple vector)迭代法 Lanczos 和Arnoldi方法 Jacobi-Davidson方法 采用预处理技术的预条件CG(Conjugate-Gradient)法 稀疏矩阵的存储格式 并行软件包设计问题

特征值问题背景 许多大规模科学应用和工程计算中,(包括材料科学、振动力学、电磁学、量子化学等),一个重要的任务是计算特征值问题: Ax=λMx 的部分特征对。通常情况下A和M是大规模、稀疏对称正定矩阵。 对大规模和稀疏特征问题至今没用最好的求解方法。对这些复杂的问题,需要在矩阵的数学特性、算法的求解效率和精度要求等中做出权衡。

电磁场计算 一切电磁波在宏观媒体中都服从Maxwell方程。这些方程通过有限元离散后得到一个广义特征值问题 随着问题规模的增大、有限元基函数解的提高以及有限元网格的加细,离散后的特征值问题的阶数可高达千万阶到上亿阶。 电子结构计算 电子结构中的许多模型对应的方程经过有限元离散化后得到下列形式 其中 是电子密度(特征向量), 是特征值组成的对角矩阵。

Nano/Material-Science Accelerator Modeling

稀疏特征问题求解方法: Lanczos和Arnoldi方法 单/多向量(single and multiple vector)迭代法 幂(Power)迭代方法、逆迭代方法、Rayleigh商迭代(RQI)方法 Lanczos和Arnoldi方法 Lanczos和Arnoldi过程主要构造Krylov子空间的一个标准正交基: 然后在这个子空间上计算近似的Ritz特征对。该过程是一个三项递推求解过程,在每步仅需要一个矩阵-向量积。 基于不同的正交化方法:完全重正交、选择性重正交和局部重正交等Lanczos和Arnoldi方法; 基于不同的重启动策略:显示重启动和隐式重启动Lanczos和Arnoldi方法; 位移逆转换或谱转换:使用基本的Lanczos和Arnoldi方法总是收敛于最大特征值,对于中间特征值需要使用位移-逆转换。另外,为了计算广义特征问题,需要将 转化为: 为了避免迭代收敛到已求得的特征对,这时需要采用紧缩处理。

稀疏特征问题求解方法:Jacobi-Davidson方法 基于块策略:块Lanczos和Arnoldi算法和band Lanczos。 Jacobi-Davidson方法 Jacobi-Davidson方法的思想来源于JOCC(Jacobi orthogonal Component Correction)和Davidson两种方法。由G. L.G.Sleijpen等于1996年提出。 对于Lanczos和Arnoldi方法而言,当求解问题规模增加时,出现的特征值簇将严重影响它们的性能和健壮性。另外,由于矩阵A的逆不能被直接求解,这样预处理成为弥补迭代法的必然选择。这使得Davidson和Jacobi-Davidson方法成为了Arnoldi方法的扩充。 同Lanczos和Arnoldi方法类似,Jacobi-Davidson也是从一个初始向量开始,连续构造由一组正交基构成的子空间,并由此得到所求解的近似特征对,而这些特征对的求解通常可通过Rayleigh商方法得到。但Jacobi-Davidson 构造的标准正交基不同于Krylov子空间的基 。

稀疏特征问题求解方法:Jacobi-Davidson方法 算法思想 假设当前正交基矩阵V=[u1,u2,…,uk],得到一个投影矩阵 1.计算:Bs=θs 得到特征对(θj, sj),由此得到A的Ritz向量uj=Vsj 2.寻找一个修正向量 ,使得: 3.从校正方程 中求解v。 4. 对v做正交化并扩充当前正交基,再计算新的Ritz对。 如此循环,这个算法就是基本的Jacobi-Davidson方法。

稀疏特征问题求解方法:Jacobi-Davidson方法 预处理近似计算校正方程 校正方程可以使用线性系统的近似迭代法(像GMRES或BCGSTAB)求解。如果结合适当的预条件子 可以加速迭代收敛过程。记 如果采用左预处理,在迭代中需要对某个向量 计算 上述运算可通过两步完成: 首先计算: 然后使用左预处理,从 计算z

稀疏特征问题求解方法:Jacobi-Davidson方法 重启动 JD方法在计算过程中需要保留标准正交基,当迭代步比较多时对存储要求太高,因此需要重启动。 一个相应的重启动策略为:Dynamic thick 重启动策略。 紧缩 为了避免迭代收敛到已求得的特征对,这时需要采用紧缩处理。假如已有Ritz向量u1,u2,…,uk ,带紧缩的校正方程为: 其中Q=( u1,u2,…,uk )

稀疏特征问题求解方法:Jacobi-Davidson方法 块Jacobi-Davidison实现 JD的块算法采用具有k个初始向量的块作为算法的开始,每次扩展的基也是一个k个向量的块。这些向量是k个校正方程的近似解,而每个用于不同的Ritz对求解。 JDCG方法 Y.Notay2002年针对实对称矩阵的最小特征对,结合JD方法和预条件共轭梯度(CG)法,提出JDCG方法。 JDQR方法和JDQZ方法 并行化 JD方法使用数据并行方法比较容易并行实现。每个处理器可以保留每个基向量和特征向量的子集,所有的向量修正可在本地进行。同串行算法的不同在于内积运算需要一个全局归约操作。而且矩阵-向量积和预处理操作必须被提供。 软件包:PRIMME 求解问题:电磁场计算;电子线路稳定性

稀疏特征问题求解方法:预条件CG方法 预条件CG方法 CG方法是Chebyshev方法的改进,基于这一基本方法产生了几个不同的CG求解方法,主要包括:LOBPCG、DACG方法。 LOBPCG(Locally Optimal Block ,Preconditioned Conjugate Gradient) 该方法是一种快速求解对称特征问题的方法(A.VKayazev,2001)。由于具有简单性、健壮性和快速收敛性,该方法作为Lanczos和Davidson方法的潜在 竞争方法,引起人们的关注。 该方法是一种梯度法,在选取合适的预条件下,对于求解大规模稀疏问题比较有效,而且它可以块方式求解多个特征值。 LOBPCG也是一种块投影算法,它的子空间由上一步向量、当前向量和局部梯度方向组成,然后在子空间上应用Rayleigh-Ritz方法。 LOBPCG方法 典型的软件包是BLOPEX ,MATLAB

稀疏特征问题求解方法:预条件CG方法 是一种采用最优化方法的CG方法。通过Rayleigh商的CG最小化,该方法可以计算部分特征对。 DACG(Deflation-Accelerated Conjugate Gradient ) 是一种采用最优化方法的CG方法。通过Rayleigh商的CG最小化,该方法可以计算部分特征对。 当使用有效的预处理时,DACG的效率要好于ARPACK软件包。并且当计算少量特征对时, DACG在数值和效率方面比得上Jacobi-Davidson方法。 比较有效的预条件包括块Jacobi、近似逆预条件子:FSAI和AINV,由此开发出Jacobi-DACG,FSAI-DACG和AINA-DACG方法。 这些方法当前用于有限元、混合有限元和有限差分的特征问题中。 相关的软件包PDACG

稀疏矩阵存储格式 绝大多数迭代求解的效率取决于矩阵-向量积,而矩阵-向量积取决于矩阵所使用的存储策略。存储策略的选取需要考虑具体的应用问题。 几种常用的存储格式: 压缩行(列)存储策略(RS:Compress Row storage) 块压缩行(列)存储策略(BCRS:Block Compress Row storage) 压缩对角存储格式(CDS:Compressed Diagonal Storage ) 锯齿对角存储格式(JDS:Jagged Diagonal Sstorage)

稀疏矩阵存储格式 创建三个向量: val:向量以行方式存储矩阵的非零元素值; col_ind:存储val中元素的列标; row_ptr:存储行中第一个元素在val中位置。 Val=[10,-2,3,9,3,7,8,7,3,8,7,5,8,9,9,13,4,2,-1] Col_ind=[1,5,1,2,6,2,3,4,1,3,4,5,2,4,5,6,2,5,6] Row_ptr=[1,3,6,9,13,17,20]

稀疏矩阵存储格式 稀疏块压缩行存储BCRS(Block compress row storage) 一个更有效的存储方法是稀疏块压缩行存储格式。 这样的块矩阵典型的出现在偏微分方程的离散。 与CRS存储格式类似,BCRS存储格式可通过四个数组表示: val=[11,12,0,22,31,32,41,42,33,0,43,44,55,56,0,66,0,0,67,0,77,78,87,88] AN=[1,5,9,13,17,21] AJ=[1,1,2,3,4,4] AI=[1,2,4,6,7]

稀疏矩阵存储格式 压缩对角存储(the compressed diagonal storage:CDS ) 压缩对角存储是另一种稀疏矩阵存储格式,该存储方式利用了特殊矩阵的结构形式。这种结构与有限元或有限差分分解有关。 使用数组Val(6,-1:1)存储右边矩阵。

稀疏矩阵存储格式 锯齿状存储

并行软件包设计问题 用户数据接口 并行软件包的一个重要问题是应用程序同软件包的接口,特别是由问题产生的矩阵如何被描述。基于这一考虑,软件包提供具有各种灵活度的不同机制。 逆通信是解决软件包独立于矩阵描述的一种很好解决办法。 将矩阵输出到文件是一种接口方式,但灵活性最差。 并行方法 特征问题并行软件通常采用基于数据并行的SPMD模式,支持MPI并行。并要求用户提供某些操作的MPI-并行实现,例如矩阵-向量积。 另一种并行方法采用了OpenMP共享内存模式。 极少的软件包采用了JAVA的线程级并行。

并行软件包设计问题 程序语言 C,C++和FORTRAN77/90 支持的标量类型和精度 实数和复数标量类型,单精度和双精度。 健壮性 对并行软件包而言,算法的健壮性是一个重要问题。为此需要使用一些通用的库函数和稳定的算法,例如LAPACK,BLAS, PETSC,MATLAB等。

谢谢!