Author:
Amarasinghe Saman P.,Lam Monica S.
Abstract
This paper presents several algorithms to solve code generation and optimization problems specific to machines with distributed address spaces. Given a description of how the computation is to be partitioned across the processors in a machine, our algorithms produce an SPMD (single program multiple data) program to be run on each processor. Our compiler generated the necessary receive and send instructions, optimizes the communication by eliminating redundant communication and aggregating small messages into large messages, allocates space locally on each processor, and translates global data addresses to local addresses.
Our techniques are based on an exact data-flow analysis on individual array element accesses. Unlike data dependence analysis, this analysis determines if two dynamic instances refer to the same value, and not just to the same location. Using this information, our compiler can handle more flexible data decompositions and find more opportunities for communication optimization than systems based on data dependence analysis.
Our technique is based on a uniform framework, where data decompositions, computation decompositions and the data flow information are all represented as systems of linear inequalities. We show that the problems of communication code generation, local memory management, message aggregation and redundant data communication elimination can all be solved by projecting polyhedra represented by sets of inequalities onto lower dimensional spaces.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
26 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Cyclebite: Extracting Task Graphs From Unstructured Compute-Programs;IEEE Transactions on Computers;2024-01
2. DISTAL: the distributed tensor algebra compiler;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09
3. DisGCo;ACM Transactions on Architecture and Code Optimization;2020-12-31
4. OmpMemOpt: Optimized Memory Movement for Heterogeneous Computing;Euro-Par 2020: Parallel Processing;2020
5. Fog Computing and Data as a Service: A Goal-Based Modeling Approach to Enable Effective Data Movements;Advanced Information Systems Engineering;2018