论文部分内容阅读
近年来以机群为代表的分布式存储超级计算机系统逐渐成为超级计算机的的主流,与共享存储超级计算机相比,分布式存储机群系统最大的区别是数据分散存储在不同的节点上的,在考虑其科学计算程序的并行化时,除了必须考虑到计算上的并行性外,还必须考虑数据分布的问题。在当前网络传输技术条件下,过多数据通讯是制约分布式存储系统性能的关键所在,因此,基于分布式存储系统的并行化编译的研究重点就在于数据划分技术和一些辅助性的技术。
Stanford大学的SUIF等系统在分布式并行化编译上进行了一定的尝试,但在该领域无论是在理论研究上还是实用系统研发上都还有很多地方需要进一步的研究,本文在研究现有的并行化技术和数据划分技术的基础上,主要在以下三个方面作了一些研究工作:科学计算程序形式上的不规整性往往严重影响其并行性和数据可划分性,而复杂非紧密嵌套循环更是常见的不规整计算模块,因此本文首先在分析常用循环变换的特点的基础上,提出一个复杂非紧密嵌套循环的变换算法,具体benchmark的改写证明,该算法能十分有效的改良一些科学计算程序的并行性和数据可划分性;在这基础上,从实践性角度出发,针对现有分布式并行化系统缺乏一个能有效解决边界问题整体框架的问题,结合我在参与开发我所OpenMPtoMPI自动转换工具的经验,提出自动数据划分的一些实用性算法,包换划分信息的表示,划分信息的合并、传递,划分信息的决策、发布,数组的划块、对齐,数组边界代码的处理和串行程序的处理等。最后,给出一个能覆盖大量科学计算程序的数据划分算法——基于幺模变换的数据划分,该方法以每个循环的划分性为基础寻找一个能覆盖所有循环的幺模变换,它能将单个嵌套循环数据划分的分析和循环间寻求统一全局数据划分的分析有机结合起来,弥补了现有数据划分方法的不足,在具体benchmark测试中取得很好的效果。