摘要
数据分布是提高分布存储系统上OpenMP程序性能的主要方法之一.基于两阶段分析方法,提出了一个面向OpenMP程序的自动数据分布框架及算法并实现其于CCRGOpenMP编译器之中.第一阶段,编译器分析程序中数据访问模式,结合OpenMP程序中DO指导命令提供的任务调度信息,为每次数组访问产生分布方式候选;第二阶段,采用多面体作为迭代空间及数组空间的几何模型,提出自动计算有界多面体中整数点个数以衡量通信量之多少的方法,并且用Ehrhart多项式表示其结果以更便于符号比较和最优分布方式的选取.实验表明,在最终选取的分布方式下,程序性能明显优于其他候选分布方式.
Data distribution is one of the most important approaches to improve the performance ot OpenMP program on distributed memory system. OpenMP directives can provide valuable information to guide data distribution, such as task schedule and runtime context. In this paper, an automatic data distribution algorithm for OpenMP program is presented and implemented in the CCRG OpenMP compiler. According to the two-steps analysis method, the compiler decides the optimal data distribution pattern of each shared array automatically in a quantitative way. In the first step, the compiler analyzes the data access pattern in each parallel loop nest, then produces a candidate data distribution pattern for each shared array reference according to the OpenMP DO directive. In the second step, an automatic numeration method is introduced to make the optimal selection of data distribution pattern based on the convex polytope, which is treated as the geometric model of iteration space and array space. We built the convex polytope composed of the iteration points which access the shared array locally, and compute the number of integer iteration points contained in that convex polytope. Then the result is expressed as the Ehrhart polynomial to indicate the amount of the local accesses, the criterion of the best choice, which is helpful to optimal selection. The results of the experiments show that under the selected optimal data distribution pattern, the performanceof program is obviously better than that under the others.
出处
《南京大学学报(自然科学版)》
CAS
CSCD
北大核心
2005年第5期562-568,共7页
Journal of Nanjing University(Natural Science)
基金
国家863软件专项(2002AA1Z2101
2004AA1Z2210)