摘要
过程间分析技术是提高编译器目标码效率的重要技术.在分布式存储的并行系统中,数据分布的好坏对应用程序的性能有重要影响.但是仅做过程内的数据对齐和分布推导难以获得良好的全局数据分布模型,而且会使过程调用的开销难以控制,因而如何处理过程调用,以及数据分布信息在过程调用点的收集与传播对生成高效率的目标码是极其重要的. 文中应用过程调用实例化技术,减小过程调用的开销。
Global data distribution analysis is a key technology for parallel compilers. Compiler should let computing and data used by these computing locate at the same processor, otherwise, the performance of applications will be very poor. Interprocedure analysis is necessary for global data distribution analysis. When mapping functions of a formal array and actual array associated with this formal array are not compatible, the cost of this procedure callsite will be very high. Two issues must be solved: ① how to process procedure calls; ② how to collect array distribution information and transfer the useful information among procedures. In this paper, a method for solving these two issues is introduced. All callsites of a procedure are classified into patterns according to their calling contexts, with each pattern calling a special body of this procedure. Information used to classify the callsites can be applied for pattern body's parallel optimizing, too. This is called instantiation. This method can be used to decrease the cost of procedure call and to obtain a global optimizing data distribution model.
出处
《计算机研究与发展》
EI
CSCD
北大核心
1999年第12期1424-1429,共6页
Journal of Computer Research and Development
基金
国家"八六三"高科技计划基金
国家高性能计算基金
关键词
并行重构程序
过程调用
优化
并行编译器
parallel compiler, data locality, instantiation, data distribution model