Hostname: page-component-7479d7b7d-c9gpj Total loading time: 0 Render date: 2024-07-13T19:42:48.301Z Has data issue: false hasContentIssue false

Communication lifting: fixed point computation for parallelism

Published online by Cambridge University Press:  07 November 2008

Willem G. Vree
Affiliation:
Department of Computer Systems, University of Amsterdam, Kruislaan 403, 1098 SJ Amsterdam, The Netherlands (e-mail: {wimv, pieter}@fwi.uva.nl
Pieter H. Hartel
Affiliation:
Department of Computer Systems, University of Amsterdam, Kruislaan 403, 1098 SJ Amsterdam, The Netherlands (e-mail: {wimv, pieter}@fwi.uva.nl
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Communication lifting is a program transformation that can be applied to a synchronous process network to restructure the network. This restructuring in theory improves sequential and parallel performance. The transformation has been formally specified and proved correct and it has been implemented as an automatic program transformation tool. This tool has been applied to a small set of programs consisting of synchronous process networks. For these networks communication lifting generates parallel programs that do not require locking. Measurements indicate performance gains in practice both with sequential and parallel evaluation. Communication lifting is a worthwhile optimization to be included in a compiler for a lazy functional language.

Type
Articles
Copyright
Copyright © Cambridge University Press 1995

References

Allison, L. (1986) A Practical Introduction to Denotational Semantics. Cambridge University Press.Google Scholar
Ashcroft, E. A. and Wadge, W. W. (1977) Lucid, a non procedural language with iteration. Communications of the ACM, 20(7):519526, July.CrossRefGoogle Scholar
Berry, G. and Cosserat, L. (1984) The ESTEREL synchronous programming language and its mathematical semantics. In: Brookes, S. D., Roscoe, A. W. and Winksel, G., eds., Seminar on concurrency. Lecture Notes in Computer Science 197, pp. 389448. Springer-Verlag.Google Scholar
Bird, R. S. and Wadler, P. L. (1988) Introduction to Functional Programming. Prentice Hall.Google Scholar
Burstall, R. M. and Darlington, J. (1977) A transformation system for developing recursive programs. Journal of the ACM, 24(1):4467, January.CrossRefGoogle Scholar
Caspi, P., Pilaud, D., Halbwachs, N. and Plaice, J. A. (1987) LUSTRE: A declarative language for programming synchronous systems. In: 14th Conference on the Principles of Programming Languages, pp. 178188. Munich, Germany,January.CrossRefGoogle Scholar
Darlington, J., Field, A. J., Harrison, P. G., Harper, D., Jouret, G. K., Kelly, P. H. J., Sephton, K. M. and Sharp, D. W. (1991) Structured parallel functional programming. In: Glaser, H. W. and Hartel, P. H., eds., 3rd Implementation of Functional Languages on Parallel Architectures, pp. 3151. Southampton, UK, June. (Also available as CSTR 91-07, Department of Electrical and Computer Science University of Southampton, UK.)Google Scholar
Ferguson, A. B. and Wadler, P. L. (1988) When will deforestation stop? In: Hall, C., Hughes, R. J. M. and O'Donnell, J. T., eds., Functional Programming, pp. 3956., Rothesay, Isle of Bute, Scotland, August. (Also Research report 89/R4, Department of Computer Science, University of Glasgow, Scotland.)Google Scholar
Gautier, T., le Gueric, P. and Besnard, L. (1987) SIGNAL: A declarative language for synchronous programming of real-time systems. In: Kahn, G., ed., 3rd Functional Programming Languages and Computer Architecture. Lecture Notes in Computer Science 274, pp. 257277. Springer-Verlag.Google Scholar
Gill, A., Launchbury, J. and Peyton Jones, S. L. (1993) A short cut to deforestation. In: 6th Functional Programming Languages and Computer Architecture, pp. 223232. Copenhagen, Denmark, June.Google Scholar
Hartel, P. H., Glaser, H. W. and Wild, J. M. (1991) Compilation of functional languages using flow graph analysis. Software – Practice and Experience, 24(2):127173, February.CrossRefGoogle Scholar
Hartel, P. H. and Vree, W. G. (1992) Arrays in a lazy functional language – a case study: the fast Fourier transform. In: Hains, G. and Mullin, L. M. R., eds., 2nd Arrays, Functional Languages, and Parallel Systems (ATABLE), pp. 5266. Publication 841, Dept. d'informatique et de recherche opérationelle, Univ. de Montréal, Canada, June.Google Scholar
Jeuring, J. (1992) Theories for algorithm calculation. PhD thesis, Department of Computer Science University of Utrecht, The Netherlands.Google Scholar
Kahn, G. (1974) The semantics of a simple language for parallel programming. In: Rosenfeld, J. L., ed., Information processing, pp. 471475. Stockholm, Sweden, August.Google Scholar
Kelly, P. H. J. (1989) Functional Programming for Loosely-coupled Multiprocessors. Pitman.Google Scholar
Langendoen, K. G. and Hartel, P. H. (1992) FCG: a code generator for lazy functional languages. In: Kastens, U. and Pfahler, P., eds., Compiler Construction (CC): Lecture Notes in Computer Science 641, pp. 278296. Springer-Verlag.CrossRefGoogle Scholar
Manna, Z., Ness, S. and Vuillemin, J. E. (1973) Inductive methods for proving properties of programs. Communications of the ACM, 16(8):491502, August.CrossRefGoogle Scholar
Peyton Jones, S. L. (1987) The Implementation of Functional Programming Languages. Prentice Hall.Google Scholar
Turner, D. A. (1985) Miranda: A non-strict functional language with polymorphic types. In: Jouannaud, J.-P., ed., 2nd Functional Programming Languages and Computer Architecture. Lecture Notes in Computer Science 201, pp. 116. Springer-Verlag.Google Scholar
Vree, W. G. (1989) Design considerations for a parallel reduction machine. PhD thesis, Department of Computer Science, University of Amsterdam, December.Google Scholar
Vuillemin, J. E. (1973) Proof techniques for recursive programs. PhD thesis, Computer Science Department, Stanford University, October. Technical report STAN-CS-73-393.Google Scholar
Wadler, P. L. (1988) Deforestation: Transforming programs to eliminate trees. In: Ganzinger, H., ed., European Symposium on Programming (ESOP 88). Lecture Notes in Computer Science 300, pp. 344358. Springer-Verlag.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.