GPU上大规模稀疏矩阵特征值计算高效算法之三——SLEPc测试

Slepc计算矩阵特征值时间测试

注:

(1)GPU集群介绍:

该集群有一个登录节点(ustcgpu)100个计算节点(node1~node100)。各计算节点配置2 4IntelE5520 CPU16GB内存,通过20GbsInfiniBand互联。

      (2)测试采用Krylov-Schur算法


  1. 计算速度

这里采用Slepc计算稀疏度约为1%矩阵的一半特征值。

下面的表格表示的是计算1000×10002000×20005000×500010000×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


GPU上大规模稀疏矩阵特征值计算高效算法之三——SLEPc测试_第1张图片

根据上图进行二次曲线拟合(蓝线表示),预测10W规模稀疏矩阵的特征值求解时间,4.6109e+005s,约为128小时。


  1. 结论:

  1. Slepc计算少量特征值的时间很快,与矩阵规模的关系不大。如果计算大量的特征值(至少一半),则计算时间呈指数增加。而TB程序需要的特征值对至少是一半,因此,Slepc中的算法针对大规模矩阵的多特征值对的求解,需要进行改进。

  1. 如果在GPU集群上,若Slepc能够让求解速度加快,则效果会比较理想。现在Slepc已经有单GPU版本,需要更多的测试。


你可能感兴趣的:(机器学习与数据挖掘)