梦想成果
矩阵计算求解问题无论在科学计算还是工程应用中都广泛涉及应用。而在互联网大数据领域下,数据复杂度高,表现形式多变性及其应用需求的多样化,与科学计算领域的大规模矩阵求解问题相比,所需求解矩阵具有规模巨大和稀疏度大等特点,且对求解速度要求高,甚至要求实时性。我们需要根据矩阵的特有性质构造既要保证计算效率又具有高的并行可扩展性的矩阵快速求解算法。因此我们的基础目标便是研制大规模矩阵高可扩展并行求解算法,开发高性能矩阵计算通用库(软件包),解决在互联网大数据领域下的大规模矩阵求解问题。
现有一些并行计算软件包,如由美国Argonne实验室开发的ParMETIS, 由橡树岭国家实验室、Rice University、UC Berkeley等学校及研究机构合作开发的ScaLAPACK,以及中国科学院计算网络中心开发的HPSEPS等,均主要是针对科学计算,是基于MPI并行编程模型研发的软件包,虽具有高计算性能,但可扩展性及应对节点失效的容错性能均不足,难以在实际互联网大数据应用中发挥较大作用。Spark并行计算框架是由美国加州大学伯克利分校AMPLab提出,是一种立足于内存计算的高效集群计算平台,适合迭代计算且具有很好的容错性,因此我们的进一步成果便是基于Spark平台研制高性能的大规模矩阵计算库。
最终我们将与腾讯科技的企业实际应用相结合,针对具体的应用领域背景,基于所开发的并行计算库进一步研制特定方向(如推荐系统)的高性能计算系统,根据企业的实际数据挖掘有用信息产生实际价值。
项目综述
本年度项目主要研制了基于Lanczos分解算法针对大规模稀疏矩阵的高效并行SVD算法,并且基于spark大数据分布式处理框架及MPI并行编程模型对算法进行了优化与实现。 Lanczos分解算法是一种Krylov子空间迭代算法,不同于雅克比算法、QR算法求解特征值算法,Lanczos算法可保证在迭代过程中不会破坏原矩阵的稀疏性,因此是大规模矩阵求解的常用算法。基于Lanczos分解算法,结合三对角矩阵的特征值及特征向量求解方法,可实现大规模稀疏矩阵的SVD及PCA等算法。本课题中给出了一种结合隐式重启技术并改进后的Lanczos分解算法,并根据其分解后三对角矩阵的特性,给出了优化的二分求解三对角矩阵特征值算法,并最终实现并行化高效求解。
我们对百万乘一万,填充率为1%的稀疏矩阵(稀疏存储数据量级为千万级)进行了数值计算实验,测试环境为:4颗四核英特尔® 至强® E5620 (2.40 GHz, 12MB三级缓存, 80W, DDR3-1066, HT, Turbo 1/1/2/2)处理器;Intel 5520芯片组;4GB (1x2GB)PC3-10600R (寄存式内存);百兆网;在上述测试环境下仍可在15min内求得前100个最大奇异值,说明算法具有较高效率,所求奇异值个数与所需时间变化曲线如图1所示。另外针对Netflix提供的用户-电影评分数据(480189x17770稀疏度为1.16%的稀疏矩阵)做了相关测试,采用均方根误差(RMSE)作为评价算法准确性标准。
我的感言
这不是结束,这才刚刚开始