稀疏矩阵的矩阵向量乘法的并行算法性能论文.pdf

稀疏矩阵的矩阵向量乘法的并行算法性能论文.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
稀疏矩阵的矩阵向量乘法的并行算法性能 作者:王舜 指导老师:王小鸽 清华大学计算机科学与技术系 王舜:wangshun98@mails.tsinghua.edu.cn 王小鸽:wangxg@mail.tsinghua.edu.cn 摘 要 :现代的科学计算中的最常用的基本算法就是矩阵向量乘法。所以一个快速高效的矩阵向 量乘法的并行算法将给整个科学计算带来诸多的进步。但是随着处理器性能迅速提高和通信速 度发展的相对滞后,并行算法的通信屏障显得越来越明显。而稀疏矩阵带来的问题是,计算量 较小,通信量较大。本文将阐述稀疏矩阵矩阵向量乘法几种的并行实现,以及实现中的计算复 杂度和通信复杂度。通过在计算机机群 ACI 上的测试结果显示出算法性能,并分析了通信量爆 炸对并行算法性能的影响。 关键字:矩阵向量乘法,稀疏矩阵,并行算法,复杂度,通信 前言 并行计算的基本原理就是将计算任务分散到多个处理器同时进行计算,以获得成倍的计算速 度。但是由于p 个处理器并行工作的时候需要花费一些时间进行相互之间的协同和通信,所以并 行程序最终获得的计算速度达不到串行程序的p 倍。 如今,随着处理器性能的迅速提高,单台计算机的计算能力大大增强。而相比之下,多台计 算机之间的通信速度的提高却相对滞后。这种计算能力和通信能力的不平衡日益增大,越来越妨 碍了并行计算的发展。使得并行计算缩短下来的计算时间大多都用于通信,甚至可能通信时间比 节约的计算时间还长,从而体现不出并行计算的优势。 第 1 页 共 1 页 矩阵向量乘法是现代科学计算中的一项基本运算。尤其是在线性代数算法中,如 Conjugate Gradient 迭代,它可以算得上是一项核心运算。由于数据规模的飞速扩大,这些迭代算法现在正 在迅猛发展,代替直接法成为更加可行有效的算法。而对矩阵向量乘法的并行化的改进,也将直 接影响迭代算法效率的提高。 本文中描述的矩阵向量乘法采用的数据结构都是基于矩阵的按列分布。原因是该文来源于我 们正在做的稀疏对称非正定系统的双层迭代算法的并行实现。该项目中的其他算法决定了矩阵的 数据结构最好采用按列分布。 我们在做这个项目的时候,发现并行程序的加速比上不去,做了大量实验和分析以后,发现 问题的一个瓶颈在于稀疏矩阵的矩阵向量乘法上。这篇文章里,我们将要讨论的就是上面所说的 计算机机群的计算能力和通信能力的相对不平衡对矩阵向量乘法的并行化的影响。其中第一部分 描述了我们用到的稀疏矩阵的数据结构。第二部分介绍了一个最基本的算法,并对其性能进行了 分析,这一部分是全文的重点。第三部分对算法进行了改进。最后给出结论和展望。 一、稀疏矩阵的数据结构 首先,为了讨论方便,我们给出稀疏矩阵和向量的数据结构。稀疏矩阵的数据结构由图 1 表 示,具体 C 语言定义参见附录 1。整个矩阵按照列块分布在各个处理器上,即每个处理器上仅拥 有稀疏矩阵的连续几列。按列分布的原因上面已经讲到,是在一个大的科学计算项 目中,别的并 行运算决定的。 而向量是密集的,其定义相对简单,用数组表示即可,在每个处理器上都保留完整备份。 二、基本的算法及其性能分析 y ∑A x z A x y ∑z 按照矩阵向量乘法的定义, i j ij j ,如果记 ij ij j ,则有 i j ij ,如图2 所示。 第 2 页 共 2 页 图1 图2 第 3 页 共 3 页 图3 一个最基本简单的算法就是,各个处理器根据 自己拥有的独立数据,进行矩阵非零元和向量 中相应位置元素的乘法和累加,可以分别计算出结果向量的

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档