线性系统:浮点运算与基础线性代数
在科学计算领域,许多问题都可以转化为线性代数问题来解决,这种方法极为有效。线性代数问题往往具有丰富的数学结构,这催生了大量高效且经过优化的算法。因此,科学家们常常采用线性模型或对非线性模型进行线性近似,因为解决线性问题的工具已经相当成熟。
1. 基础线性代数子程序(BLAS)
基础线性代数运算至关重要,许多现代计算机架构都旨在最大化线性代数计算的性能。全球最快的 500 台计算机排名(可在 www.top500.org 查询)就使用 HPL 基准测试来求解稠密线性方程组,以此作为评估计算机系统性能的主要指标。
1973 年,Hanson、Krogh 和 Lawson 提出了采用一组基础线性代数子程序的优势。这些子程序被称为基础线性代数子程序(BLAS),通常分为三个层次:
- 一级 BLAS :包含向量 - 向量运算。
- 二级 BLAS :进行矩阵 - 向量运算。
- 三级 BLAS :处理矩阵 - 矩阵运算。
BLAS 已经有了标准化的应用程序编程接口(API),这使得硬件供应商、编译器开发者和其他专家能够为程序员提供针对特定架构优化的核心例程。性能分析工具表明,许多科学计算的大部分时间都花在调用 BLAS 的代码段上,所以对 BLAS 进行小的改进就可能带来显著的速度提升。使用 C 和 Fortran 等高级语言的程序员可以通过依赖像 BLAS 这样经过优化和标准化的库来提升性能。BLAS 算法可以从 www.netlib.org/blas 下载。
超级会员免费看
订阅专栏 解锁全文
1344

被折叠的 条评论
为什么被折叠?



