论文部分内容阅读
为了能够充分使用计算机资源,使软件运行能够尽可能地接近计算机峰值性能,研究人员一直在努力。一个思路是为计算机开发优秀的编译器,并使用编译器相关技术对软件进行性能优化;作为补充,另一个思路是开发能够共用的核心软件包,通过提高核心软件包中程序的性能提高调用核心库的软件系能。
但科学计算中针对特定的计算机平台和特定的用户问题进行性能调优仍然是一个困难的问题。速度和可移植性是数值计算软件开发中的一对矛盾。自适应性能优化技术正是为了解决数值计算软件中的可移植性问题和进行自动性能优化而提出的,科学家们希望数值计算软件能够动态地获悉计算环境的变化以及待求解问题的特征,根据需要改变自身以适应这些变化以及多种复杂的问题情况,并且在多种求解方法中进行决策以选择最优的解决方法来求解问题。
本文调研了使用自适应性能优化技术的几个著名软件包:ATLAS,SPARSITY,OSKI以及数字信号处理领域的快速傅立叶变换软件包FFTW,在此基础上,重点分析和比较了自适应性能优化的关键技术,着重介绍了矩阵乘计算、MPI通信操作、快速傅立叶变换中涉及的经验搜索、算法选择和自动代码生成等技术在这些软件包中的应用。
在深入调研的基础上,结合实际应用需求,本文还提出了自适应性能优化过程的新的评价指标,试图权衡优化效果和优化时间开销,并在不同的实验平台上针对ATLAS的优化过程进行的实验和过程评价,实验表明,综合优化效果和优化开销能够有效地发现ATLAS自适应优化过程的特征。将其应用到实际开发和调优过程中,能够在不损失性能的前提下,节省优化时间。论文最后对HPCC测试软件包在IBM刀片机群上进行了对比测试,发现了测试平台存在的性能瓶颈,并消除了该瓶颈。表明HPCC软件包确实可以有效的发现被测平台存在的性能瓶颈问题。