删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于变量相关性分解方法的稀疏线性方程组并行求解算法

本站小编 Free考研考试/2020-04-15

刘珊瑕, 靳松, 王文琛, 汪宇航, 王瑜
华北电力大学 电子与通信工程系, 保定 071001
收稿日期:2019-09-08
基金项目:河北省自然科学基金资助项目(F2017502043);计算机体系结构国家重点实验室开放课题(CARCH201802);中央高校基本科研业务费专项资金项目(2017MS114)
作者简介:刘珊瑕(1994—), 女, 硕士研究生
通讯作者:靳松, 副教授, E-mail:jinsong@ncepu.edu.cn

摘要:稀疏线性方程组的求解是许多大规模科学计算任务的核心环节。目前,并行算法的发展为稀疏线性方程组的求解提供了新的思路和强有力的工具。然而,现有的并行算法存在一些缺陷,如最优子矩阵的划分难以获得、并行任务间的同步开销较大等。针对上述问题,该文提出一种基于变量相关性分解方法的稀疏线性方程组并行求解算法。该算法首先对系数矩阵进行不完全LU分解,得到上三角和下三角方程组,然后在这2个方程组求解过程中利用y与x的关系分解变量的相关性,同时并行计算变量的独立部分值,最后将所有的独立部分值相加得到变量的最终值。由于算法中变量的求解无需等待其所有前继变量计算完成即可进行部分值计算,因此有效减少了算法的执行时间,进而提高了算法的求解速度及并行度。实验结果表明:与调用cusparse库函数实现的并行求解方法相比,该文提出的算法能将稀疏线性方程组的求解速度提升了50%以上。
关键词:图形处理器稀疏线性方程组并行计算变量部分值线程
Parallel algorithm for solving sparse linear equations based on variable correlation decomposition
LIU Shanxia, JIN Song, WANG Wenchen, WANG Yuhang, WANG Yu
Department of Electronics and Communication Engineering, North China Electric Power University, Baoding 071001, China

Abstract: Sparse linear equations are the core of many large scientific computing tasks. Although parallel algorithms are providing powerful, new tools for solving sparse linear equations, existing parallel algorithms have some drawbacks such as the optimal sub-matrix being difficult to obtain and the algorithms requiring a large overhead to synchronize parallel tasks. This paper presents a parallel algorithm for sparse linear equations based on the variable correlation decomposition method. Firstly, the algorithm performs an incomplete LU decomposition on the coefficient matrix to obtain two equations for the upper and lower triangles. Then, the correlation between y and x is used to solve for the independent part of the variable in parallel from the upper and lower triangles. All the individual partial values are then added to get the final value of the variable. Since the solution does not need to wait for all the previous variables to be calculated, the partial value calculation can be performed in parallel as the calculation proceeds, which significantly reduces the algorithm execution time and improves the algorithm solution speed and parallelism. Tests show that this sparse linear equation solver is more than 50% faster than the parallel solution method in the cusparse library.
Key words: graphics processing unit (GPU)sparse linear equationsparallel computationvariable partial valuethread
大规模稀疏线性方程组的求解是许多科学和工程计算中最重要的也是最基本的问题之一[1]。在一些以预处理迭代[2]算法为基础的科学计算任务中,方程组求解时间往往在求解整个问题所需的时间中占据很大的比重,有时甚至高达80%以上,成为提高计算速度的瓶颈[3]。由此可见,提升稀疏线性方程组的求解速度对优化整个科学计算任务的性能至关重要。目前,如何快速高效地求解稀疏线性方程组成为研究的热点[4]
在求解稀疏线性方程组的硬件计算平台方面,以图形处理器(graphics processing unit,GPU)[5]为代表的众核处理器[6]在通用计算领域[7]展示了强大的优势,其丰富的并行计算资源为求解大规模稀疏线性方程组提供了强有力的支撑。然而,已有的计算方法,无论是来自学术界还是工业界,均受限于方程组求解的传统观点,即某一个变量的求解必须等到其所有前继变量求解完成之后才能开始。这种方法一定程度上限制了求解稀疏线性方程组的任务并行度,导致无法充分利用众核处理器丰富的并行硬件资源。为了解决变量求解时依赖关系而导致的顺序问题,现有的研究大多数集中在添加预处理阶段,将变量的求解划分为若干个集合(称为水平集(level-set)[8-9]或颜色集(color-set)[10-11])。即使必须按顺序执行集合,也可以并行计算任何单个集合中的变量,进而可以有效地利用并行硬件资源。这类方法通常比CPU[12-13]和GPU[14-15]上按照变量依赖关系的顺序求解要好得多。然而,基于集合的方法存在2个性能问题:首先,获得最优子矩阵的划分通常需要花费太多的时间,这有可能会抵消甚至消除并行计算的优势;其次,水平集之间的同步[16-17]开销降低了算法的并行化效率。
针对已有方法存在的问题,本文提出一种基于变量相关性分解方法的稀疏线性方程组并行求解算法。该算法通过分解变量求解的依赖关系,把求解稀疏线性方程组的过程划分成多个独立的计算任务,多个计算任务之间并行执行。该算法由于变量计算时无需等待其所有前继变量计算完成,而且不需要分析矩阵的复杂结构,完全消除了预处理阶段,有效减少了算法的执行时间,进而提高了算法的计算速度和并行度。本文在GPU实验平台实现了提出的并行算法,基于Florida稀疏矩阵集[18]构造了稀疏线性方程组,并应用提出的算法进行求解。实验结果表明:与调用cusparse[19]库函数实现的并行求解方法相比,本文提出的算法能将计算速度提升50%以上。
1 研究背景和现状在科学计算和工程技术中,许多问题的解决最终都转化为大规模稀疏线性系统的求解,如计算流体力学、计算电磁学、最优化问题、线性弹性力学、数值天气预报及核爆数值模拟等[20]。基本求解方法分为2种:迭代法[21-22]和直接法[23-24]
迭代法一般通过构造迭代公式逐次逼近线性方程组的理论解得到近似解。迭代法求解方程组时通常与预处理技术结合。如针对多GPU平台上的Possion问题,Ament等[25]提出了具有不完全Possion预处理的共轭梯度(preconditioned conjugate gradient,PCG)方法,研究了采用块不完全LU分解预条件广义最小残量(generalized minimum residual,GMRES)[26-27]方法求解面向GPU平台的稀疏线性系统;Dziekonski等[28]给出了在有限元分析中应用Jacobi和Gauss-Seidel法对复共轭梯度进行预条件处理的方法。然而,迭代次数和收敛速度以及近似解与理论解的偏差等问题会影响算法的计算精度和速度;Gaikwad等[29]提出了一种基于Krylov子空间迭代求解器的实现方法,用于求解由该方法产生的多个小型系统,但是通信的开销会影响求解的性能。
直接法主要是基于稀疏矩阵分解技术或消去技术,采用前代回代方法进行求解。并且,由于直接法具有计算精度高、算法通用性强的优势,成为目前求解大规模稀疏线性方程组的主要手段。Davis等[30]和Yeralan等[31]概述了求解线性方程组的直接方法,包括LU、QR、Cholesky和其他因子分解、前代和回代以及相关矩阵运算。George等[32]提出了一种GPU上对称正定矩阵的多因子分解[33]方法;Rennich等[34]提出了一种超节点的Cholesky分解算法,该算法通过GPU传输消除树[35]的分支(以叶子结尾的子树),并完全在GPU上对每个分支进行分解。Davis等[36]提出了一种基于GPU的多额稀疏QR因子分解方法[37];Buttari等[38]对多额稀疏QR因子分解方法进行了改进,提出了一种细粒度的多额稀疏QR因子分解方法,但是细粒度的划分会影响计算的速度。
2 基于变量相关性分解的并行求解算法构造7×7稀疏线性方程组:
$\left[\begin{array}{ccccc}A_{11} & & & A_{15} & & A_{17} \\& A_{22} & A_{23} & A_{24} & & & \\& A_{32} & A_{33} & & & A_{36} & \\& A_{12} & & A_{44} & A_{45} & & A_{47} \\A_{51} & & & A_{54} & A_{55} & & \\& & A_{63} & & & A_{66} & \\A_{71} & & & A_{74} & & A_{77}\end{array}\right] \times\left[\begin{array}{c}x_{1} \\x_{2} \\x_{3} \\x_{4} \\x_{5} \\x_{6} \\x_{7}\end{array}\right]=\left[\begin{array}{c}b_{1} \\b_{2} \\b_{3} \\b_{4} \\b_{5} \\b_{6} \\b_{7}\end{array}\right].$
对系数矩阵A进行不完全LU(ILU)分解,得到下三角L矩阵和上三角U矩阵,其中L的对角元素的值为1。分别通过前代和回代过程求解方程组。
前代过程:
$\left[\begin{array}{ccccc}L_{11} & & & & \\& L_{22} & & & \\& L_{32} & L_{33} & & \\& L_{42} & & L_{44} & & \\L_{51} & & & L_{54} & L_{55} & \\& & L_{63} & & L_{66} & \\L_{71} & & & L_{74} & & y_{77}\end{array}\right]=\left[\begin{array}{c}y_{1} \\y_{2} \\y_{3} \\y_{4} \\y_{5} \\y_{6} \\y_{7}\end{array}\right]\left[\begin{array}{c}b_{1} \\b_{2} \\b_{3} \\b_{4} \\b_{5} \\b_{6} \\b_{7}\end{array}\right].$
回代过程:
$\left[\begin{array}{cccc}U_{11} & & U_{15} & & U_{17} \\& U_{22} & U_{23} & U_{24} & & & \\& U_{33} & & & U_{36} & \\& & U_{44} & U_{45} & & U_{47} \\& & & U_{55} & & \\& & & U_{66} & \\& & & U_{77}\end{array}\right] \times\left[\begin{array}{c}x_{1} \\x_{2} \\x_{3} \\x_{4} \\x_{5} \\x_{6} \\x_{7}\end{array}\right]=\left[\begin{array}{c}y_{1} \\y_{2} \\y_{3} \\y_{4} \\y_{5} \\y_{6} \\y_{7}\end{array}\right].$
前代过程由前向后遍历,计算公式如下:
${y_j} = \left( {{b_j} - \sum\limits_{i = 1}^{i - 1} {{L_{ij}}} \times {y_i}} \right)/{L_{ij}}, 1 \le j \le 7.$ (1)
由式(1)可知,未知量yj求解时与其他未知量yi存在前后求解顺序上的依赖关系,如果Lji是非零值,则yj取决于前继变量yi
回代过程由后向前遍历,计算公式如下:
${x_m} = \left( {{y_m} - \sum\limits_{n = m + 1}^T {{U_{mn}}} \times {x_n}} \right)/{U_{mn}}, 1 \le m \le 7.$ (2)
由式(2)可知,未知量xm求解时与其他未知量xn存在前后求解顺序上的依赖关系,如果Umn是非零值,则xm取决于前继变量xn
通过上述变量求解的依赖关系,分别构造表示变量求解顺序的关联图G(V, E),如图 1所示。其中:V代表关联图中所有节点的集合,每个节点代表一个变量;E是图中所有有向边的集合,每条有向边代表 2个相关变量求解顺序的依赖关系。有向边的起始端变量i是末端变量j的前驱变量,末端变量j是起始端变量i的后继变量。系数矩阵中第ji列(j>i)的非零元素lij由图中节点i到节点j的有向边(i, j)表示。
图 1 变量求解顺序的关联图G (V, E)
图选项





y3x3的计算为例,验证算法的可行性和正确性。应用直接法分别求解y3x3
${{L_{32}}{y_2} + {L_{33}}{y_3} = {b_3}, }$ (3)
${{U_{33}}{x_3} + {U_{36}}{x_6} = {y_3}.}$ (4)
分别求解:
${{y_3} = \left( {{b_3} - {L_{32}}{y_2}} \right)/{L_{33}}, }$ (5)
${{x_3} = \left( {{y_3} - {U_{36}}{x_6}} \right)/{U_{33}}.}$ (6)
其中,y2可由直接法求得,y2=b2/L22.
代入式(5)得
$y_{3}=\left(b_{3}-L_{32} b_{2} / L_{22}\right) / L_{33}.$ (7)
同理,x6可由直接法求得,x6=y6/U66.
y6由直接法求得,y6=(b6L63y3)/L66,将y3代入,得
$y_{6}=\left[b_{6}-L_{63}\left(b_{3}-L_{32} b_{2} / L_{22}\right)\right] / L_{66}.$ (8)
并且,L的对角线元素的值为1,则y3x3的计算公式即可简化为
$y_{3}=b_{3}-L_{32} b_{2}, $ (9)
$\begin{array}{l}x_{3}=b_{3} / U_{33}+\left[\left(-U_{36}\right) \times\left(-L_{63}\right) \times b_{3} / U_{66}\right] / U_{33}+ \\\quad\left(-L_{32} \times b_{2}\right) / U_{33}+\left[\left(-U_{36}\right) \times b_{6} / U_{66}\right] / U_{33}+ \\\quad\left[\left(-U_{36}\right) \times\left(-L_{63}\right) \times\left(-L_{32} \times b_{2}\right) / U_{66}\right] / U_{33}.\end{array}$ (10)
由式(9)和(10)可以看出:y3的部分值由2部分构成,分别是b3、-L32b2x3的部分值由5部分构成,分别是b3/U33、(-L32×b2)/U33、[(-U36b6/U66]/U33、[(-U36)×(-L63b3/U66]/U33、[(-U36)×(-L63)×(-L32×b2)/U66]/U33
在本文算法中求解y3x3,首先分解变量y和x的关联图,得到与节点3相连的子图如2a和2b所示。
图 2ay3求解子图可以看到,指向节点3的有向边只有节点2,即变量y3的前继变量只有y2,则y3的部分值由b2b3决定。同理,图 2bx3求解子图中,指向节点3的有向边只有一个节点6,即变量x3的前继变量只有x6,则x3的部分值由y3y6决定。图2cy6求解子图中,指向节点6的有向边只有节点3,即只要有y3就可计算y6,则y6的部分值由b2b3b6决定。综上所述,求解y3x3只需知道b2b3b6。计算过程如图 3所示。
图 2 y3x3y6求解子图
图选项





图 3 y3x3部分值计算过程
图选项





图 3a表示当且仅当b2≠0时,由Ly=b可求得y3y6的部分值,再根据Ux=y求得x3的部分值。图 3b表示当且仅当b3≠0时,由Ly=b可求得y3y6的部分值,再根据Ux=y求得x3的部分值。图 3c表示当且仅当b6≠0时,由Ly=b可求得y6的部分值,再根据Ux=y求得x6x3的部分值。
由以上分析可知,y3的部分值由2部分组成,x3的部分值由5部分组成,并且所有部分值并行计算,将y3x3的所有部分值相加得到最终值,经验证与直接法求得的y3x3最终值相同。
3 并行算法的实现本文在GPU实验平台下,设置2N个线程,前N个线程计算y,后N个线程计算x。将求解稀疏线性方程组的过程划分成多个计算任务,且每个任务安排到一个线程计算。具体到每个线程,首先计算变量y的部分值,同时,通过yx的相关性将上述计算的y的部分值传到变量x的相应列的线程内计算x的部分值,最后将所有部分值相加得到最终值。
由于yx的部分值求解过程相同,本文以y的部分值求解为例说明计算过程。首先计算下三角矩阵L每一列的第1个变量的部分值,再继续计算这一列和第1个变量直接相关的变量部分值,并传到存储相应的变量部分值的线程内,再由变量部分值计算其余相关变量的部分值,以上计算过程并行执行。为了不丢失变量的部分值,引入变量部分值的计算次数。首先,线程计算与起始变量直接相关的变量,得到后继变量的部分值,同时后继变量部分值的计算次数加1。然后,线程通过循环判断某一列中起始变量部分值的计算次数,决定是否对该列进行计算。若起始变量部分值的计算次数为0,代表该列中后继变量的部分值计算完成,线程不再对该列计算;若非0,则线程继续计算该列中后继变量的部分值,并且后继变量部分值的计算次数继续加1,起始变量部分值的计算次数减1。直到计算次数减为0,不再计算并得到变量的最终值。
在并行计算过程中,多个并行线程有可能对一个变量同时进行部分值的读写或计算。所以,在应用CUDA C编程实现本文并行求解算法时,使用atomic原子操作对变量部分值的计算、累加和计算次数的递减和递增进行处理。atomic原子操作是对一个变量进行“读取-计算-写入”这3项操作中一个最小单位的执行过程。当某一个线程对变量执行原子操作时,不允许其他线程对该变量进行读写或计算的操作。基于上述机制,atomic原子操作实现了多个线程间对变量的互斥保护,确保变量操作的正确性。并且,原子操作是硬件机制的同步方式,在软件层面无需同步。设b2≠0,利用atomic原子操作计算部分值过程如图 4所示。
图 4 b2≠0的部分值计算
图选项





本文以求解y为例,内核函数伪代码如图 5所示。输入数据为按列压缩存储格式的稀疏矩阵和右端项B,并设置3个n维数组y、partyytime,分别存储y的累加值、y的部分值、y的计算次数。
图 5 并行求解y的伪代码
图选项





其中,3—12行是计算和起始变量直接相关的变量的部分值过程,13—24行是由已有变量的部分值继续计算部分值的过程,上述计算过程并行执行,25行为y的最终值。
4 实验结果与分析实验平台如下:GPU为GeForce GTX 1080 Ti(Pascal),在Ubuntu16.04 64位操作系统下,使用CUDA[39] 9.1.85版本,应用CUDA C[40]语言编程实现本文算法。
本文选取99个来自不同领域的Florida矩阵的稀疏矩阵进行测试,本文算法计算时间和cusparse库函数计算时间如图 6所示,本文算法速度提升百分比如图 6所示。图 6数据的计算时间不包含系数矩阵A和右端项B的输入时间以及计算变量的输出时间,只是对求解过程的计算时间进行比较。其中调用cusparse库函数计算时,存在分析和求解2个阶段,它的计算时间是分析时间与求解时间之和;本文算法的计算时间是变量部分值的计算时间与部分值相加时间之和。横坐标代表矩阵的行/列,纵坐标代表计算时间,单位ms。散点图直观、清晰地显示了本文算法的计算时间和cusparse库函数的计算时间。
图 6 (网络版彩图)本文算法和cusparse库函数计算时间
图选项





图 6可以清晰地看到,本文算法的计算时间明显要比cusparse库函数的计算时间短。主要原因是本文算法没有分析阶段,可以直接对变量进行求解无需等待,而cusparse库函数求解时分析时间较长,而且分析时间占总计算时间比例大,进而导致总计算时间较长,如表 1所示。
表 1 求解时间和分析时间占总时间百分比
矩阵规模 分析时间/ms 求解时间/ms 求解时间占比/% 分析时间占比/%
4 147 110 58 850 81.504 9 0.13 99.8
12 057 441 23 074.4 19.900 6 0.08 99.9
5 154 859 22 715.8 15.169 7 0.06 99.9
23 947 347 41 921.5 32.372 2 0.07 99.9
16 777 216 41 309.2 44.787 8 0.10 99.8
11 950 757 21 806.5 45.331 7 0.2 99.7
1 564 794 21 087.9 46.121 7 0.21 99.7
9 845 725 19 337.3 30.241 6 0.15 99.8
1 470 152 15 923.6 42.832 5 0.26 99.7
5 558 326 15 228.5 11.050 8 0.07 99.9
6 815 744 14 257.6 24.639 9 0.17 99.8
943 695 13 996.3 29.744 3 0.21 99.7
1 391 349 12 197.5 27.591 3 0.22 99.7
1 437 960 11 956.9 29.801 8 0.24 99.7
1 498 023 11 761.3 77.057 8 0.65 99.3
726 713 8 234.35 2 072.200 20.10 79.80
3 799 275 9 837.28 77.844 1 0.78 99.2


表选项






与cusparse库函数求解方法相比,本文算法速度提升百分比如图 7所示。加速比的计算公式为
$\alpha=\frac{T_{\mathrm{cus}}-T}{T_{\mathrm{cus}}} \times 100 \%.$ (11)
图 7 本文算法速度提升百分比
图选项





其中,Tcus为cusparse库函数计算时间,T为本文算法计算时间。
图 7可以看到,本文算法速度提升百分比均在50%以上,最大可以达到99.9%,充分验证了本文算法的可行性和高效性。
5 结论本文通过分解变量之间的相关性,把求解稀疏线性方程组的过程划分为多个独立且并行的计算任务,而且变量的计算无需等待其前继变量计算全部计算完成就可进行部分值的计算,提高了算法并行度和求解速度。最后,利用Florida稀疏矩阵集构造了稀疏线性方程组,并应用本文提出的分解变量相关性的方法进行求解,同时与调用cusparse库函数的求解方法进行了比较,验证了本文并行算法的可行性和高效性。

参考文献
[1] SALINAS S, LUO C Q, CHEN X H, et al. Efficient secure outsourcing of large-scale sparse linear systems of equations[J]. IEEE Transactions on Big Data, 2017, 4(1): 26-39.
[2] 沈海龙.线性代数系统迭代解法与预条件方法研究[D].沈阳: 东北大学, 2013.
SHEN H L. The study of iterative methods and preconditioning methods for linear algebraic systems[D]. Shenyang: Northeastern University, 2013. (in Chinese)
[3] 周挺辉, 赵文恺, 严正, 等. 基于图形处理器的电力系统稀疏线性方程组求解方法[J]. 电力系统自动化, 2015, 39(2): 74-80.
ZHOU T K, ZHAO W K, YAN Z, et al. A method for solving sparse linear equations of power systems based on GPU[J]. Automation of Electric Power System, 2015, 39(2): 74-80. (in Chinese)
[4] 谢力, 王武, 冯仰德. 基于多层半可分结构矩阵的快速算法与并行实现[J]. 数值计算与计算机应用, 2017, 38(1): 37-48.
XIE L, WANG W, FENG Y D. A fast algorithm based on hierarchically semiseparable structured matrix and its parallel implementation[J]. Journal on Numerical Methods and Computer Applications, 2017, 38(1): 37-48. (in Chinese)
[5] KECKLER S W, DALLY W J, KHAILANY B, et al. GPUs and the future of parallel computing[J]. IEEE Micro, 2011, 31(5): 7-17. DOI:10.1109/MM.2011.89
[6] 郑方, 张昆, 邬贵明, 等. 面向高性能计算的众核处理器结构级高能效技术[J]. 计算机学报, 2014, 37(10): 2176-2186.
ZHENG F, ZHANG K, WU G M, et al. Architecture techniques of many-core processor for energy-efficient in high performance computing[J]. Journal of Computers, 2014, 37(10): 2176-2186. (in Chinese)
[7] 朱宇兰. 基于GPU通用计算的并行算法和计算框架的实现[J]. 山东农业大学学报(自然科学版), 2016, 47(3): 473-476, 480.
ZHU Y L. Parallel algorithm based on general purpose computing on GPU and the implementation of calculation framework[J]. Journal of Shandong Agricultural University (Natural Science Edition), 2016, 47(3): 473-476, 480. DOI:10.3969/j.issn.1000-2324.2016.03.030 (in Chinese)
[8] PARK J, SMELYANSKIY M, SUNDARAM N, et al. Sparsifying synchronization for high-performance shared memory sparse-triangular solver[M]//KUNKEL J M, LUDWIG T, MEUER H W. Supercomputing. Cham: Springer, 2014: 124-140.
[9] NAUMOV M. Parallel solution of sparse triangular linear systems in the preconditioned iterative methods on the GPU[R]. Technical Report NVR-2011-001 NVIDIA. NVIDIA, 2011.
[10] LI R P, SAAD Y. GPU-accelerated preconditioned iterative linear solvers[J]. The Journal of Supercomputing, 2013, 63(2): 443-466. DOI:10.1007/s11227-012-0825-3
[11] WOLF M M, HEROUX M A, BOMAN E G. Factors impacting performance of multithreaded sparse triangular solve[M]//PALMA J M L M, DAYDé M, MARQUES O, et al. High Performance Computing for Computational Science-VECPAR 2010. Berlin, Heidelberg: Springer, 2011, 6449: 32-44.
[12] KABIR H, BOOTH J D, AUPY G, et al. STS-k: A multilevel sparse triangular solution scheme for NUMA multicores[C]//Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. New York, USA: ACM, 2015.
[13] MAADASAMY S, DORAISWAMY H, NATARAJAN V. A hybrid parallel algorithm for computing and tracking level set topology[C]//2012 19th International Conference on High Performance Computing. Pune, India: IEEE, 2012.
[14] PICCIAU A, INGGS G E, WICKERSON J, et al. Balancing locality and concurrency: Solving sparse triangular systems on GPUs[C]//2016 IEEE 23rd International Conference on High Performance Computing. Hyderabad, India: IEEE, 2016.
[15] SUCHOSKI B, SEVERN C, SHANTHARAM M, et al. Adapting sparse triangular solution to GPUs[C]//201241stInternational Conferenceon Parallel ProcessingWorkshops. Pittsburgh, USA: IEEE, 2012.
[16] LI A, VAN DEN BRAAK G J, CORPORAAL H, et al. Fine-grained synchronizations and dataflow programming on GPUs[C]//Proceedings of the 29th ACM on International Conference on Supercomputing. New York, USA: ACM, 2015.
[17] CHE S, SHEAFFER J W, SKADRON K. Dymaxion: optimizing memory access patterns for heterogeneous systems[C]//Proceedings of the 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. New York, USA: IEEE, 2011.
[18] DAVIS T A, HU Y F. The university of Florida sparse matrix collection[J]. ACM Transactions on Mathematical Software, 2011, 38(1): 1-25.
[19] NVIDIA Corporation. CUDA Toolkit 10. 0, cusparse library, 2018[EB/OL]. (2018-09-19) http://developer.nvidia.com/cuda-toolkit-40.
[20] Ahamed A K C, MAGOULōS F. Parallel sub-structuring methods for solving sparse linear systems on a cluster of GPUs[C]//2014 IEEE International Conference on High Performance Computing and Communications, 2014 IEEE 6th International Symposium on Cyberspace Safety and Security, 2014 IEEE 11th International Conference on Embedded Software and Syst. Paris, France: IEEE, 2015.
[21] SAAD Y. Iterative methods for sparse linear systems[M]. Boston: PWS Pub. Co., 2009: 216-220.
[22] YOUNG D M. Iterative solution of large linear systems[M]. Amsterdam: Elsevier, 2014.
[23] DAVIS T A. Direct methods for sparse linear systems[M]. Philadelphia: Fundamentals of Algorithms, 2006.
[24] DAVIS T A, RAJAMANICKAM S, SID-LAKHDAR W M. A survey of direct methods for sparse linear systems[J]. Acta Numerica, 2016, 25: 383-566. DOI:10.1017/S0962492916000076
[25] AMENT M, KNITTEL G, WEISKOPF D, et al. A parallel preconditioned conjugate gradient solver for the Poisson problem on a multi-GPU platform[C]//2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing. Pisa, Italy: IEEE, 2010: 583-592.
[26] BAHI J M, RAPHA?L C, KHODJA L Z. Parallel sparse linear solver GMRES for GPU clusters with compression of exchanged data[M]. Berlin Heidelberg: Parallel Processing Workshops, 2012.
[27] KLIE H M, SUDAN H H, LI R, et al. Exploiting capabilities of many core platforms in reservoir simulation[C]//Society of Petroleum Engineers SPE Reservoir Simulation Symposium. The Woodlands, Texas, USA: SPE Reservoir Simulation Symposium, 2011.
[28] DZIEKONSKI A, LAMECKI A, MROZOWSKI M. Jacobi and Gauss-Seidel preconditioned complex conjugate gradient method with GPU acceleration for finite element method[C]//The 40th European Microwave Conference. Paris, France: IEEE, 2010.
[29] GAIKWAD A, TOKE I M. Parallel iterative linear solvers on GPU: A financial engineering case[C]//2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing. Pisa, Italy: IEEE, 2010.
[30] DUFF I S, ERISMAN A M, REID J K. Direct methods for sparse matrices[M]. 2nd ed. Oxford: Oxford University Press, 2017.
[31] Yeralan S N, Davis T A, Ranka S. Sparse QR factorization on GPU architectures[R]. Florida: University of Florida, 2013: 1-36.
[32] AGULLO E, BUTTARI A, GUERMOUCHE A, et al. Multifrontal QR factorization for multicore architectures over runtime systems[M]//WOLF F, MOHR B, AN MEY D. Euro-Par 2013 Parallel Processing. Berlin Heidelberg: Springer, 2013.
[33] BUTTARI A. Fine-grained multithreading for themultifrontal QR factorization of sparse matrices[J]. SIAM Journal on Scientific Computing, 2013, 35(4).
[34] GEORGE T, SAXENAA V, GUPTA A, et al. Multifrontal factorization of sparse SPD matrices on GPUs[C]//2011 IEEE International Parallel & Distributed Processing Symposium, Anchorage, USA: IEEE, 2011: 372-383.
[35] LUCAS R F, WAGENBRETH G, TRAN J J, et al. Multifrontal sparse matrix factorization on graphics processing units[EB/OL].[2012-01-13]. http://dx.doi.org/.2012.
[36] RENNICH S C, STOSIC D, DAVIS T A. Accelerating sparse cholesky factorization on GPUs[J]. Parallel Computing, 2016, 59: 140-150. DOI:10.1016/j.parco.2016.06.004
[37] CHEN X M, REN L, WANG Y, et al. GPU-accelerated sparse LU factorization for circuit simulation with performance modeling[J]. IEEE Transactions on Parallel and Distributed Systems, 2015, 26(3): 786-795. DOI:10.1109/TPDS.2014.2312199
[38] KAYAASLAN E, U?AR B. Reducing elimination tree height for parallel LU factorization of sparse unsymmetric matrices[C]//201421st International Conference on High Performance Computing. Dona Paula, India: IEEE, 2014: 1-10.
[39] NVIDIA. CUDA toolkit[EB/OL].[2019-05-18]. https://developer.nvidia.com/cuda-toolkit.
[40] NVIDIA. NVIDIA CUDA C programming guide. Version 3.1[M]. San Jose: NVIDIA, 2010.

相关话题/计算 过程

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 考虑齿轮耦合振动的换挡过程非线性动力学分析
    隋立起1,田丰1,李波1,曾远帆1,田光宇1,陈红旭21.清华大学汽车安全与节能国家重点实验室,北京100084;2.宜宾丰川动力科技有限公司,宜宾644600收稿日期:2019-06-05基金项目:国家自然科学基金面上项目(51775291);四川省科技创新人才项目(2019JDRC0001)作者 ...
    本站小编 Free考研考试 2020-04-15
  • 电动汽车无同步器变速器换挡过程主动对齿控制
    田丰1,王立军1,2,隋立起1,曾远帆1,周星月3,田光宇11.清华大学汽车安全与节能国家重点实验室,北京100084;2.宜宾丰川动力科技有限公司,宜宾644600;3.中国空间技术研究院北京卫星制造厂有限公司,北京100080收稿日期:2019-04-08基金项目:国家自然科学基金项目(5177 ...
    本站小编 Free考研考试 2020-04-15
  • 爬行器驱动轮与套管管壁斜压过程分析
    孙可平,杨东超,常旭,朱衡,鲁沛昕,陈恳清华大学机械工程系,北京100084收稿日期:2019-04-09作者简介:孙可平(1979-),男,博士研究生通信作者:杨东超,副研究员,E-mail:ydc@tsinghua.edu.cn摘要:轮式水平井爬行器驱动轮与套管管壁接触过程中会在管壁上留下塑性变 ...
    本站小编 Free考研考试 2020-04-15
  • 极性变换过程的电弧图像同步错时拍摄及其动态行为观测
    符平坡,朱志明,程世佳清华大学机械工程系,先进成形制造教育部重点实验室,北京100084收稿日期:2019-03-13基金项目:国家自然科学基金面上项目(51775301)作者简介:符平坡(1987-),男,博士研究生通信作者:朱志明,教授,E-mail:zzmdme@tsinghua.edu.cn ...
    本站小编 Free考研考试 2020-04-15
  • 遥感卫星对区域目标可见性的快速计算方法
    鄂智博,李俊峰清华大学航天航空学院,北京100084收稿日期:2019-02-03基金项目:自然科学基金面上项目(11672146)作者简介:鄂智博(1994-),男,博士研究生通信作者:李俊峰,教授,E-mail:lijunf@tsinghua.edu.cn摘要:遥感卫星对区域目标可见时间窗口的快 ...
    本站小编 Free考研考试 2020-04-15
  • 爬行器驱动轮正压过程分析
    常旭,杨东超,孙可平,朱衡,杨淇耀清华大学机械工程系,北京100084收稿日期:2018-11-28作者简介:常旭(1994-),男,硕士研究生通信作者:杨东超,副研究员。E-mail:ydc@tsinghua.edu.cn摘要:轮式水平井爬行器依靠驱动轮与管壁的接触产生牵引力。目前已有的相关研究均 ...
    本站小编 Free考研考试 2020-04-15
  • 考虑全截面剪切的钢闸门宽翼工字形深梁解析计算方法
    吴思远1,2,王正中31.同济大学土木工程防灾国家重点实验室,上海200092;2.同济大学结构工程与防灾研究所,上海200092;3.西北农林科技大学旱区寒区水工程安全研究中心,杨凌712100收稿日期:2018-06-19基金项目:国家自然科学基金项目(51179164);国家科技支撑计划项目( ...
    本站小编 Free考研考试 2020-04-15
  • 基于Wiener过程的数控转台极小子样可靠性分析
    张云,姜楠,王立平清华大学机械工程系,精密超精密制造装备及控制北京市重点实验室,北京100084收稿日期:2018-07-20基金项目:国家科技重大专项(2016ZX04004-004)作者简介:张云(1974-),男,副研究员。E-mail:zhangyun@tsinghua.edu.cn摘要:针 ...
    本站小编 Free考研考试 2020-04-15
  • 面向大规模时序图SimRank的计算方法
    苗壮,袁野,乔百友,王一舒,马玉亮,王国仁东北大学计算机科学与工程学院,沈阳110819收稿日期:2018-07-21基金项目:国家重点研发计划资助项目(2016YFC1401900);国家自然科学基金资助项目(61572119,61622202)作者简介:苗壮(1994-),男,硕士研究生通信作者 ...
    本站小编 Free考研考试 2020-04-15
  • 薄壁工件铣削过程中强迫振动响应分析
    张洁,刘成颖清华大学机械工程系,精密超精密制造装备及控制北京市重点实验室,北京100084收稿日期:2018-01-18基金项目:国家科技重大专项(2014ZX04001051)作者简介:张洁(1992-),男,硕士研究生通信作者:刘成颖,副教授,E-mail:liucy@tsinghua.edu. ...
    本站小编 Free考研考试 2020-04-15