高性能混合语言编程与图像去模糊方法研究
1. 背景与目标
在过去五十年里,科学计算的硬件和算法速度有了巨大提升,但适合高性能计算的编程技术发展却明显滞后。处理科学软件应用的复杂性难题,已成为解决复杂计算科学问题的一大阻碍,这也使得技术软件开发在科研项目中成本高昂。本文旨在回顾和比较常见的科学编程技术,并介绍一些有前景的新方法。
2. 常见编程技术发展历程
2.1 Fortran 子例程库时期
20 世纪 70 年代,人们开始将通用算法的高质量、经过广泛验证的实现收集到 Fortran 子例程库中。这些子例程成为更高级应用的算法构建块,数据以数组、整数、实数和字符串变量的形式在子例程中进出。例如 LAPACK 就是这类库的典型代表,至今仍是科学软件中重要的组成部分。
2.2 C 语言的过渡
20 世纪 80 年代和 90 年代,科学计算领域逐渐从 Fortran 向 C 语言过渡。C 语言允许将基本变量组合成新的复合数据类型,Fortran 90 也具备此功能。这使得函数参数减少,抽象层次提高。
2.3 C++ 和 Fortran 90 的发展
C++ 和 Fortran 90 引入了类或模块概念,复合数据类型可以配备操作数据的函数。应用代码可以定义类对象并调用其函数,而不是像 C 和 Fortran 77 那样在函数/子例程库中频繁传递大量变量。C++ 还提供了面向对象编程和模板,可对类型进行参数化,使单个函数能处理不同类型的输入数据,大大减少了库中的代码量,提高了在特定应用代码中使用库的灵活性。即将推出的 Fortran 2003/2008 也将具备相同的功能。
高性能混合语言与图像去模糊研究
超级会员免费看
订阅专栏 解锁全文
1655

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



