Abstract
We describe the compilation of the non-strict, implicitly parallel language pH to symmetric multiprocessors (SMPs). First, we introduce the λs calculus as a robust foundation for the semantics of pH. Next, we define a Shared-Memory Threaded (SMT) abstract machine that captures the essence of our SMP compilation target. Finally, we describe a syntax directed translation of λs to SMT instructions. The paper makes three important contributions: it is the first implementation of pH based on a direct semantics of barriers; the compilation rules generate code from λs without using intermediate dataflow graphs; and the multithreaded code emitted by the compiler uses suspensive threads.
This research was performed entirely at the MIT Laboratory for Computer Science and was supported by ARPA contract DABT63-95-C-0150.
Preview
Unable to display preview. Download preview PDF.
References
S. Aditya. Normalizing Strategies for Multithreaded Interpretation and Compilation of Non-Strict Languages. CSG Memo 374, MIT Laboratory for Computer Science, Cambridge, MA, May 1995.
S. Aditya, Arvind, and J.E. Stoy. Semantics of Barriers in a Non-Strict, Implicitly-Parallel Language. In Proceedings of the 7th ACM Conference on Functional Programming and Computer Architecture, La Jolla, CA, June 1995.
A.W. Appel. Compiling with Continuations. Cambridge University Press, 1992.
Z.M. Ariola and Arvind. Compilation of Id. In Proceedings of the Fourth Workshop on Languages and Compilers for Parallel Computing Semantics Based Program Manipulation, Santa Clara, CA, August 1991.
Arvind, A. Caro, J. Maessen, and S. Aditya. A Multithreaded Substrate and Compilation Model for the Implicitly Parallel Language pH. CSG Memo 382, MIT Laboratory for Computer Science, Cambridge, MA, July 1996.
Arvind, J. Maessen, R.S. Nikhil, and J.E. Stoy. λs: A λ-calculus with Letrecblocks, Constants, Barriers, and Side-effects. CSG Memo 393, MIT Laboratory for Computer Science, October 1996.
D.E. Culler, A. Sah, K.E. Schauser, T. von Eicken, and J. Wawrzynek. Fine Grain Parallelism with Minimal Hardware Support: A Compiler-Controlled Threaded Abstract Machine. In Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, Santa Clara, CA, April 1991.
C. Flanagan and R.S. Nikhil. pHluid: The design of a Parallel Functional Language Implementation. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming, Philadelphia, PA, May 1996.
P. Hudak, S. Peyton Jones, and P. Wadler (editors). Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.2). ACM SIGPLAN Notices 27(5), May 1992.
S.L. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall International, London, 1987.
K.R. Traub. Implementation of Non-Strict Functional Programming Languages. MIT Press, 1991.
K.R. Traub, G.M. Papadopoulos, M.J. Beckerle, J.E. Hicks, and J. Young. Overview of the Monsoon Project. In Proceedings of the 1991 IEEE International Conference on Computer Design, Cambridge, MA, October 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Arvind, Caro, A., Maessen, JW., Aditya, S. (1997). A multithreaded substrate and compilation model for the implicitly parallel language pH. 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/BFb0017273
Download citation
DOI: https://doi.org/10.1007/BFb0017273
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