Abstract
Starting from the process algebra for Concurrent ML we develop two program analyses that facilitate the intelligent placement of processes on processors. Both analyses are obtained by augmenting an inference system for counting the number of channels created, the number of input and output operations performed, and the number of processes spawned by the execution of a Concurrent ML program. One analysis provides information useful for making a static decision about processor allocation; to this end it accumulates the communication cost for all processes with the same label. The other analysis provides information useful for making a dynamic decision about processor allocation; to this end it determines the maximum communication cost among processes with the same label. We prove the soundness of the inference system and the two analyses and demonstrate how to implement them; the latter amounts to transforming the syntax-directed inference problems to instances of syntax-free equation solving problems.
The full paper appears as DAIMI-PB 483 and electronic copies are obtainable via http://www.daimi.aau.dk/~bra8130/LOMAPS.html using WWW.
Chapter PDF
Similar content being viewed by others
References
T.Amtoft, F.Nielson, H.R.Nielson: Type and behaviour reconstruction for higher-order concurrent programs. Manuscript.
J. Cai, R. Paige: Program Derivation by Fixed Point Computation. Science of Computer Programming 11, pp. 197–261, 1989.
R. Cridlig, E.Goubault: Semantics and analysis of Linda-based languages. Proc. Static Analysis, Springer Lecture Notes in Computer Science 724, 1993.
C.E:McDowell: A practical algorithm for static analysis of parallel programs. Journal of parallel and distributed computing 6, 1989.
A.Giacalone, P.Mishra, S.Prasad: Operational and Algebraic Semantics for Facile: a Symmetric Integration of Concurrent and Functional Programming. Proc. ICALP'90, Springer Lecture Notes in Computer Science 443, 1990.
M.S.Hecht: Flow Analysis of Computer Programs, North-Holland, 1977.
Y.-C.Hung, G.-H.Chen: Reverse reachability analysis: a new technique for deadlock detection on communicating finite state machines. Software — Practice and Experience 23, 1993.
S.Jagannathan, S.Week: Analysing stores and references in a parallel symbolic language. Proc. L&FP, 1994.
M. Jourdan, D. Parigot: Techniques for Improving Grammar Flow Analysis. proc. ESOP'90, Springer Lecture Notes in Computer Science 432, pp. 240–255, 1990.
N. Mercouroff: An algorithm for analysing communicating processes. Proc. of MFPS, Springer Lecture Notes in Computer Science 598, 1992.
F.Nielson, H.R.Nielson: From CML to Process Algebras. Proc. CONCUR'93, Springer Lecture Notes in Computer Science 715, 1993.
H.R.Nielson, F.Nielson: Higher-Order Concurrent Programs with Finite Communication Topology. Proc. POPL'94, pp. 84–97, ACM Press, 1994.
F.Nielson, H.R.Nielson: Constraints for Polymorphic Behaviours for Concurrent ML. Proc. CCL'94, Springer Lecture Notes in Computer Science 845, 1994.
J.H.Reif, S.A.Smolka: Dataflow analysis of distributed communicating processes. International Journal of Parallel Programs 19, 1990.
J.R. Reppy: Concurrent ML: Design, Application and Semantics. Springer Lecture Notes in Computer Science 693, pp. 165–198, 1993.
R.Tarjan: Iterative Algorithms for Global Flow Analysis. In J.Traub (ed.), Algorithms and Complexity, pp. 91–102, Academic Press, 1976.
B.Thomsen. Personal communication, May 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nielson, H.R., Nielson, F. (1995). Static and dynamic processor allocation for higher-order concurrent languages. In: Mosses, P.D., Nielsen, M., Schwartzbach, M.I. (eds) TAPSOFT '95: Theory and Practice of Software Development. CAAP 1995. Lecture Notes in Computer Science, vol 915. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59293-8_222
Download citation
DOI: https://doi.org/10.1007/3-540-59293-8_222
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59293-8
Online ISBN: 978-3-540-49233-7
eBook Packages: Springer Book Archive