This Article 
 Bibliographic References 
 Add to: 
A Notation for Deterministic Cooperating Processes
August 1995 (vol. 6 no. 8)
pp. 863-871

Abstract—This paper proposes extensions of sequential programming languages for parallel programming that have the following features:

  • Dynamic Structures: The process structure is dynamic. Processes and variables can be created and deleted.

  • Paradigm Integration: The programming notation supports shared memory and message passing models.

  • Determinism: Demonstrating that a program is deterministic_all executions with the same input produce the same output—is straightforward. Programs can be written so that compilers can verify that the programs are deterministic. Nondeterministic constructs can be introduced in a sequence of refinement steps to obtain greater efficiency if required.

  • The ideas have been incorporated in an extension of Fortran, but the underlying sequential imperative language is not central to the ideas described here. A compiler for the Fortran extension, called Fortran M, is available by anonymous ftp from Argonne National Laboratory. Fortran M has been used for a variety of parallel applications.

    [1] American National Standards Institute Inc., The Programming Language Ada Reference Manual, Springer-Verlag, 1983.
    [2] R. Bagrodia and S. Mathur,“Efficient implementation of high-level parallel programs,” Proc. ASPLOS-IV, Apr. 1991.
    [3] R. Bagrodia and W. Liao,“Maisie user manual,” Tech. Report, Computer Science, UCLA, Los Angeles, Calif., 1990.
    [4] J. Boyle,R. Butler,T. Disz,B. Glickfield,E. Lusk,R. Overbeek,J. Patterson,, and R. Stevens,Portable Programs for Parallel Processors, Holt, Rinehart and Winston, 1987.
    [5] D.C. Cann,J.T. Feo,, and T.M. DeBoni,“Sisal 1, 2: High performance applicative computing,” Proc. Symp. Parallel and Distributed Processing, IEEE CS Press, Los Alamitos, Calif., 1990, pp. 612-616.
    [6] K.M. Chandy and S. Taylor,An Introduction to Parallel Programming, Jones and Bartlett, 1991.
    [7] A. Church and J.B. Rosser,“Some properties of conversion,” Trans. American Math. Soc., vol. 39, 1936, pp. 472-482.
    [8] E. Cohen and D. Jefferson,“Protection in the Hydra operating system,” Proc. Fifth Symp. Operating Systems Principles, ACM, 1975, pp. 141-150.
    [9] J.B. Dennis and E.C. Van Horn,“Programming semantics for multiprogrammed computations,” Comm. ACM, vol. 9, 1993, pp. 143-155.
    [10] A. Dinning and E. Shonberg,“An empirical comparison of monitoring algorithms for access anomalydetection,” Second ACM SIGPLAN Symp. on Principles and Practice of ParallelProgramming, 1990.
    [11] J.T. Feo, ed., “A comparative study of parallel programming languages: The salishanproblems,” Special Topics in Supercomputing, vol. 6, Elsevier Science Publishers B.V., The Netherlands.
    [12] B. Avalani, I. Foster, M. Xu, and A. Choudhary, "A Compilation System That Integrates HPF and Fortran M," Proc. Scalable High Performance Computing Conf. (SHPCC-94), pp. 293-300, May 1994.
    [13] I. Foster and S. Taylor, Strand: New Concepts in Parallel Programming. Prentice Hall, 1990.
    [14] G. Fox,S. Hiranandani,K. Kennedy,C. Koelbel,U. Kremer,C. Tseng,, and M. Wu,“Fortran D language specification,” Technical Report TR90-141, Computer Science, Rice Univ., Houston, Tex., 1990.
    [15] C.A.R. Hoare,“Communicating sequential processes,” Comm. of the ACM, vol. 21, no. 8, pp. 666-677, Aug. 1978.
    [16] A.K. Jones,“Protection in programmed systems,” PhD thesis, Computer Science, Carnegie-Mellon University, 1973.
    [17] B.W. Lampson,“Protection,” Proc. Fifth Ann. Princeton Conf. on Information Science Systems, 1971, pp. 437-443.
    [18] K. Li and P. Hudak, "Memory Coherence in Shared Virtual Memory Systems," ACM Trans. Computer Surveys, vol. 7, no. 4, Nov. 1989.
    [19] A.J. Martin,“The probe: An addition to communication primitives,” Information Processing Letters, vol. 20, 1985, pp. 125-130.
    [20] B.J. McLennan,Functional Programming: Practice and Theory,Reading, Mass.: Addison-Wesley, 1990.
    [21] C.L. Seitz,“Multicomputers,” Developments in Concurrency and Communication, C.A.R. Hoare, ed., Reading, Mass.: Addison-Wesley, 1991.
    [22] A. Silberschatz,J. Peterson,, and P. Galvin,Operating Systems Concepts,Reading, Mass.: Addison-Wesley, 1991.
    [23] V. Sunderam, “PVM: A Framework for Parallel Distributed Computing,” Concurrency: Practice and Experience, vol. 2, no. 4, pp. 315–339, , 1990.
    [24] Thinking Machines Corporation, CM Fortran Reference Manual, Thinking Machines, Cambridge, Mass., 1989.

    Index Terms:
    parallel programming languages, determinism, functional programming, multicomputers, debugging.
    K. Mani Chandy, Ian Foster, "A Notation for Deterministic Cooperating Processes," IEEE Transactions on Parallel and Distributed Systems, vol. 6, no. 8, pp. 863-871, Aug. 1995, doi:10.1109/71.406962
    Usage of this product signifies your acceptance of the Terms of Use.