Skip to main content

Compilation of constraint systems to procedural parallel programs

  • New Languages and New Compiler Techniques
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1996)

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

Abstract

This paper describes the first results from research on the compilation of constraint systems into task level parallel programs in a procedural language. This is the only research, of which we are aware, which attempts to generate efficient parallel programs for numerical computations from constraint systems. Computations are expressed as constraint systems. A dependence graph is derived from the constraint system and a set of input variables. The dependence graph, which exploits the parallelism in the constraints, is mapped to the target language CODE, which represents parallel computation structures as generalized dependence graphs. Finally, parallel C programs are generated. The granularity of the derived dependence graphs depends upon the complexity of the operations represented in the type system of the constraint specification language. To extract parallel programs of appropriate granularity, the following features have been included: (i) modularity, (ii) operations over structured types as primitives, (iii) definition of sequential C functions. A prototype of the compiler has been implemented. The execution environment or software architecture is specified separately from the constraint system. The domain of matrix computations has been targeted for applications. Some examples have been programmed. Initial results are very encouraging.

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. Doug Baldwin. A status report on consul. In Nicolau Gelernter and Padua, editors, Languages and Compilers for Parallel Computing. MIT Press, 1990.

    Google Scholar 

  2. K.M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1989.

    Google Scholar 

  3. K.M. Chandy and S. Taylor. An Introduction to Parallel Programming. Jones and Bartlett, 1992.

    Google Scholar 

  4. T.S. Collins and J.C. Browne. Matrix++: An object-oriented environment for parallel high-perfomance matrix computations. In Proc. of the Hawaii Intl. Conf. on Systems and Software, 1995.

    Google Scholar 

  5. J.J. Dongarra and D.C. Sorenson. Schedule: Tools for developing and analyzing parallel fortran programs. Technical Report 86, Argonne National Laboratory, November 1986.

    Google Scholar 

  6. I. Foster and S. Taylor. Strand: New Concepts in Parallel Programming. Prentice Hall, 1990.

    Google Scholar 

  7. Ian Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995.

    Google Scholar 

  8. B. Freeman-Benson and Alan Borning. The design and implementation of kaleidoscope '90, a constraint imperative programming language. In Computer Languages, pages 174–180. IEEE Computer Society, April 1992.

    Google Scholar 

  9. Bjorn N. Freeman-Benson. A module compiler for thinglab ii. In Proc. 1989 ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, October 1989.

    Google Scholar 

  10. A1 Geist, Adam Beguelin, Jack Dongarra, Weicheng Jiang, Robert Manchek, and Vaidy Sunderam. PVM: Parallel Virtual Machine:A Users' Guide and Tutorial for Networked Parallel Computing. MIT Press, 1994.

    Google Scholar 

  11. Ajita John and J.C. Browne. Extraction of parallelism from constraint specifications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, volume II, pages 1501–1512, August 1996.

    Google Scholar 

  12. S. Lakshmivarahan and Sudarshan K. Dhall. Analysis and Design of Parallel Algorithms: Arithmetic and Matrix Problems. Supercomputing and Parallel Processing. McGraw-Hill, 1990.

    Google Scholar 

  13. Michael Mehl, Ralf Scheidhauer, and Christian Schulte. An abstract machine for oz. In Programming Languages, Implementations, Logics and Programs, Seventh Intl. Symposium, LNCS, number 982. Springer-Verlag, September 1995.

    Google Scholar 

  14. P. Newton and J. C. Browne. The code 2.0 graphical parallel programming environment. In Proc. of the Intl. Conf. on Supercomputing, pages 167–177, 1992.

    Google Scholar 

  15. Harvey Richardson. High performance fortran: History, overview and current developments. Technical Report TMC 261, Thinking Machines Corporation.

    Google Scholar 

  16. Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie Mellon, School of Computer Science, Pittsburgh, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

David Sehr Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

John, A., Browne, J.C. (1997). Compilation of constraint systems to procedural parallel programs. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1996. Lecture Notes in Computer Science, vol 1239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017272

Download citation

  • DOI: https://doi.org/10.1007/BFb0017272

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63091-3

  • Online ISBN: 978-3-540-69128-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics