CN108519959A - 一种稳定的基于Spark平台的矩阵求逆算法 - Google Patents

一种稳定的基于Spark平台的矩阵求逆算法 Download PDF

Info

Publication number
CN108519959A
CN108519959A CN201810327881.6A CN201810327881A CN108519959A CN 108519959 A CN108519959 A CN 108519959A CN 201810327881 A CN201810327881 A CN 201810327881A CN 108519959 A CN108519959 A CN 108519959A
Authority
CN
China
Prior art keywords
matrix
strassen
inverse
recurrence
steps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810327881.6A
Other languages
English (en)
Inventor
郭海旋
任江涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201810327881.6A priority Critical patent/CN108519959A/zh
Publication of CN108519959A publication Critical patent/CN108519959A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本发明基于传统的Strassen矩阵求逆算法上对其进行修改,实现了一种能缓解这种数值稳定性问题的方法。类似于Strassen矩阵求逆算法,不过本发明对其进行矩阵旋转操作,使Strassen矩阵求逆算法递归时其对进行求逆,那么当更加良态的时候,就使用旋转后的算法求逆,以提升数值稳定性。

Description

一种稳定的基于Spark平台的矩阵求逆算法
技术领域
本发明涉及Spark平台技术领域,更具体地,涉及一种稳定的基于Spark平台的矩阵求逆算法。
背景技术
由于Spark平台在2012年被提出,主要集中在大数据处理领域,尚不支持大型矩阵的求逆运算,而在Spark平台上的大型矩阵求逆算法的研究也非常少,只有2016年LIU等人提出的基于递归LU分解的算法以及2018年Misra等人提出的基于Strassen的递归求逆算法(SPIN),本发明基于后者,即是SPIN。
Strassen算法由Strassen发表于1969年,它应用于矩阵乘法的方法因为把矩阵乘法的复杂度从O(n3)降低到O(n2.8)而广为人知,Strassen同时提出的求逆算法则没有那么高的知名度。类似于Strassen矩阵乘法,对于
那么C矩阵可以通过以下步骤计算得出:
P2=A21×P1
P3=P1×A12
P4=A21×P3
P5=P4-A22
C12=P3×P6
C21=P6×P2
C11=P1-P3×C21
C22=-P6
对子矩阵A11递归使用该算法(SPIN),到达递归的顶点时,使用已有求逆算法(如LU分解)求解矩阵的逆,执行所有步骤后即可得到矩阵C。Strassen求逆算法的伪代码如图1所示,图2给出了Spark版本的Strassen矩阵求逆算法伪代码。
Spark版本的Strassen求逆算法,主要涉及到六个函数:
■breakMat:把矩阵分成4个块
■xy:即图2中的_11、_12、_21、_22等四个函数,作用是获取对应位置的子矩阵块
■multiply:矩阵乘法,使用Spark自带的矩阵乘法
■subtract:矩阵减法,使用Spark自带的矩阵减法
■scalarMul:矩阵乘以一个常数
■arrange:把四个矩阵块合并成一个大矩阵
然而,上述算法是可能导致数值稳定性出问题的。由于传统Strassen算法,是递归的对单个子矩阵(A11)做求逆操作,而其余子矩阵(A12,A21,A22)均由其他矩阵运算得出,所以子矩阵A11的状态尤为关键。一般来说,子矩阵A11的状态可以总结为如下3点:
1.当子矩阵A11是良态(well-conditioned)的时候,数值稳定性较好
2.当子矩阵A11是近奇异(near-singular)的时候,数值稳定性较差
3.当子矩阵A11是奇异(sigular)的时候,Strassen求逆算法将会失败
情况2和3的矩阵也叫做病态(ill-conditioned)矩阵。可见,只有当子矩阵是良态的时候,才能得到较好的数值稳定性,而Misra实现的方法并没有对Strassen矩阵求逆算法的数值稳定性不好的问题进行优化。
发明内容
本发明对Misra实现的Spark平台上的Strassen矩阵求逆算法进行改进,混合使用传统算法以及旋转算法,通过结合矩阵条件数判断矩阵的态选择使用原始求逆算法还是旋转求逆算法,使Strassen矩阵求逆算法的数值稳定性得到提升。
为实现以上发明目的,采用的技术方案是:
一种稳定的基于Spark平台的矩阵求逆算法,包括以下步骤:
S1.初始化算法参数;
S2.判断矩阵的大小是否达到本地求逆的大小,若是的话使用本地求逆算法得到矩阵的逆,然后返回矩阵的逆;否则进行步骤S3;
S3.如果矩阵的大小未达到本地求逆的大小,则把输入矩阵等分成4块A11,A12,A21,A22;然后计算并比较A11,A21的矩阵条件数;如果A11条件数较小,那么对A11进行递归求逆,然后进行步骤S4,否则,对A21递归进行求逆,进行步骤S5;
S4.根据传统Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤S6;
S5.根据旋转Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤6;
旋转Strassen求逆步骤具体如下:
P2=A11×P1
P3=P1×A22
P4=A11×P3
P5=P4-A12
C12=P3×P6
C21=P6×P2
C11=P1-P3×C21
C22=-P6
S6.计算C11,C12,C21,C22,然后合并为输入矩阵的逆矩阵C并返回逆矩阵C。
优选地,所述步骤S3计算A11,A21的矩阵条件数的具体过程如下:先把矩阵A11、A21转换为Spark平台中的IndexedRowMatrix,然后使用自带的算法计算奇异值分解,然后取奇异值的最大值除以奇异值的最小值,得到矩阵条件数。
与现有技术相比,本发明的有益效果是:
计算机计算是浮点计算,常常会有精度损失问题,计算复杂的时候累计损失会过大,从而影响计算结果,使得结果与真实值发生较大偏差,因此好的数值稳定性对于计算机的计算是非常重要的。Misra实现的SPIN算法对求大规模矩阵逆有良好的性能以及可拓展性也较好,而本发明在此基础上改进,使其可以在Spark平台上求得数值稳定性更好的逆矩阵。
附图说明
图1为Strassen矩阵求逆算法伪代码的示意图。
图2为Spark版本的Strassen矩阵求逆算法伪代码的示意图。
图3为本发明提供的矩阵求逆算法的伪代码的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
本发明提供了一种稳定的基于Spark平台的矩阵求逆算法,如图3所示,其具体包括以下步骤:
S1.初始化算法参数;
S2.判断矩阵的大小是否达到本地求逆的大小,若是的话使用本地求逆算法得到矩阵的逆,然后返回矩阵的逆;否则进行步骤S3;
S3.如果矩阵的大小未达到本地求逆的大小,则把输入矩阵等分成4块A11,A12,A21,A22;然后计算并比较A11,A21的矩阵条件数;如果A11条件数较小,那么对A11进行递归求逆,然后进行步骤S4,否则,对A21递归进行求逆,进行步骤S5;
S4.根据传统Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤S6;
S5.根据旋转Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤6;
旋转Strassen求逆步骤具体如下:
P2=A11×P1
P3=P1×A22
P4=A11×P3
P5=P4-A12
C12=P3×P6
C21=P6×P2
C11=P1-P3×C21
C22=-P6
S6.计算C11,C12,C21,C22,然后合并为输入矩阵的逆矩阵C并返回逆矩阵C。
通过计算矩阵的条件数来衡量一个矩阵是否良态,每次递归都分别计算左上角和左下角矩阵的条件数,选择条件数小的为递归子矩阵。这里使用Spark本地的奇异值分解算法来计算,伪代码如下:
先把矩阵转换为Spark中的IndexedRowMatrix,然后使用自带的算法计算奇异值分解,然后取奇异值的最大值除以奇异值的最小值,得到矩阵条件数。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (2)

1.一种稳定的基于Spark平台的矩阵求逆算法,其特征在于:包括以下步骤:
S1.初始化算法参数;
S2.判断矩阵的大小是否达到本地求逆的大小,若是的话使用本地求逆算法得到矩阵的逆,然后返回矩阵的逆;否则进行步骤S3;
S3.如果矩阵的大小未达到本地求逆的大小,则把输入矩阵等分成4块A11,A12,A21,A22;然后计算并比较A11,A21的矩阵条件数;如果A11条件数较小,那么对A11进行递归求逆,然后进行步骤S4,否则,对A21递归进行求逆,进行步骤S5;
S4.根据传统Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤S6;
S5.根据旋转Strassen求逆步骤计算中间矩阵P2~P6,这里对P6的求逆仍然需要递归求逆,然后进行步骤6;
旋转Strassen求逆步骤具体如下:
P2=A11×P1
P3=P1×A22
P4=A11×P3
P5=P4-A12
C12=P3×P6
C21=P6×P2
C11=P1-P3×C21
C22=-P6
S6.计算C11,C12,C21,C22,然后合并为输入矩阵的逆矩阵C并返回逆矩阵C。
2.根据权利要求1所述的稳定的基于Spark平台的矩阵求逆算法,其特征在于:所述步骤S3计算A11,A21的矩阵条件数的具体过程如下:先把矩阵A11、A21转换为Spark平台中的IndexedRowMatrix,然后使用自带的算法计算奇异值分解,然后取奇异值的最大值除以奇异值的最小值,得到矩阵条件数。
CN201810327881.6A 2018-04-12 2018-04-12 一种稳定的基于Spark平台的矩阵求逆算法 Pending CN108519959A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810327881.6A CN108519959A (zh) 2018-04-12 2018-04-12 一种稳定的基于Spark平台的矩阵求逆算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810327881.6A CN108519959A (zh) 2018-04-12 2018-04-12 一种稳定的基于Spark平台的矩阵求逆算法

Publications (1)

Publication Number Publication Date
CN108519959A true CN108519959A (zh) 2018-09-11

Family

ID=63432451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810327881.6A Pending CN108519959A (zh) 2018-04-12 2018-04-12 一种稳定的基于Spark平台的矩阵求逆算法

Country Status (1)

Country Link
CN (1) CN108519959A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101421960A (zh) * 2006-02-16 2009-04-29 新加坡科技研究局 处理数据信号的方法、数据处理单元及计算机程序产品
CN105373517A (zh) * 2015-11-09 2016-03-02 南京大学 基于Spark的分布式稠密矩阵求逆并行化运算方法
CN106502964A (zh) * 2016-12-06 2017-03-15 中国矿业大学 一种基于Spark的极限学习机并行化计算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101421960A (zh) * 2006-02-16 2009-04-29 新加坡科技研究局 处理数据信号的方法、数据处理单元及计算机程序产品
CN105373517A (zh) * 2015-11-09 2016-03-02 南京大学 基于Spark的分布式稠密矩阵求逆并行化运算方法
CN106502964A (zh) * 2016-12-06 2017-03-15 中国矿业大学 一种基于Spark的极限学习机并行化计算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHANDAN MISRA等: "SPIN: A Fast and Scalable Matrix Inversion Method in ApacheSpark", 《HTTPS://ARXIV.ORG/ABS/1801.04723》 *
DAVID H. BAILEY等: "A Strassen-Newton Algorithm for High-Speed ParallelizableMatrix Inversion", 《SUPERCOMPUTING "88:PROCEEDINGS OF THE 1988 ACM》 *

Similar Documents

Publication Publication Date Title
Chen et al. An escheduler-based data dependence analysis and task scheduling for parallel circuit simulation
CN103970720B (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
Aslan et al. FPGA implementation of fast QR decomposition based on givens rotation
US20230244749A1 (en) Gpu communication method and device, and medium
CN107451097A (zh) 国产申威26010众核处理器上多维fft的高性能实现方法
Liu et al. A high-throughput subspace pursuit processor for ECG recovery in compressed sensing using square-root-free MGS QR decomposition
CN106933777A (zh) 基于国产申威26010处理器的基2一维fft的高性能实现方法
CN112765540A (zh) 数据处理方法、装置及相关产品
CN108519959A (zh) 一种稳定的基于Spark平台的矩阵求逆算法
Kurniawan et al. Multidimensional Householder based high-speed QR decomposition architecture for MIMO receivers
CN108566237A (zh) 基于双对角化的低复杂度几何均值分解预编码实现方法
CN110135067B (zh) 一种双时间步方法下的直升机流场重叠混合网格并行方法
Ma et al. Accelerating SVD computation on FPGAs for DSP systems
Guo et al. Area-efficient modular reduction structure and memory access scheme for NTT
CN102880594A (zh) 基于多核dsp的并行矩阵全选主元高斯约旦求逆算法
CN104461469A (zh) 一种采用gpu并行化实现sm2算法的方法
Bénard et al. Efficient evaluation of molecular integrals over s, p, d, f gaussian basis sets
RU2477513C1 (ru) Ячейка однородной вычислительной среды, однородная вычислительная среда и устройство для конвейерных арифметических вычислений по заданному модулю
Jiang et al. Scalable Scan-Chain-Based Extraction of Neural Network Models
Li et al. Research on the disposal of negative partial product for booth algorithm
Liu et al. Parallelization of the multilevel fast multipole algorithm by combined use of OpenMP and VALU hardware acceleration
CN104317774B (zh) 利用处理器浮点单元进行复数乘和蝶形运算的装置和方法
Liu et al. Architecture for Nonlinear Massive MIMO Detection
CN108230174A (zh) 一种基于谱分析的工业互联网社团检测的方法
Sudhkar et al. A Systematic Analysis of Low Power and Low Area Multipliers by Evading Wastage of energy

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180911