论文部分内容阅读
矩阵计算在大规模数值分析、社交网络、图像渲染等领域都扮演着重要的角色。大数据时代,随着应用的数据规模不断增长,需要处理的矩阵的大小也变得越来越大,以至于传统的单个节点的处理方案难以解决问题。一些大规模分布式并行计算框架(如Hadoop、Flink等)的出现为解决大规模矩阵计算问题提供了良好的计算平台。基于Flink内存计算的特性,本文基于Apache Flink设计并实现了一个大规模矩阵计算库。该矩阵库为用户提供了高层矩阵计算接口,例如矩阵的加法、减法、相乘、求逆等运算。在处理矩阵相乘的时候,本文设计了并行化矩阵计算方法并结合Flink和算法的特点设计了三种优化手段以提升不同维度规模的矩阵相乘运算的性能。此外,对于大规模矩阵求逆计算,本文还提出了一种优化手段以减少Gauss-Jordan消元算法所带来的多轮迭代。实验表明,本文提出的基于Flink的矩阵分块相乘比基于Spark的分块相乘提升了30%左右的性能;而经本文优化后的Gauss-Jordan求逆算法比未优化的算法提升了4倍的运算速度。此外,本文设计的分布式矩阵计算库还具有很好的可扩展性。