Static and Dynamic Processor Allocation for Higher-Order Concurrent Languages

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.

[1]  F. Nielson,et al.  From CML to process Algebras , 1993 .

[2]  Didier Parigot,et al.  Techniques for Improving Grammar Flow Analysis , 1990, ESOP.

[3]  Flemming Nielson,et al.  From CML to Process Algebras (Extended Abstract) , 1993, CONCUR.

[4]  Flemming Nielson,et al.  Type and Behaviour Reconstruction for Higher-Order Concurrent Programs , 1997, J. Funct. Program..

[5]  Kim G. Larsen,et al.  The Fork Calculus , 1993, Nord. J. Comput..

[6]  Eric Goubault,et al.  Semantics and Analysis of Linda-Based Languages , 1993, WSA.

[7]  Charles E. McDowell,et al.  A Practical Algorithm for Static Analysis of Parallel Programs , 1989, J. Parallel Distributed Comput..

[8]  Gen-Huey Chen,et al.  Reverse reachability analysis: A new technique for deadlock detection on communicating finite state machines , 1993, Softw. Pract. Exp..

[9]  Robert E. Tarjan,et al.  Iterative algorithms for global flow analysis , 1976 .

[10]  Prateek Mishra,et al.  Operational and Algebraic Semantics for Facile: A Symmetric Integration of Concurrent and Functional Programming , 1990, ICALP.

[11]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[12]  Flemming Nielson,et al.  Constraints for Polymorphic Behaviours of Concurrent ML , 1994, CCL.

[13]  Nicolas Mercouroff,et al.  An Algorithm for Analyzing Communicating Processes , 1991, MFPS.

[14]  Flemming Nielson,et al.  Higher-order concurrent programs with finite communication topology (extended abstract) , 1994, POPL '94.

[15]  John H. Reppy Concurrent ML: Design, Application and Semantics , 1993, Functional Programming, Concurrency, Simulation and Automated Reasoning.

[16]  Robert Paige,et al.  Program Derivation by Fixed Point Computation , 1989, Sci. Comput. Program..

[17]  ESOP '90 , 1990, Lecture Notes in Computer Science.

[18]  Suresh Jagannathan,et al.  Analyzing stores and references in a parallel symbolic language , 1994, LFP '94.