Skip to main content
Log in

Compilation of Constraint Programs with Noncyclic and Cyclic Dependencies to Procedural Parallel Programs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

This paper reports on a compiler for translation of constraint specifications into procedural parallel programs. A constraint program in our system consists of a set of constraints and an input set containing a subset of the variables appearing in the constraints. The compiler described in this paper successfully compiles a substantially larger class of constraint specifications to efficient programs than did its predecessors. In particular the compiler has been extended to generate processor and memory efficient programs for cyclic constraints which can be resolved by computational relaxation methods. The paper first details the basic compilation process for noncyclic constraints. It then describes the additional steps in the compilation process which enable resolution of cyclic constraints to iterative computational processes and illustrates the process using derivation of a parallel program for solution of the Laplace equation as the example.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

REFERENCES

  1. William Leler, Constraint Programming Language, Addison-Wesley (1988).

  2. Vijay A. Saraswat, Concurrent Constraint Programming Languages, Ph.D. Thesis, Carnegie Mellon, School of Computer Science, Pittsburgh (1989).

    Google Scholar 

  3. Bjorn N. Freeman-Benson, A module compiler for Thinglab II, Proc. 1989 ACM Conf. on Object-Oriented Prog. Syst. Lang. Appl. (October 1989).

  4. B. Freeman-Benson and Alan Borning, The design and implementation of Kaleidoscope’ 90, a constraint imperative programming language, Computer Languages, IEEE Computer Society, pp. 174–180, (April 1992).

  5. Ajita John and J. C. Browne, Compilation of constraint systems to procedural parallel programs. In D. Sehr, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, (eds.), Workshop on Languages and Compilers for Parallel Computers, Vol. 1239, Springer-Verlag, Lecture Notes in Computer Science, pp. 501–518 (1996).

  6. Ajita John and J. C. Browne, Extraction of parallelism from constraint specifications, Proc. Intl. Conf. Parallel and Distribut. Proc. Techniques and Appl., Vol. III, pp. 1501–1512 (August 1996).

    Google Scholar 

  7. S. Lakshmivarahan and Sudarshan K. Dhall, Analysis and Design of Parallel Algorithms: Arithmetic and Matrix problems, Supercomputing and Parallel Processing, McGraw-Hill (1990).

  8. P. Newton and J. C. Browne, The CODE 2.0 graphical parallel programming environment, Proc. of the Int’l. Conf. on Supercomputing, pp. 167–177 (July 1992).

  9. J. J. Dongarra and D. C. Sorenson, SCHEDULE: Tools for developing and anylyzing parallel fortran programs, Technical Report 86, Argonne National Laboratory (November 1986).

  10. B. K. Szymanski, Parallel Functional Languages and Compilers, ACM Press (1991).

  11. G. Fox, M. Johnson, G. Lyzenga, S. Otto, J. Salmon, and D. Walker, Solving Problems on Concurrent Processors, Vol. I, Prentice Hall (1988).

  12. A. Osterhaug, Guide to Parallel Programming on Sequent Computer Systems, Prentice Hall, Englewood Cliffs, New Jersey (1989).

    Google Scholar 

  13. Doug Baldwin, A status report on CONSUL. In Nicolau Gelernter and David A. Padua, (eds., Languages and Compilers for Parallel Computing. MIT Press, (1990).

  14. B. N. Freeman-Benson, Constraint imperative programming, Technical Report 91-07-02, Department of Computer Science and Engineering, University of Washington (August 1991).

  15. Michael Mehl, Ralf Scheidhauer, and Christian Schulte. An Abstract machine for Oz, Progr. Lang. Implementations, Logics and Programs, Seventh Intl. Symposium, LNCS, Vol. 982, Springer-Verlag (September 1995).

  16. R. Eigenmann and W. Blume, An effectiveness study of parallelizing compiler techniques, Proc. Int. Conf. Parallel Processing, Vol. II, pp. 17–25 (1991).

    Google Scholar 

  17. D. A. Padua and M. Wolfe, Advanced compiler optimizations for supercomputers, Comm. ACM 12(29):1184–1201 (December 1986).

    Google Scholar 

  18. James R. Larus and Paul N. Hilfinger, Restructuring Lisp programs for concurrent execution. Proc. SIGPLAN’89 Conf. Progr. Lang. Design and Implementation, pp. 81–90 (1989).

  19. Luddy Harrison and David A. Padua, Parcel: Project for the automatic restructuring and concurrent evaluation of Lisp, Proc. Int’l. Conf. Supercomputing, pp. 527–538 (1988).

  20. Harvey Richardson, High Performance Fortrain: History, overview and current developments, Technical Report TMC 261, Thinking Machines Corporation.

  21. Utpal Banerjee, Loop Parallelization, A book series on loop transformations for restructuring compilers, Kluwer, 1994.

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

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

  24. Michael J. O’Donnell, Equational Logic as a Programming Language, MIT Press (1985).

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

  26. The Mathlab Group, Laboratory for Computer Science, MIT, Cambridge, Massachusetts, MACSYMA Reference Manual (January 1983).

  27. K. M. Chandy and Carl Kesselman, CC++: A declarative concurrent object oriented programming notation. Technical Report CS-TR-92-01, California Institute of Technology (1992).

  28. Raju Pandey and J. C. Browne, Event-based composition of concurrent programs, Workshop on Languages and Compilers for Parallel Computation (August 1993).

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

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

John, A., Browne, J.C. Compilation of Constraint Programs with Noncyclic and Cyclic Dependencies to Procedural Parallel Programs. International Journal of Parallel Programming 26, 65–119 (1998). https://doi.org/10.1023/A:1018791023659

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018791023659

Navigation