Abstract
The ability to represent, manipulate, and optimize data placement and movement between processors in a distributed address space machine is crucial in allowing compilers to generate efficient code. Data placement is embodied in the concept of dataownership. Data movement can include not just the transfer of data values but the transfer of ownership as well. However, most existing compilers for distributed address space machines either represent these notions in a language-or machine-dependent manner, or represent data or ownership transfer implicitly. In this paper we describe XDP, a set of intermediate language extensions for representing and manipulating data and ownership transfers explicitly in a compller. XDP is supported by a set of per-processor structures that can be used to implement ownership testing and manipulation at run-time, XDP provides a uniform framework for translating and optimizing sequential, data parallel, and message-passing programs to a distributed address space machine. We describe analysis and optimization techniques for this explicit representation. Finally, we compare the intermediate languages of some current distributed address space compilers with XDP.
Similar content being viewed by others
References
M. Gupta and P. Banerjee, Automatic data partitioning on distributed memory multiprocessors,Proc. of the Sixth Distributed Memory Computer Conf. (DMCC6), Portland, Oregon (April 1991).
M. Gupta and P. Banerjee, Demonstration of automatic data partitioning techniques for parallelizing compilers on multicomputers,IEEE Trans. on Parallel and Distributed Systems (April 1992).
K. Knobe, J. D. Lukas, and G. L. Steele, Jr., Data optimization: allocation of arrays to reduce communication on SIMD machines,J. of Parallel and Distrib. Comput. (8):102–118 (1990).
Seema Hiranandani, Ken Kennedy, and Chau-Wen Tseng Compiling Fortran D for mimd distributed-memory machines.Comm. of the ACM,35(8):66–80 (August 1992).
V. Balasundaram, Translating control parallelism to data parallelism,Fifth SIAM Conf. on Parallel Processing for Sci. Comput., Houston, Texas (March 1991).
H. P. Zima, H. J. Bast, and M. Gerndt, SUPERB: A tool for semi-automatic SIMD/MIMD parallelization,Parallel Computing 6:1–18 (1988).
D. Callahan and K. Kennedy, Compiling programs for distributed-memory multiprocessors,J. of Supercomput. 2:151–169 (October 1988).
A. Rogers and K. Pingali, Process decomposition through locality of reference,ACM SIGPLAN 89 Conf. on Programming Language Design and Implementation, pp. 69–80 (June 1989).
HPF Forum,High Performance Fortran Language Specification, Version 1, available from Rice University, Houston, Texas (January 1993).
J. Wu, J. H. Saltz, S. Hiranandani, and H. Berryman, Runtime compilation methods for multicomputers,Proc. of the 1991 Int. Conf. on Parallel Processing, St. Charles, Illinois (August 1991).
Seema Hiranandani, Ken Kennedy, and Chau-Wen Tseng, Compiler optimizations for Fortran D on mind distributed-memory machines,Proc. of Supercomputing '91 (November 1991).
A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools, Addison-Wesley (1988).
V. Balasundaram, A mechanism for keeping useful internal information in parallel programming tools: the Data Access Descriptor,J. of Parallel and Distrib. Comput. (9):154–170 (1990).
D. Callahan and K. Kennedy, Analysis of interprocedural side effects in a parallel programming environment,J. of Parallel and Distrib. Comput. 5(5):517–550 (October 1988).
D. Callahan and J. Subhlok, Static analysis of low-level synchronization,Workshop on Parallel and Distributed Debugging, pp. 100–111 (May 1988).
D. Callahan, K. Kennedy, and J. Subhlok, Analysis of event synchronization in a parallel programming tool,ACM SIGPLAN Symp, on Principles and Practice of Parallel Programming, pp. 21–30 (March 1990).
D. Grunwald and H. Srinivasan, An efficient construction of parallel static single assignment form for structured parallel programs, Technical Report CU-CS-564-91, University of Colorado, Boulder (1991).
D. Grunwald and H. Srinivasan, Data flow equations for explicitly parallel programs,Proc. of SIGPLAN Conf. on Principles and Practice of Parallel Programming (May 1993).
D. Grunwald and H. Srinivasan, Efficiently computing preserved sets, Technical Report in preparation, University of Colorado, Boulder (1993).
Hans Zima and Barbara Chapman,Supercompilers for Parallel and Vector Computers, ACM Press, Addison-Wesley (1991).
D. N. Jayasimha, Communication and synchronization in parallel computation, PhD. Thesis, CSRD Report No. 819, University of Illinois, Urbana-Champaign (1988).
S. P. Midkiff and D. A. Padua, Compiler generated synchronization for DO loops. In K. Hwang, S. Jacobs, and E. Swartzlander (eds.),Proc. of the 1986 Int. Conf. on Parallel Processing, pp. 544–551 (August 1986).
P. L. Shaffer, Minimization of interprocessor synchronization in multiprocessors with shared and private memory. In F. Ris and P. M. Kogge (eds.),Proc. of the 1989 Int. Conf. on Parallel Processing, Vol. 3, pp. 138–141 (August 1989).
S. P. Midkiff, The dependence analysis and synchronization of parallel programs, PhD. Thesis, CSRD Report No. 1165, University of Illinois, Urbana-Champaign (January 1992).
S. Carr and K. Kennedy, Compiler blockability of numerical algorithms,Supercomputing 92, Minneapolis, Minnesota (November 1992).
V. Balasundaram, G. Fox, K. Kennedy, and U. Kremer, An interactive environment for data partitioning and distribution,Proc. of the Fifth Distrib. Memory Comput. Conf., Charleston, S. Carolina (April 1990).
M. Gerndt, Updating distributed variables in local computations,Concurrency: Practice and Experience (1990).
T. Lake, Distributing computations. In R. H. Perrott (ed.),Software for Parallel Computers, Chapman and Hall, London (1992).
E. Jul, H. Levy, N. Hutchinson, and A. Black, Fine-grained mobility in the Emerald system,ACM Trans. on Computer Systems 6(1):109–133 (February 1988).
Kendall Square Research, Technical summary, Technical report, Kendall Square Research (1992).
Vasanth Bala, Jeanne Ferrante, and Larry Carter, Explicit data placement (xdp): A methodology for explicit compile-time representation and optimization of data movement,Fourth ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, pp. 139–149 (May 1993).
Chau-Wen Tseng, An optimizing Fortran D compiler for MIMD distributed-memory machines, PhD. Thesis, Rice University (1993).
P. Mehrota and J. Van Rosendale, Compiling high level constructs to distributed memory architectures,Proc. of the Fourth Conf. on Hypercube Concurrent Computers and Applications (March 1989).
J. Li and M. Chen, Generating explicit communication from shared memory program references, New York,Supercomputing 90, pp. 865–877 (November 1990).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Carter, L., Ferrante, J. & Bala, V. XDP: A compiler intermediate language extension for the representation and optimization of data movement. Int J Parallel Prog 22, 485–518 (1994). https://doi.org/10.1007/BF02577776
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02577776