论文部分内容阅读
近些年来,随着移动互联网的不断发展,语音、图像、视频等数据不断增长,海量数据处理成为新的挑战。作为大数据处理平台的事实标准,Hadoop及其生态系统为海量数据处理提供了丰富的应用和工具。海量数据推动着众多的机器学习和数据挖掘算法并行算法快速发展。矩阵算法作为众多算法的基础,其并行实现尤其重要。Spark弥补了 MapReduce框架在迭代计算中的缺陷,并且和Hadoop生态系统完美融合,是实现并行矩阵算法的最佳选择。首先,本文中基于Spark构建了一个小型的并行矩阵库。该库包含有行矩阵、分块矩阵等并行矩阵表示形式,并在此基础上实现了并行矩阵加法,并行矩阵乘法的基本矩阵运算。并行矩阵乘法是并行矩阵算法的核心,本文根据Spark的特点改进已有的并行乘法。然后,基于该矩阵库,本文设计并实现了稠密矩阵的矩阵并行求逆算法和二对角矩阵的并行SVD算法。大规模矩阵求逆是一个计算密集型和IO密集型的矩阵运算,我们通过良好的设计减少空间复杂度和网络传输。大规模二对角矩阵SVD算法也是计算密集型的。结合已有的分治法求解二对角矩阵的SVD算法,本文提出了基于Spark的大规模二对角矩阵SVD算法。本文通过延迟计算矩阵大幅降低了网络传输消耗。本文提出的算法和实现将为设计高性能的Spark矩阵库提供了良好的参考。