论文部分内容阅读
随着应用的深入和计算技术的发展,并行计算在数值计算领域里扮演着越来越为重要的角色,成为了解决很多大规模科学计算问题的唯一途径。 并行计算的应用离不开并行软件的支持,在新的科学计算形势下,人们对高性能数值软件的严重依赖和迫切需求基于这样一个事实:并行数值程序的设计远比串行程序设计来得困难,尤其面对复杂应用问题时,大规模并行数值程序的开发和性能优化非常具有挑战性。 然而,高性能数值软件的开发是一项庞大而复杂的工程,从设计到实现往往需要一个综合、漫长的探索过程。在这种情况下,了解、使用、解构剖析一些已有的优秀数值软件成果,以获取在开发经验及技术方面更多的认识,成为了我们迅速提高数值软件开发水平的一条捷径。 可移植、可扩展科学计算软件包PETSc是近来在国际上很受关注、应用广泛的高性能并行数值软件开发典范之一,我们对它的重点学习与研究主要出于以下考虑:PETSc基于MPI并行程序设计平台,适合于我们常用的并行计算机尤其是机群系统;它以偏微分方程、代数方程求解功能为实现重点,非常切合于我们的主要研究方向和应用需求;尤为重要的是,在其良好的软件使用模式和执行性能下隐含的先进软件设计思想和程序实现方案,对我们今后的数值软件开发很有借鉴意义。 以PETSc为主线,本文的主要工作及贡献包括: ·对当前高性能数值软件领域的研究内容、现状及发展趋势做了较为详细的调研与分析整理,归纳了数值建模与算法研究、程序设计与性能优化、软件开发思想与系统设计等三大数值软件研究范畴。 ·从软件外在的功能组织、使用模式与内在的设计思想、实现技术及其因果关联性等多重角度出发,对PETSc做了深入的分析探讨,尤其从源代码的层次,重点剖析了PETSc的面向对象、中性数据结构、上下文环境、并行设计与通信等重要核心技术的实现方法及其对PETSc使用模式和性能所产生的意义。 ·从消息传递并行编程模型出发,提出了一套非结构网格划分和管理的综合应用方案,并给出相应的实现与应用步骤,在此基础上总结了PETSc对该方案的支持功能。。在充分考虑数值计算与面向对象等软件工程思想结合的基础上,对高性能数值软件设计做了多方面思考,提出了一套框架性的综合设计方案。