论文部分内容阅读
并行编译技术是并行处理中的关键技术。随着现代体系结构的发展,并行编译技术的相对落后大大制约了超级计算机的普及。随着基于MPP架构的机群系统逐渐成为超级计算的主流平台,对并行编译技术提出了更多的挑战,本文在这方面做了些研究,以供探讨。
OpenMP是面向SMP体系结构的编程标准,MPI是面向MPP体系结构的编程标准。随着主流超级计算机体系结构由SMP向MPP过渡,MPI编程技术成为超级计算机的主流编程规范。但是它们之间差异很大,手工转换十分困难,如能开发出将OpenMP转化为MPI的自动转化工具,则可充分利用已有的软件资源。通过对这两种编程规范和编译技术的研究,我们在AFT平台上开发出了将OpenMP转化为经过优化的MPI程序的自动化编译工具AFT2004。
数据划分是分布主存系统中并行编译的关键技术,也是优化MPP系统上MPI程序的重点和难点。通过迭代逐次求精计算数值是科学计算中一类常见的程序。
通过对典型数值迭代近似计算程序的分析和研究,本文提出了指针数组数据划分模型并给出相应的划分策略,这是本文的主要贡献。在对指针数组进行数据划分时其主要挑战是,识别跨过程的一维到多维的指针别名引用、消除数据空间的循环变量相关性以及相邻数据空间大小不一致引起的数据对齐问题。
首先,针对模型中一维到多维的跨过程变换,本文利用上下文敏感的过程间指针分析技术,识别出别名,从而解决模型识别中的主要难点;其次,模型迭代体中的数据空间是循环变量相关量,不适宜通过循环展开的方式解决,针对该问题本文提出了选取代表元的策略,从而较好地将对指针数组的讨论转化为对代表元数组的数据划分的讨论。
指针数组数据划分模型与传统数据划分模式有着本质的区别,它们就好比向量问题和标量问题,虽有共性但是我们更应该针对指针数组的独特性给出相宜的解决策略。