论文部分内容阅读
如何用好并行处理系统以解决大规模科学计算问题是当前计算机科学面临的一个重要课题,开发高效的并行软件是解决问题的核心。作为软件开发的工具,并行编译系统在并行软件的开发中起着重要的作用。目标程序的质量是并行编译系统的生命。对于面向分布式系统的并行编译器而言,数据分布和循环分割策略的全局优化效果对目标程序的性能具有决定性作用。在自动并行编译系统中,数据分布和循环分割策略的优化有两个重要的问题要解决:一是如何从程序中发掘更多的并行性;第二是如何从程序整体上考虑并行优化的策略,减少通讯的开销。这是当前研究的热点问题。本文以分布式处理系统为背景提出了一个解决数据分布和循环分割全局优化的方案,并将之应用于自动并行编译系统的研发工作,取得了良好的效果。本文的主要贡献如下: 1) 设计并实现了语言扩展,通过引入语言制导,特别是REDUCTION等制导的提出使自动产生的并行程序质量有显著提高。 2) 分析了在分布式存储结构的并行处理系统中通讯产生的条件,指出数据和计算的对齐关系、数据之间的对齐关系是影响通讯分析的两个基本因素。结合曙光2000-Ⅰ的特点,给出了简化的通讯量评估方法。 3) 设计了描述程序中对齐关系的程序对齐信息图,在此基础上对程序中与并行优化相关的各种对齐关系作了描述,并设计了一组算法找出程序中存在的对齐关系。程序中存在的对齐关系是进行过程内数据分布和循环分割优化策略推导的基础。 4) 设计并实现了过程内的数据分布和循环分割的优化算法,算法的核心是使得数据分布和循环分割策略尽可能多地满足程序中存在的对齐关系。 5) 在过程内分析中,提出面向全局优化的循环流水执行方式。 6) 设计并实现了过程间的并行优化框架算法,利用过程繁衍技术,根据过程调用的上下文信息进行过程调用的实例化处理;在进行过程间分析时,对已知的数据分布信息进行传播。 7) 将上述成果应用于自动并行编译系统的研发工作,经实验表明本文的思想可以显著提高目标程序的质量。 我们认为全局并行优化技术的研究可以使得并行编译系统成为应用人员开发并行软件的有力工具。而相关辅助工具和集成环境的开发,使得程序员可以从多个方面干预程序的并行化工作和对并行程序进行调试,这是开发并行软件的有效手段。