15、在多核处理器上实现线性代数例程:流水线与前瞻技术

在多核处理器上实现线性代数例程:流水线与前瞻技术

1. 引言

数值线性代数算法在共享内存系统中的并行化标准方法,是依赖于基本线性代数子程序(BLAS)的并行实现,这在提取三级BLAS例程的并行性方面已被证明是有效的。然而,随着处理器或核心数量的增加,一级和二级例程的并行化不仅难以实现加速,甚至可能导致性能下降。这使得算法中一级和二级BLAS部分降低了并行化的优势,并限制了可达到的性能。因此,需要一种更灵活的方法来应对新一代多核处理器,这些处理器预计在不久的将来会拥有数十甚至数百个核心。

前瞻技术可以通过重叠执行效率较低和较高的操作来解决这个问题。同时,研究了不同级别的前瞻技术,并讨论了动态前瞻的概念,即算法的执行路径在运行时决定。

2. 矩阵分解
  • LU分解 :对于一个$m×n$的实矩阵$A$,其带部分行主元的LU分解形式为$A = PLU$。其中,当$m >= n$时,$L$是一个$m×n$的实单位下三角矩阵,$U$是一个$n×n$的实上三角矩阵;当$m <= n$时,$L$是一个$n×n$的实单位下三角矩阵,$U$是一个$m×n$的实上三角矩阵,$P$是一个置换矩阵。在LAPACK中,双精度算法由DGETRF例程实现。算法的单步实现通过一系列对LAPACK和BLAS例程的调用:DGETF2、DLASWP、DTRSM、DGEMM,这是一种右视算法。
  • Cholesky分解 :对于一个$n×n$的实对称正定矩阵$A$,其Cholesky分解形式为$A = LLT$,其中$L$是一个$n×n$的实下三角矩阵,且对角元素为正。块算法的形式与
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值