Skip to main content

V-cal: a calculus for the compilation of data parallel languages

  • Conference paper
  • First Online:
Book cover Languages and Compilers for Parallel Computing (LCPC 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1033))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. André, J. Pazat, H. Thomas Pandore: A System to Manage Data Distribution, in Proc. 1990 Intl. Conf. on Supercomputing, The Netherlands, 1990.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. D. Callahan and K. Kennedy Compiling Programs for Distributed-Memory Multiprocessor, The Journal of Supercomputing, 2:151–169, 1988.

    Article  Google Scholar 

  4. 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.

    Google Scholar 

  5. P.F.G. Dechering, The Denotational Semantics of Booster, Computational Physics report series CP-95-05, Delft University of Technology, 1995.

    Google Scholar 

  6. P. Deransart, M. Jourdan, B. Lorho, Attribute grammars, definitions, systems and bibliography, vol. 323 of Lecture Notes in Computer Science, Springer Verlag, 1988

    Google Scholar 

  7. S. Hiranandani et. al. Compiling Fortran-D for MIMD Distributed-Memory Machines, Communications of the ACM, 35(8):66–80, August, 1992.

    Article  Google Scholar 

  8. P. Hilflinger P. Colella Fidil Reference Manual, Report No. UCB/CSG 93-759, 1993.

    Google Scholar 

  9. High Performance Fortran Forum, High Performance Fortran, Language Specification, Version 1.0, Rice University, Houston, Texas, 1993.

    Google Scholar 

  10. ISO/IEC Information technology — Programming languages — Fortran, ISO/IEC standard 1539, 1991.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. J. Li and M. Wolfe. Defining, Analyzing and Transforming Program Constructs. IEEE Parallel and Distributed Technology, pages 32–39, 1994.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. E. Paalvast, H. Sips A High-level Language for the Description of Parallel Algorithms, in Proc. of Parallel Computing '89, North Holland Publ., 1989.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. M. Wolfe Optimizing Supercompilers for Supercomputers, MIT Press, Cambridge, Massachusetts, 1989.

    Google Scholar 

  19. H. Zima and B. Chapman Supercompilers for Parallel and Vector Computers, ACM Press, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chua-Huang Huang Ponnuswamy Sadayappan Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics