Abstract
V-cal is a calculus designed to support the compilation of data parallel languages that allows to describe program transformations and optimizations as semantics preserving rewrite rules. In V- cal the program transformation and optimization phase of a compiler is organized in three independent passes: in the first pass a set of rewrite rules are applied that attempt to identify the potential parallelism of an algorithm. In the second pass program parts amenable to parallelization or algorithm substitution are replaced by their semantically equivalent parallel counterparts. Finally, a set of rules are applied that map the parallelized program to the target architecture in a way that makes efficient use of the given resources.
Data parallel languages provide a programming model that abstracts from parallelism, communication, and synchronization. To be able to express optimizing transformations in V-cal parallelism, communication, and synchronization are made explicit by the means of dedicated operators that represent these concepts in a machine independent way. In this paper we describe the operators and transformation rules that allow to implement the first two passes of a V- cal engine. We show that our approach leads to a flexible compiler design that allows to experiment with different optimization strategies and heuristics.
Author is affiliated to NWO and is sponsored by SION.
Preview
Unable to display preview. Download preview PDF.
References
F. André, J. Pazat, H. Thomas Pandore: A System to Manage Data Distribution, in Proc. 1990 Intl. Conf. on Supercomputing, The Netherlands, 1990.
L.C. Breebaart, P.F.G. Dechering, A.B. Poelman, J.A. Trescher, J.P.M. de Vreught, and H.J. Sips, The Booster Language, A Working Paper 1.0, Computational Physics report series CP-95-02, Delft University of Technology, 1995.
D. Callahan and K. Kennedy Compiling Programs for Distributed-Memory Multiprocessor, The Journal of Supercomputing, 2:151–169, 1988.
J. Cordy, I. Carmichael, The TXL Programming Language, Syntax and Informal Semantics, Version 7, Department of Computing and Information Science, Queens University at Kingston, txl@qucis.queensu.ca, 1993.
P.F.G. Dechering, The Denotational Semantics of Booster, Computational Physics report series CP-95-05, Delft University of Technology, 1995.
P. Deransart, M. Jourdan, B. Lorho, Attribute grammars, definitions, systems and bibliography, vol. 323 of Lecture Notes in Computer Science, Springer Verlag, 1988
S. Hiranandani et. al. Compiling Fortran-D for MIMD Distributed-Memory Machines, Communications of the ACM, 35(8):66–80, August, 1992.
P. Hilflinger P. Colella Fidil Reference Manual, Report No. UCB/CSG 93-759, 1993.
High Performance Fortran Forum, High Performance Fortran, Language Specification, Version 1.0, Rice University, Houston, Texas, 1993.
ISO/IEC Information technology — Programming languages — Fortran, ISO/IEC standard 1539, 1991.
C. Jesshope et. al. F-code and its implementation: a Portable Software Platform for Data Parallelism, in Proc. 4. Intl. Workshop on Compilers for Parallel Computers, Delft 1993, The Netherlands.
J. Li and M. Wolfe. Defining, Analyzing and Transforming Program Constructs. IEEE Parallel and Distributed Technology, pages 32–39, 1994.
L.M.R. Mullin, D.R. Dooling, E.A. Sandberg, and S.A. Thibault. Formal Method in Scheduling, Routing, and Communication Protocol, Fourth International Workshop on Compilers for Parallel Computers, Delft University of Technology, 1993.
E. Paalvast, H. Sips A High-level Language for the Description of Parallel Algorithms, in Proc. of Parallel Computing '89, North Holland Publ., 1989.
L. Semenzato and P. Hilflinger Arrays in Fidil, in: L. M. R. Mullin, M. Jenkins, G. Hains, R. Bernecky, G. Gao, Arrays, Functional Languages, and Parallel Systems.
J.A. Trescher, P.F.G. Dechering, A.B. Poelman, J.P.M. de Vreught, and H.J. Sips, A Formal Approach to the Compilation of Data Parallel Languages, in K. Pingali, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Languages and Compilers for Parallel Computing, pages 155–169, Springer-Verlag, 1994.
D. Turner. Miranda: a Non-strict Functional Language with Polymorphic Types. In J.P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, volume 201 of Lecture Notes in Computer Science. Springer-Verlag, 1985.
M. Wolfe Optimizing Supercompilers for Supercomputers, MIT Press, Cambridge, Massachusetts, 1989.
H. Zima and B. Chapman Supercompilers for Parallel and Vector Computers, ACM Press, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dechering, P.F.G., de Vreught, J.P.M., Trescher, J.A., Sips, H.J. (1996). V-cal: a calculus for the compilation of data parallel languages. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014195
Download citation
DOI: https://doi.org/10.1007/BFb0014195
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60765-6
Online ISBN: 978-3-540-49446-1
eBook Packages: Springer Book Archive