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.
Preview
Unable to display preview. Download preview PDF.
References
Doug Baldwin. A status report on consul. In Nicolau Gelernter and Padua, editors, Languages and Compilers for Parallel Computing. MIT Press, 1990.
K.M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1989.
K.M. Chandy and S. Taylor. An Introduction to Parallel Programming. Jones and Bartlett, 1992.
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.
J.J. Dongarra and D.C. Sorenson. Schedule: Tools for developing and analyzing parallel fortran programs. Technical Report 86, Argonne National Laboratory, November 1986.
I. Foster and S. Taylor. Strand: New Concepts in Parallel Programming. Prentice Hall, 1990.
Ian Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995.
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.
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.
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.
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.
S. Lakshmivarahan and Sudarshan K. Dhall. Analysis and Design of Parallel Algorithms: Arithmetic and Matrix Problems. Supercomputing and Parallel Processing. McGraw-Hill, 1990.
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.
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.
Harvey Richardson. High performance fortran: History, overview and current developments. Technical Report TMC 261, Thinking Machines Corporation.
Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie Mellon, School of Computer Science, Pittsburgh, 1989.
Author information
Authors and Affiliations
Editor information
Rights 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