大规模稀疏矩阵在并行应用中通信优化研究.docVIP

大规模稀疏矩阵在并行应用中通信优化研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大规模稀疏矩阵在并行应用中通信优化研究

大规模稀疏矩阵在并行应用中通信优化研究   摘要:为了提高并行应用系统的效率,研究了针对大型稀疏矩阵的压缩通信问题。通过对矩阵压缩通信过程中矩阵稀疏度、网络带宽、处理器计算能力之间的关系进行定量分析,推导出稀疏度下界计算公式。通过对不同稀疏度情况下算法所取得的效率进行分析,总结出压缩通信中稀疏度与通信效率之间的函数关系。结合油藏数值模拟的应用实例,设计实现了稀疏矩阵的压缩通信算法。结果表明本算法在稀疏矩阵通信方面效率有明显的提高。??   关键词:并行计算;通信优化;油藏数值模拟;稀疏度??   中图分类号:TP301.6文献标志码:A   文章编号:1001-3695(2008)01-0074-04   ??   并行计算在油藏数值模拟、数值天气预报等工程和科学计算领域得到越来越广泛的应用。反过来,工程(科学)计算的发展对并行程序性能的要求也越来越高。并行程序性能优化的一个主要方向就是通信优化。其中包括减少通信量和优化通信调度等方面。在工程和科学计算中,矩阵运算是一种普遍存在的计算形式,其运算结果或计算过程中的矩阵通常是稀疏的。本文通过对计算中的稀疏矩阵进行压缩通信,减少需要传输的数据量,从而提高通信效率。目前国外这方面的研究主要集中在对矩阵的压缩算法优化上[1,2]。国内在油藏模拟并行化过程中也有使用压缩通信的[8],但没有对压缩通信进行定量研究。本文设计实现了稀疏矩阵的压缩通信算法。该算法的基本思路是将计算过程中的稀疏矩阵分步压缩,然后将压缩后不同数据类型、不同地址空间中的分散数据打包到一个连续的地址空间集中发送;接收进程对接收到的数据采取解包、解压缩的方式还原出发送数据。这种通信方式从实质上减少了通信数据量,从而降低程序执行过程中通信的代价。然而发送端对稀疏矩阵的压缩、打包需要消耗一定的处理时间;接收端对数据解包、解压缩也需要消耗一定的计算时间。这就造成了减少实际通信时间的同时会增加一定的数据处理时间。这里给出一种性能评估方法,通过对时间复杂度和空间复杂度的计算给出一个压缩通信的稀疏度临界值。以这个稀疏度临界值为依据对矩阵进行动态压缩通信。??      1稀疏矩阵的压缩通信技术??      对大规模稀疏矩阵分块进行压缩、打包,然后集中传输,接收端进行解包、解压缩,可有效地提高稀疏矩阵的通信效率。然而,并不是对任何数据都进行打包。因为如果一个分块的稀疏度不够大的话,采用压缩的方法反而会增加通信代价。给出一个稀疏度临界值,在压缩打包过程中动态判断一个数据块是否采用压缩方式。这个稀疏度临界值是与软硬件环境相关的,总通信时间包括消息处理时间和实际传输时间。消息处理时间与算法及CPU的处理能力有关;实际传输时间与网络带宽有关。消息处理时间的增量必须小于实际传输时间的减少量,从而可以推导出稀疏度和带宽及CPU处理能力的关系。以下详细介绍性能评估方法与稀疏度临界值计算公式、稀疏矩阵压缩技术、MPI打包与解包函数。??   1.1矩阵稀疏度临界值计算方法??      式(8)中网络带宽BW、算法每字节压缩和解压缩消耗时间l′??1均可通过实验测得。对于一定的硬件环境和算法可以认为BW、l′??1总是一定的。因此可以确定矩阵稀疏度的下界值。只有矩阵稀疏度sparsity大于这个下界值时,使用压缩传输才能提高通信效率。也就是说对于一定的软硬件环境,矩阵的稀疏度达到多大时采用压缩通信的方法可以提升通信效率。??   1.2稀疏矩阵的压缩方法??   为了减小消息发送的数据量,需要对稀疏矩阵进行压缩。其中最基本的方法是三元组表示法[5]:在记录非零元素的同时,记录非零元素所在的行号、列号,这样才能确定一个非零元素是矩阵中的哪一个元素。其中每一个非零元素所在的行号、列号和值组成一个三元组(i,j,a????ij),并由此三元组惟一确定。如果将表示稀疏矩阵的非零元素的三元组按行优先(或列优先)的顺序排列(跳过零元素),并依次存放在向量中,这种稀疏矩阵的顺序存储结构称为三元组表。图1(a)所示的稀疏矩阵A的三元组表表示如图1(b)所示。??   以上是传统的稀疏矩阵压缩方法。为了能方便地按行列的方式访问这个结构,采用了将行列都存储的方式。在这里,为了进一步减少消息传输中的数据量,将一个二维矩阵转换为一维数组。压缩时可以只记录数组的一维索引。如上所述的矩阵A,其中有非零元素6个,三元组的记录方法除了要记录非零元素外,还需要记录2×6个整数作为其行和列的索引。如果将该矩阵转换为一维数组则只需要记录6个整数作为其索引,如图1(c)所示。??   如果用d表示压缩后索引数据占用的空间,那么压缩后数据占用的空间大小为M′+d,则压缩率可表示为R=M/??(M′+d)。??   1.3数据的打包传输??   MPI

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档