GPU上大规模稀疏矩阵特征值计算高效算法之三——SLEPc测试
2014-08-19 11:23
309 查看
Slepc计算矩阵特征值时间测试
注:
(1)GPU集群介绍:
该集群有一个登录节点(ustcgpu)和100个计算节点(node1~node100)。各计算节点配置2
颗4核的IntelE5520 CPU,16GB内存,通过20GbsInfiniBand互联。
(2)测试采用Krylov-Schur算法
计算速度
这里采用Slepc计算稀疏度约为1%矩阵的一半特征值。
下面的表格表示的是计算1000×1000、2000×2000、5000×5000、10000×10000矩阵各自一半的特征值,所需要的时间。
根据上图进行二次曲线拟合(蓝线表示),预测10W规模稀疏矩阵的特征值求解时间,4.6109e+005s,约为128小时。
结论:
Slepc计算少量特征值的时间很快,与矩阵规模的关系不大。如果计算大量的特征值(至少一半),则计算时间呈指数增加。而TB程序需要的特征值对至少是一半,因此,Slepc中的算法针对大规模矩阵的多特征值对的求解,需要进行改进。
如果在GPU集群上,若Slepc能够让求解速度加快,则效果会比较理想。现在Slepc已经有单GPU版本,需要更多的测试。
注:
(1)GPU集群介绍:
该集群有一个登录节点(ustcgpu)和100个计算节点(node1~node100)。各计算节点配置2
颗4核的IntelE5520 CPU,16GB内存,通过20GbsInfiniBand互联。
(2)测试采用Krylov-Schur算法
计算速度
这里采用Slepc计算稀疏度约为1%矩阵的一半特征值。
下面的表格表示的是计算1000×1000、2000×2000、5000×5000、10000×10000矩阵各自一半的特征值,所需要的时间。
时间(s) | 1000 | 2000 | 5000 | 10000 |
Write_time | 0 | 1 | 30 | 449 |
Compute_time | 24 | 91 | 650 | 3184 |
Total_time | 24 | 92 | 680 | 3633 |
Write_time/Compute_time | 0 | 0.01 | 0.04 | 0.14 |
根据上图进行二次曲线拟合(蓝线表示),预测10W规模稀疏矩阵的特征值求解时间,4.6109e+005s,约为128小时。
结论:
Slepc计算少量特征值的时间很快,与矩阵规模的关系不大。如果计算大量的特征值(至少一半),则计算时间呈指数增加。而TB程序需要的特征值对至少是一半,因此,Slepc中的算法针对大规模矩阵的多特征值对的求解,需要进行改进。
如果在GPU集群上,若Slepc能够让求解速度加快,则效果会比较理想。现在Slepc已经有单GPU版本,需要更多的测试。
相关文章推荐
- GPU上大规模稀疏矩阵特征值计算高效算法之一——GPU介绍
- GPU上大规模稀疏矩阵特征值计算高效算法之二——稀疏矩阵
- cpu gpu做矩阵乘法效率比对,虽然如此,但是对需要自己做的算法是否能如此高效的提高还是未知
- 大规模稀疏矩阵的广义特征值问题——CLAPACK, IETL库尝试
- 一个高效的稀疏矩阵转换算法,COO格式转换为DIA格式
- 设M 是一个m×n 的矩阵,其中每行的元素从左到右单增有序,每列的元素从上到下单增有序。 给出一个分治算法计算出给定元素x 在M 中的位置或者表明x 不在M 中。分析算法的时间复杂性。
- 计算CRC7表的高效算法
- //稀疏矩阵 三元组算法
- 稀疏矩阵算法
- 计算大规模稀疏向量余弦相似度(开源项目)
- 一步一步复习数据结构和算法基础-稀疏矩阵基本操作
- 稀疏矩阵【压缩算法】,具体代码没有,只是思想
- 稀疏矩阵的接压缩算法的实现
- scipy.sparse求稀疏矩阵前k个特征值
- 大规模稀疏向量余弦相似度计算方法(续)
- 稀疏矩阵转置算法-
- 8点算法计算基础矩阵(计算机视觉)
- GPU计算矩阵相乘(未优化)
- 稀疏矩阵实现算法(部分)
- 最近在做文本匹配,想到了特征值的算法,自己写了一个文本计算算法。求批判。