CN109491594B - 矩阵求逆过程中优化数据存储空间的方法和装置 - Google Patents

矩阵求逆过程中优化数据存储空间的方法和装置 Download PDF

Info

Publication number
CN109491594B
CN109491594B CN201811140431.2A CN201811140431A CN109491594B CN 109491594 B CN109491594 B CN 109491594B CN 201811140431 A CN201811140431 A CN 201811140431A CN 109491594 B CN109491594 B CN 109491594B
Authority
CN
China
Prior art keywords
matrix
round
block
sub
auxiliary
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.)
Active
Application number
CN201811140431.2A
Other languages
English (en)
Other versions
CN109491594A (zh
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.)
Beijing Neucloud Dingcheng Technology Co ltd
Original Assignee
Beijing Neucloud Dingcheng Technology Co ltd
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 Beijing Neucloud Dingcheng Technology Co ltd filed Critical Beijing Neucloud Dingcheng Technology Co ltd
Priority to CN201811140431.2A priority Critical patent/CN109491594B/zh
Publication of CN109491594A publication Critical patent/CN109491594A/zh
Application granted granted Critical
Publication of CN109491594B publication Critical patent/CN109491594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种矩阵求逆过程中优化数据存储空间的方法和装置。其中,矩阵求逆过程中优化数据存储空间的方法包括:对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i‑2)轮分块的过渡矩阵的数据缓存。本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法和装置,能减少本轮分块过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少。

Description

矩阵求逆过程中优化数据存储空间的方法和装置
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种矩阵求逆过程中优化数据存储空间的方法和装置。
背景技术
Spark框架是一个集批处理、实时处理于一体的基于内存计算的开源集群计算框架,能够并行处理大数据集的计算。Spark框架采用弹性分布式数据集进行迭代计算,提高了计算效率。
随着数据规模的不断扩大,对计算使用的磁盘空间大小的要求也越来越高。若计算时存储空间不足,会导致弹性分布式数据集(Resilient Distributed Datasets,简称RDD)缓存失败、洗牌(shuffle)操作失败,最终导致计算任务失败。
计算方阵的逆矩阵时,常采用将方阵进行分块后再通过计算获得方阵的逆矩阵的方法。
对于方阵T,其逆矩阵为T-1。将T分为四块:
Figure BDA0001815680700000011
其中,A11为方阵;
则有
Figure BDA0001815680700000012
Figure BDA0001815680700000013
Figure BDA0001815680700000014
Figure BDA0001815680700000015
Figure BDA0001815680700000016
因此,根据
Figure BDA0001815680700000017
以及
Figure BDA0001815680700000018
即可获得方阵T的逆矩阵为T-1
方阵T称为目标矩阵,A11、A12、A21、A22分别称为第一子矩阵、第二子矩阵、第三子矩阵、第四子矩阵,
Figure BDA0001815680700000021
分别称为第一辅助矩阵、第二辅助矩阵、第三辅助矩阵,
Figure BDA0001815680700000022
分别称为第一子逆矩阵、第二子逆矩阵、第三子逆矩阵、过渡矩阵。
根据第一子矩阵可以计算出第一辅助矩阵,根据第一子矩阵和第二子矩阵可以计算出第二辅助矩阵,根据根据第一子矩阵和第三子矩阵可以计算出第三辅助矩阵,根据第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵可以计算出过渡矩阵;根据第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵的逆矩阵,根据第二辅助矩阵和过渡矩阵的逆矩阵可以计算出第二子逆矩阵,根据第三辅助矩阵和过渡矩阵的逆矩阵可以计算出第三子逆矩阵。
若目标矩阵为高阶方阵,例如阶数为几千、几万甚至更多的方阵,对目标矩阵进行分块时,使第一子矩阵的阶数等于预设的基础分块矩阵的阶数,目标矩阵的阶数为基础分块矩阵的阶数的整数倍;分块时,将目标矩阵分为第一子矩阵、第二子矩阵、第三子矩阵、第四子矩阵四块,根据第一子矩阵、第二子矩阵、第三子矩阵、第四子矩阵获得第一辅助矩阵、第二辅助矩阵、第三辅助矩阵、过渡矩阵,并需要计算过渡矩阵的逆矩阵,结合第一辅助矩阵、第二辅助矩阵、第三辅助矩阵获得第一子逆矩阵、第二子逆矩阵、第三子逆矩阵,从而获得目标矩阵的逆矩阵。
由于过渡矩阵也是方阵,因而可以继续对过渡矩阵进行分块,生成获得新的第一辅助矩阵、新的第二辅助矩阵、新的第三辅助矩阵;重复上述过程,可以获得一个阶数等于预设的基础分块矩阵的阶数的过渡矩阵作为最终的过渡矩阵。第i次对当前目标矩阵进行分块,并根据第一子矩阵、第二子矩阵、第三子矩阵第四子矩阵、获得第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵的过程作为一轮分块,即第i轮分块。对于第i轮分块,当前目标矩阵为第(i-1)轮分块的过渡矩阵,即将第(i-1)轮分块的过渡矩阵分为第i轮的第一子矩阵、第二子矩阵、第三子矩阵、第四子矩阵,并根据第i轮的第一子矩阵、第二子矩阵、第三子矩阵、第四子矩阵获得第i轮的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵。
由于预设的基础分块矩阵的阶数较低,可以容易地计算出最终的过渡矩阵的逆矩阵,从而可以根据最终的过渡矩阵的逆矩阵获得其上一过渡矩阵的逆矩阵;重复上述过程,可以最终获得目标矩阵的逆矩阵。第j次根据当前过渡矩阵的逆矩阵计算上一过渡矩阵的逆矩阵的过程作为一轮求逆,即第j轮求逆。
对目标矩阵进行分块和根据当前过渡矩阵的逆矩阵计算上一过渡矩阵的逆矩阵的过程,都存在迭代。基于Spark框架计算高阶方阵的逆矩阵时,读取目标矩阵,根据第一子矩阵、第二子矩阵、第三子矩阵获得第一辅助矩阵、第二辅助矩阵、第三辅助矩阵,以及根据当前过渡矩阵的逆矩阵计算上一过渡矩阵的逆矩阵的过程都会涉及shuffle操作。由于计算过程中包含大量shuffle操作,从而会产生大量shuffle文件。shuffle文件和RDD用于保存各轮分块产生的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵、过渡矩阵和各轮求逆的结果。根据Spark框架,shuffle文件会存储于数据存储空间中,具体为磁盘中;对RDD进行数据缓存,可缓存于磁盘中或内存中。
现有技术由于不主动清除数据存储空间,使得磁盘空间占用量将大量增长。在矩阵分块求逆算法后期,随着迭代次数的增加,每次迭代计算时间无法确定,磁盘增量无法确定,从而无法实现磁盘容量精确控制,进而无法保证足够多的磁盘空间。若磁盘空间不足将会使已缓存的中间数据被剔除,从而引发重复计算,进而影响计算性能。
发明内容
针对现有技术存在的问题,本发明实施例提供矩阵求逆过程中优化数据存储空间的方法和装置。
第一方面,本发明实施例提供一种矩阵求逆过程中优化数据存储空间的方法,包括:
对于第i轮分块,根据所述第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得所述第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;
将所述第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存;
其中,1≤i≤N,N表示分块的总轮数。
第二方面,本发明实施例提供一种矩阵求逆过程中优化数据存储空间的装置,包括:
洗牌文件清除模块,用于对于第i轮分块,根据所述第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得所述第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;
数据缓存清除模块,用于将所述第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存;
其中,1≤i≤N,N表示分块的总轮数。
第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的矩阵求逆过程中优化数据存储空间的方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的矩阵求逆过程中优化数据存储空间的方法。
本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法和装置,通过清除第i轮分块过程中的洗牌操作产生的块文件和延迟释放弹性分布式数据集,能减少本轮分块过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少,且不会导致矩阵求逆过程耗时的增加。进一步地,步骤简单,可控性强,延迟释放机制能防止在循环运算中的重复计算,能有效提高计算效率,数据存储空间的占用量呈几何级下降,能降低存储成本,能在存储资源有限时使应用程序保持高效的执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法的流程示意图;
图2为根据本发明实施例提供的矩阵求逆过程中优化数据存储空间的装置的功能框图;
图3为根据本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服现有技术的上述问题,本发明实施例提供一种矩阵求逆过程中优化数据存储空间的方法,其发明构思是,在本轮分块完成之后,将本轮之后的各轮分块均不会使使用的数据缓存和本轮分块过程中的洗牌操作产生的块文件进行清除,以减少对数据存储空间的占用。
图1为根据本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法的流程示意图。如图1所示,一种矩阵求逆过程中优化数据存储空间的方法包括:步骤S101、对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;其中,1≤i≤N,N表示分块的总轮数。
需要说明的是,本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法,依赖于Spark框架。
可以理解的是,第1轮分块是对原始目标矩阵进行的。由于原始目标矩阵的阶数为基础分块矩阵的阶数的整数倍,当原始目标矩阵的阶数为基础分块矩阵的阶数的(N+1)倍时,总共需要经过N轮分块,获得的过渡矩阵的阶数与基础分块矩阵的阶数相同。阶数与基础分块矩阵的阶数相同的过渡矩阵为第N轮分块的过渡矩阵。N为正整数,表示分块的总轮数。N等于原始目标矩阵的阶数与基础分块矩阵的阶数之比减1。
例如,原始目标矩阵为10000阶的方阵,基础分块矩阵为1000,那么原始目标矩阵的阶数为基础分块矩阵的阶数的10倍,即N+1=10,N=9;对于该原始目标矩阵,分块的总轮数为9。
具体地,对于第i轮分块,在分块过程中,将第(i-1)轮分块的过渡矩阵分为第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵,并根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵,获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵。其中,i为正整数,1≤i≤N。
将第(i-1)轮分块的过渡矩阵分为第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵的过程,包含大量洗牌(shuffle)操作。并且,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵,获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵的过程,也包含大量shuffle操作。由于shuffle操作中的写操作shufflewrite操作会产生块文件,而第i轮分块之后的各轮分块中和各轮求逆中均不需要使用上述两个过程中产生的块文件,因此,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件(即block文件,也称为shufflewrite文件)。
清除洗牌操作产生的块文件,具体指清除shuffle write操作产生的block文件。即根据通过shuffleId,删除Spark框架的集群中各个节点上的shuffle write操作产生的block文件。
具体地,以mapPartitions的方式,在每个executor端获取本地block文件,并在driver端进行汇总和去重,最后由driver端筛选ShuffleDataBlockId和ShuffleIndexBlockId,并删除筛选出的ShuffleDataBlockId和ShuffleIndexBlockId所对应block文件,保留其他类型的block文件。
由于上述过程中,除包含shuffle操作外,还包括其他操作。其他操作也会产生block文件。除shuffle操作之外的操作产生的block文件为其他类型的block文件。相对于shuffle操作产生的block文件而言,其他类型的block文件占用的数据存储空间较小,或者第i轮分块之后的各轮分块中和求逆中会使用其他类型的block文件,因而保留其他类型的block文件。
步骤S102、将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存。
由于第i轮分块会使用第(i-1)轮分块的过渡矩阵,而不会使用第(i-1)轮分块之前各轮分块的过渡矩阵,获得第i轮的过渡矩阵后,将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存,实现延迟释放RDD。
断开RDD的依赖,不会导致正在计算的本轮分块使用的RDD所需要的数据不够,而造成重新计算本轮分块使用的RDD所需要的数据,从而造成重复计算以及计算时间的延长。
本发明实施例通过清除第i轮分块过程中的洗牌操作产生的块文件和延迟释放弹性分布式数据集,能减少本轮分块过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少,且不会导致矩阵求逆过程耗时的增加。进一步地,步骤简单,可控性强,延迟释放机制能防止在循环运算中的重复计算,能有效提高计算效率,数据存储空间的占用量呈几何级下降,能降低存储成本,能在存储资源有限时使应用程序保持高效的执行效率。
基于上述各实施例的内容,矩阵求逆过程中优化数据存储空间的方法还包括:对于第j轮求逆,根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果获得第j轮求逆的计算结果之后,将第j轮求逆的计算结果存储于数据缓存,清除用于存储第(j-1)轮求逆的计算结果的数据缓存和/或清除用于存储第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵和第三辅助矩阵的数据缓存;其中,1≤j≤N。
可以理解的是,除了对于每轮分块,清除本轮之后的各轮分块均不会使使用的数据缓存和本轮分块过程中的洗牌操作产生的块文件之外,还可以对于每轮求逆,清除本轮之后的各轮求逆均不会使使用的数据缓存,避免各轮产生的数据缓存和块文件叠加导致占用大量的数据存储空间,以进一步减少对数据存储空间的占用。
可以理解的是,第1轮求逆是根据获得第N轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和第N轮分块的过渡矩阵的逆矩阵进行的。在进行第1轮求逆之前,通过计算获取第N轮分块的过渡矩阵的逆矩阵。
第1轮求逆是根据获得第N轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和第N轮分块的过渡矩阵的逆矩阵进行的,类似地,第j轮求逆,根据获得第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和第(N+1-j)轮分块的过渡矩阵的逆矩阵进行,获得第j轮求逆的计算结果。其中,j为正整数,1≤j≤N。求逆的总轮数,与分块的总轮数相同,均为N。
第(N+1-j)轮分块的过渡矩阵的逆矩阵,是第(j-1)轮求逆的计算结果;第j轮求逆的计算结果,是第(N-j)轮分块的过渡矩阵的逆矩阵,第(N-j)轮分块的过渡矩阵的逆矩阵用于获取第(j+1)轮求逆的计算结果。
具体地,对于第j轮求逆,会使用第(j-1)轮求逆的计算结果,而第(j+1)轮求逆不会使用第(j-1)轮求逆的计算结果、但使用第j轮求逆的计算结果,因此,在获得第j轮求逆的计算结果之后,将第j轮求逆的计算结果存储于数据缓存,清除用于存储第(j-1)轮求逆的计算结果的数据缓存,实现延迟释放RDD。
断开RDD的依赖,不会导致正在计算的本轮分块使用的RDD所需要的数据不够,而造成重新计算本轮分块使用的RDD所需要的数据,从而造成重复计算以及计算时间的延长。
对于第j轮求逆,还会使用第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵,而第(j+1)轮求逆不会使用第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵,但会使用第(N-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵,因此,在获得第j轮求逆的计算结果之后,还可以清除用于存储第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵和第三辅助矩阵的数据缓存。
本发明实施例通过清除用于存储第(j-1)轮求逆的计算结果的数据缓存和/或清除用于存储第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵和第三辅助矩阵的数据缓存,能减少本轮求逆过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少,且不会导致矩阵求逆过程耗时的增加。
基于上述各实施例的内容,在第(j+1)轮求逆之前,还包括:清除第j轮求逆过程中的洗牌操作产生的块文件。
可以理解的是,除了对于每轮分块,清除本轮之后的各轮分块均不会使使用的数据缓存和本轮分块过程中的洗牌操作产生的块文件之外,还可以对于每轮求逆,清除本轮分块过程中的洗牌操作产生的块文件,避免各轮产生的数据缓存和块文件叠加导致占用大量的数据存储空间,以进一步减少对数据存储空间的占用。
具体地,对于第j轮求逆,在分块过程中,根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果获得第j轮求逆的计算结果的过程,包含大量洗牌操作并产生块文件。在第j轮求逆之后的各轮求逆中均不需要使用第j轮求逆过程中的洗牌操作产生的块文件,因此,可以在第(j+1)轮求逆之前进行清除。
本发明实施例通过在第(j+1)轮求逆之前,清除第j轮求逆过程中的洗牌操作产生的块文件,能减少本轮求逆过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少。
基于上述各实施例的内容,清除第j轮分块过程中洗牌操作产生的块文件具体包括:读取第(N+1-j)轮分块的第二辅助矩阵之后,清除读取第(N+1-j)轮分块的第二辅助矩阵的过程中的洗牌操作产生的块文件;根据第(N+1-j)轮分块的第二辅助矩阵和第(j-1)轮求逆的计算结果,获得第j轮求逆的第二子逆矩阵之后,清除获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件。
需要说明的是,第j轮求逆包括读取第(N+1-j)轮分块的第二辅助矩阵,根据第(N+1-j)轮分块的第二辅助矩阵和第(j-1)轮求逆的计算结果获得第j轮求逆的第二子逆矩阵,读取第(N+1-j)轮分块的第三辅助矩阵,根据第(N+1-j)轮分块的第三辅助矩阵和第(j-1)轮求逆的计算结果获得第j轮求逆的第三子逆矩阵,读取第(N+1-j)轮分块的第一辅助矩阵和第三辅助矩阵并根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果获得第j轮求逆的第一子逆矩阵等5个过程,上述5个过程都包含洗牌操作,并产生块文件。对于上述5个过程中产生的块文件,可以分别清除,也可以在获得第j轮求逆的计算结果之后一并清除。
具体地,由于读取第(N+1-j)轮分块的第二辅助矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,读取第(N+1-j)轮分块的第二辅助矩阵之后,可以清除读取第(N+1-j)轮分块的第二辅助矩阵的过程中的洗牌操作产生的块文件。
由于根据第(N+1-j)轮分块的第二辅助矩阵和第(j-1)轮求逆的计算结果获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,获得第j轮求逆的第二子逆矩阵之后,可以清除获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件。
清除洗牌操作产生的块文件的具体过程,详见上述各实施例,此处不再赘述。
本发明实施例通过在读取第(N+1-j)轮分块的第二辅助矩阵之后,清除读取第(N+1-j)轮分块的第二辅助矩阵的过程中的洗牌操作产生的块文件,以及获得第j轮求逆的第二子逆矩阵之后,清除获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件,能更及时地清除无用的块文件、释放数据存储空间,优化对数据存储空间的占用。
基于上述各实施例的内容,清除第j轮分块过程中洗牌操作产生的块文件具体包括:读取第(N+1-j)轮分块的第三辅助矩阵之后,清除读取第(N+1-j)轮分块的第三辅助矩阵的过程中的洗牌操作产生的块文件;根据第(N+1-j)轮分块的第三辅助矩阵和第(j-1)轮求逆的计算结果,获得第j轮求逆的第三子逆矩阵之后,清除获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件。
具体地,由于读取第(N+1-j)轮分块的第三辅助矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,读取第(N+1-j)轮分块的第三辅助矩阵第三辅助矩阵第三辅助矩阵的过程中的洗牌操作产生的块文件。
由于根据第(N+1-j)轮分块的第三辅助矩阵和第(j-1)轮求逆的计算结果获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,获得第j轮求逆的第三子逆矩阵之后,可以清除获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件。
清除洗牌操作产生的块文件的具体过程,详见上述各实施例,此处不再赘述。
需要说明的是,由于可以先获得第j轮求逆的第二子逆矩阵,也可以先获得第j轮求逆的第三子逆矩阵,还可以并行获得第j轮求逆的第二子逆矩阵和第三子逆矩阵;相应地,可以先清除读取第(N+1-j)轮分块的第二辅助矩阵和获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件,后清除读取第(N+1-j)轮分块的第三辅助矩阵和获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件;也可以先清除读取第(N+1-j)轮分块的第三辅助矩阵和获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件,后清除读取第(N+1-j)轮分块的第二辅助矩阵和获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件;还可以并行清除读取第(N+1-j)轮分块的第三辅助矩阵和获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件,以及读取第(N+1-j)轮分块的第二辅助矩阵和获得第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件。本发明实施例对此不作具体限制。
本发明实施例通过在读取第(N+1-j)轮分块的第三辅助矩阵之后,清除读取第(N+1-j)轮分块的第三辅助矩阵的过程中的洗牌操作产生的块文件,以及获得第j轮求逆的第三子逆矩阵之后,清除获得第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件,能更及时地清除无用的块文件、释放数据存储空间,优化对数据存储空间的占用。
基于上述各实施例的内容,读取第(N+1-j)轮分块的第二辅助矩阵之后,还包括:读取第(N+1-j)轮分块的第一辅助矩阵和第三辅助矩阵,根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果,获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
具体地,第j轮求逆的第一子逆矩阵根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果获得,因此,读取第(N+1-j)轮分块的第二辅助矩阵之后,还要读取第(N+1-j)轮分块的第一辅助矩阵和第三辅助矩阵,从而据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果,获得第j轮求逆的第一子逆矩阵。由于获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,可以获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
清除洗牌操作产生的块文件的具体过程,详见上述各实施例,此处不再赘述。
本发明实施例通过获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件,能更及时地清除无用的块文件、释放数据存储空间,优化对数据存储空间的占用。
基于上述各实施例的内容,读取第(N+1-j)轮分块的第三辅助矩阵之后,还包括:读取第(N+1-j)轮分块的第一辅助矩阵和第二辅助矩阵,根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果,获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
具体地,读取第(N+1-j)轮分块的第三辅助矩阵之后,还要读取第(N+1-j)轮分块的第一辅助矩阵和第二辅助矩阵,从而据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果,获得第j轮求逆的第一子逆矩阵。由于获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件,不会被用于第j轮求逆之后的各轮求逆中,因此,可以获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
清除洗牌操作产生的块文件的具体过程,详见上述各实施例,此处不再赘述。
本发明实施例通过获得第j轮求逆的第一子逆矩阵之后,清除获得第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件,能更及时地清除无用的块文件、释放数据存储空间,优化对数据存储空间的占用。
为了便于对本发明各实施例的理解,下面通过一个实例说明本发明实施例提供的矩阵求逆过程中优化数据存储空间的方法的效果。
原始目标矩阵的阶数为20000×20000,基础分块矩阵的阶数为1000×1000,原始目标矩阵可以将看作为n×n个块矩阵,n=20。原始目标矩阵中的元素为数,数的类型为double,占8个字节。每个块矩阵的大小为基础分块矩阵大小。其中,n表示原始目标矩阵的行数与基础分块矩阵的行数之比。
先按基础分块矩阵大小逐步分解矩阵,并存放到不同的栈中,以备后续使用。
读取原始目标矩阵将产生n×n的shuffle write文件,进行第1轮分块后,第一子矩阵的大小为1×1个基础分块矩阵大小;第二子矩阵和第三子矩阵的大小分别为1×(n-1)和(n-1)×1个基础分块矩阵大小;在计算第二过渡矩阵、第三过渡矩阵及活动第四子矩阵时,将产生shuffle write文件,大小为3×(n-1)×(n-1)个基础分块矩阵大小,并且这3个计算结果会进行缓存,以便后续使用。
因此,开始阶段会占用一次大的磁盘。
对于第1轮后的各轮分块,第i轮分块产生的shuffle write文件大小将是2×(n-i)×(n-i)个基础分块矩阵大小。历轮分块对磁盘的占用越来越小,直到分块结束(即完成总共19轮分块),但总共占用的磁盘越来越大。
对于各轮求逆,由小到大逐步求逆,直到求出原始目标矩阵的逆矩阵。在每一轮求逆的过程中,将有多达10处产生shuffle write文件。对于第j轮求逆,产生的shufflewrite文件的大小为3×i+5×i2+(i+1)2+1个基础分块矩阵大小。历轮求逆产生的shufflewrite文件越来越大,对磁盘的占用越来越大。
shuffle write文件占用磁盘的最大量diskshuffle为:
Figure BDA0001815680700000131
历次数据缓存占用的磁盘最大量diskpersist为:
Figure BDA0001815680700000132
其中,SizeBasicMatrix为基础分块矩阵的大小,n表示原始目标矩阵的行数与基础分块矩阵的行数之比。
因此,磁盘的总占用最大量diskuse为上述两者之和:
diskuse=diskshuffle+diskpersist
diskuse将随着矩阵阶数的增长呈现指数式增长。
原始目标矩阵的阶数为20000×20000时,磁盘的大小为120G时,采用现有技术会导致矩阵求逆任务失败,其原因在于由于矩阵求逆过程中总的磁盘占用超过120G;而采用本发明实施例提供的方法,在各轮分块和各轮求逆中都及时清除数据缓存和块文件,对磁盘占用的实时增量不断振动变化,并且先整体减小后逐渐增大,占用磁盘的峰值为13.5G、约为4.5倍的原始目标矩阵大小、不超过120G,能成功求出原始目标矩阵的逆矩阵。
原始目标矩阵的阶数为10000×10000时,采用现有技术占用磁盘的峰值为22.7G,而采用本发明实施例提供的方法,在各轮分块和各轮求逆中都及时清除数据缓存和块文件,占用磁盘的峰值为3.3G。
需要说明的是,为测得磁盘占用量峰值,所有需要的数据缓存均直接缓存到磁盘,而不缓存到内存。
从上面的对比可以看出,本发明各实施例提供的矩阵求逆过程中优化数据存储空间的方法,大大降低了基于Spark框架进行矩阵分块求逆过程中对数据存储空间的占用,节省了大量数据存储空间,矩阵求逆的计算速度可随硬件规模增长则提升,空间占用量并不会提升。进一步地,能够将各轮迭代时新增的数据存储空间的占用控制在原始目标矩阵所占用数据存储空间的大小的4倍左右。新增的数据存储空间的占用最大不会超过4倍,增强了求逆过程数据存储空间占用的可控性又不会导致增量过大;新增的数据存储空间的占用最小不会太小,不会因太小导致弱化Spark框架基于内存计算的优势。
图2为根据本发明实施例提供的矩阵求逆过程中优化数据存储空间的装置的功能框图。基于上述各实施例的内容,如图2所示,一种优化数据存储空间的装置包括洗牌文件清除模块201和数据缓存清除模块202,其中:
洗牌文件清除模块201,用于对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;
数据缓存清除模块202,用于将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存;
其中,1≤i≤N,N表示分块的总轮数。
对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,由于第i轮分块之后的各轮分块中和各轮求逆中均不需要使用上述过程中产生的块文件,因此,若洗牌文件清除模块201判断获知已获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵,则清除第i轮分块过程中的洗牌操作产生的块文件。
由于第i轮分块会使用第(i-1)轮分块的过渡矩阵,而不会使用第(i-1)轮分块之前各轮分块的过渡矩阵,若数据缓存清除模块202判断获知已获得第i轮的过渡矩阵后,则将第i轮的过渡矩阵存储于数据缓存,并清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存。
本发明实施例提供的矩阵求逆过程中优化数据存储空间的装置,用于执行本发明各实施例提供的矩阵求逆过程中优化数据存储空间的方法,矩阵求逆过程中优化数据存储空间的装置包括的各模块实现相应功能的具体方法和流程详见上述矩阵求逆过程中优化数据存储空间的方法的实施例,此处不再赘述。进一步地,步骤简单,可控性强,延迟释放机制能防止在循环运算中的重复计算,能有效提高计算效率,数据存储空间的占用量呈几何级下降,能降低存储成本,能在存储资源有限时使应用程序保持高效的执行效率。
该矩阵求逆过程中优化数据存储空间的装置用于前述各实施例的矩阵求逆过程中优化数据存储空间的方法。因此,在前述各实施例中的矩阵求逆过程中优化数据存储空间的方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例通过清除第i轮分块过程中的洗牌操作产生的块文件和延迟释放弹性分布式数据集,能减少本轮分块过程中数据存储空间的占用,使各轮分块过程总共占用的数据存储空间大大减少,且不会导致矩阵求逆过程耗时的增加。进一步地,步骤简单,可控性强,延迟释放机制能防止在循环运算中的重复计算,能有效提高计算效率,数据存储空间的占用量呈几何级下降,能降低存储成本,能在存储资源有限时使应用程序保持高效的执行效率。
图3为根据本发明实施例提供的电子设备的实体结构示意图。基于上述实施例的内容,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储在存储器330上并可在处理器310上运行的计算机程序,以执行上述各实施例提供的方法,例如包括:对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存。
本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:对于第i轮分块,根据第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;将第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于Spark框架的矩阵求逆过程中优化数据存储空间的方法,其特征在于,包括:
对于第i轮分块,根据所述第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得所述第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;
将所述第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存;
其中,1≤i≤N,N表示分块的总轮数。
2.根据权利要求1所述的方法,其特征在于,还包括:
对于第j轮求逆,根据第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及第(j-1)轮求逆的计算结果获得所述第j轮求逆的计算结果之后,将所述第j轮求逆的计算结果存储于数据缓存,清除用于存储所述第(j-1)轮求逆的计算结果的数据缓存和/或清除用于存储所述第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵和第三辅助矩阵的数据缓存;
其中,1≤j≤N。
3.根据权利要求2所述的方法,其特征在于,在第(j+1)轮求逆之前,还包括:
清除所述第j轮求逆过程中的洗牌操作产生的块文件。
4.根据权利要求3所述的方法,其特征在于,所述清除第j轮分块过程中洗牌操作产生的块文件具体包括:
读取所述第(N+1-j)轮分块的第二辅助矩阵之后,清除读取所述第(N+1-j)轮分块的第二辅助矩阵的过程中的洗牌操作产生的块文件;
根据所述第(N+1-j)轮分块的第二辅助矩阵和所述第(j-1)轮求逆的计算结果,获得所述第j轮求逆的第二子逆矩阵之后,清除获得所述第j轮求逆的第二子逆矩阵的过程中的洗牌操作产生的块文件。
5.根据权利要求3所述的方法,其特征在于,所述清除第j轮分块过程中洗牌操作产生的块文件具体包括:
读取所述第(N+1-j)轮分块的第三辅助矩阵之后,清除读取所述第(N+1-j)轮分块的第三辅助矩阵的过程中的洗牌操作产生的块文件;
根据所述第(N+1-j)轮分块的第三辅助矩阵和所述第(j-1)轮求逆的计算结果,获得所述第j轮求逆的第三子逆矩阵之后,清除获得所述第j轮求逆的第三子逆矩阵的过程中的洗牌操作产生的块文件。
6.根据权利要求4所述的方法,其特征在于,所述读取所述第(N+1-j)轮分块的第二辅助矩阵之后,还包括:
读取所述第(N+1-j)轮分块的第一辅助矩阵和第三辅助矩阵,根据所述第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及所述第(j-1)轮求逆的计算结果,获得所述第j轮求逆的第一子逆矩阵之后,清除获得所述第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
7.根据权利要求5所述的方法,其特征在于,所述读取所述第(N+1-j)轮分块的第三辅助矩阵之后,还包括:
读取所述第(N+1-j)轮分块的第一辅助矩阵和第二辅助矩阵,根据所述第(N+1-j)轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵以及所述第(j-1)轮求逆的计算结果,获得所述第j轮求逆的第一子逆矩阵之后,清除获得所述第j轮求逆的第一子逆矩阵的过程中的洗牌操作产生的块文件。
8.一种基于Spark框架的矩阵求逆过程中优化数据存储空间的装置,其特征在于,包括:
洗牌文件清除模块,用于对于第i轮分块,根据所述第i轮分块获得的第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵获得所述第i轮分块的第一辅助矩阵、第二辅助矩阵、第三辅助矩阵和过渡矩阵之后,清除第i轮分块过程中的洗牌操作产生的块文件;
数据缓存清除模块,用于将所述第i轮的过渡矩阵存储于数据缓存,清除用于存储第(i-2)轮分块的过渡矩阵的数据缓存;
其中,1≤i≤N,N表示分块的总轮数。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
CN201811140431.2A 2018-09-28 2018-09-28 矩阵求逆过程中优化数据存储空间的方法和装置 Active CN109491594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811140431.2A CN109491594B (zh) 2018-09-28 2018-09-28 矩阵求逆过程中优化数据存储空间的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811140431.2A CN109491594B (zh) 2018-09-28 2018-09-28 矩阵求逆过程中优化数据存储空间的方法和装置

Publications (2)

Publication Number Publication Date
CN109491594A CN109491594A (zh) 2019-03-19
CN109491594B true CN109491594B (zh) 2021-12-03

Family

ID=65690735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811140431.2A Active CN109491594B (zh) 2018-09-28 2018-09-28 矩阵求逆过程中优化数据存储空间的方法和装置

Country Status (1)

Country Link
CN (1) CN109491594B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559515A (zh) * 2020-07-08 2021-03-26 北京德风新征程科技有限公司 一种矩阵计算求变过程中优化数据存储空间的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356508A (zh) * 2005-12-30 2009-01-28 英特尔公司 用于优化动态存储器大小调整的等待时间的方法和系统
CN101488104A (zh) * 2009-02-26 2009-07-22 北京世纪互联宽带数据中心有限公司 一种实现高效安全存储的系统和方法
CN103561057A (zh) * 2013-10-15 2014-02-05 深圳清华大学研究院 基于分布式哈希表和纠删码的数据存储方法
CN104573082A (zh) * 2015-01-28 2015-04-29 武汉大学 基于访问日志信息的空间小文件数据分布存储方法及系统
CN104934041A (zh) * 2015-05-07 2015-09-23 西安电子科技大学 基于多目标优化联合块对角化的卷积盲信号分离方法
CN105373517A (zh) * 2015-11-09 2016-03-02 南京大学 基于Spark的分布式稠密矩阵求逆并行化运算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7083108B2 (en) * 1998-07-10 2006-08-01 Silverbrook Research Pty Ltd Redundantly encoded data structure for encoding a surface
US9503127B2 (en) * 2014-07-09 2016-11-22 Quantum Corporation Data deduplication with adaptive erasure code redundancy
US10304008B2 (en) * 2015-03-20 2019-05-28 Nec Corporation Fast distributed nonnegative matrix factorization and completion for big data analytics
US10218384B2 (en) * 2016-12-01 2019-02-26 Sandisk Technologies Llc ECC decoder with multiple decoding modes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356508A (zh) * 2005-12-30 2009-01-28 英特尔公司 用于优化动态存储器大小调整的等待时间的方法和系统
CN101488104A (zh) * 2009-02-26 2009-07-22 北京世纪互联宽带数据中心有限公司 一种实现高效安全存储的系统和方法
CN103561057A (zh) * 2013-10-15 2014-02-05 深圳清华大学研究院 基于分布式哈希表和纠删码的数据存储方法
CN104573082A (zh) * 2015-01-28 2015-04-29 武汉大学 基于访问日志信息的空间小文件数据分布存储方法及系统
CN104934041A (zh) * 2015-05-07 2015-09-23 西安电子科技大学 基于多目标优化联合块对角化的卷积盲信号分离方法
CN105373517A (zh) * 2015-11-09 2016-03-02 南京大学 基于Spark的分布式稠密矩阵求逆并行化运算方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Tree search procedures for the blocks relocation problem with batch moves;Zhang, Ruiyou等;《FLEXIBLE SERVICES AND MANUFACTURING JOURNAL》;20160930;397-424 *
YinMem: a distributed parallel indexed in-memory;Yin Huang等;《2016 IEEE International Conference on Big Data (Big Data)》;20170206;214-222 *
一种面向划分的数组数据流分析方法;丁锐等;《小型微型计算机系统》;20140315;532-537 *

Also Published As

Publication number Publication date
CN109491594A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
US11010103B2 (en) Distributed batch processing of non-uniform data objects
JP5774742B2 (ja) データ重複除去方法及び装置
US20200210844A1 (en) Training and application method of a multi-layer neural network model, apparatus and storage medium
JP2018120441A (ja) 分散深層学習装置及び分散深層学習システム
JPWO2020190808A5 (zh)
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
CN109831508B (zh) 一种缓存方法及设备、存储介质
CN109491594B (zh) 矩阵求逆过程中优化数据存储空间的方法和装置
CN113687975A (zh) 数据处理方法、装置、设备及存储介质
CN110704023B (zh) 一种基于拓扑排序的矩阵分块划分方法及装置
WO2022150093A1 (en) Performing tensor operations using a programmable control engine
KR20210024751A (ko) 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법
CN117852653A (zh) 用于模型推理的空间分配方法、装置、设备和介质
TWI758223B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
CN115860080A (zh) 计算核、加速器、计算方法、装置、设备、介质及系统
US10698878B2 (en) Graph update flush to a shared memory
WO2017086986A1 (en) Partitioned graph processing
CN112015325B (zh) 一种生成解码矩阵的方法、解码方法和对应装置
CN112181974B (zh) 标识信息分配方法、系统及存储设备
WO2020063225A1 (zh) 一种数据处理方法和装置
US11748251B2 (en) Storing tensors in memory based on depth
JP6295754B2 (ja) データ処理装置
CN112559515A (zh) 一种矩阵计算求变过程中优化数据存储空间的方法和装置
CN110929854A (zh) 一种数据处理方法、装置及硬件加速器
JP2018132899A (ja) 格納方法、格納装置および格納プログラム

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
GR01 Patent grant
GR01 Patent grant