Skip to main content
Log in

Attempting guards in parallel: A data flow approach to execute generalized guarded commands

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Earlier approaches to execute generalized alternative/repetitive commands of Communicating Sequential Processes (CSP) attempt the selection of guards in a sequential order. Also, these implementations are based on either shared memory or message passing multiprocessor systems. In contrast, we propose an implementation of generalized guarded commands using the data-driven model of computation. A significant feature of our implementation is that it attempts the selection of the guards of a process in parallel. We prove that our implementation is faithful to the semantics of the generalized guarded commands. Further, we have simulated the implementation using discrete-event simulation and measured various performance parameters. The measured parameters are helpful in establishing the fairness of our implementation and its superiority, in terms of efficiency and the parallelism exploited, over other implementations. The simulation study is also helpful in identifying various issues that affect the performance of our implementation. Based on this study, we have proposed an adaptive algorithm which dynamically tunes the extent of parallelism in the implementation to achieve an optimum level of performance.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. C. A. R. Hoare, Communicating Sequential Processes,Commun. of the ACM 21(8):666–677 (August 1978).

    Google Scholar 

  2. A. J. Bernstein, Output Guards and Nondeterminism in Communicating Sequential Processes.ACM Trans. on Programming Lang. and Syst. 2(2):234–238 (April 1980).

    Google Scholar 

  3. G. N. Buckley and A. Silberschatz, An Effective Implementation for the Generalized Input Output Construct of CSP,ACM Trans. on Programming Lang. and Syst.5(2):233–235 (1983).

    Google Scholar 

  4. R. B. Kieburtz and A. Silberschatz, Comments on Communicating Sequential Processes,ACM Trans. on Programming Lang. and Syst. 1(2):218–225 (October 1979).

    Google Scholar 

  5. S. Ramesh, A New Implementation of CSP with Ourput Guards,Proc. of the 7th Int'l. Conf. on Distr. Comput. Syst., pp. 266–273 (1987).

  6. A. Silberschatz, Communication and Synchronization in Distributed Systems,IEEE Trans. on Software Engineering SE-5(6):542–546 (November 1979).

    Google Scholar 

  7. R. J. R. Back, P. Ekslund, and R. Kurki-Suonia. A Fair and Efficient Implementation of CSP with Output Guards, Technical Report, Ser. A, No. 38, Abo Akademic, Finland (1984).

    Google Scholar 

  8. R. Bagrodia, A Distributed Algorithm to Implement the Generalized Alternative Command in CSP,Proc. of the 6th Int'l. Conf. on Distr. Comput. Syst., pp. 422–427 (1986).

  9. R. N. Fujimoto and Hwa-chung Feng, A Shared Memory Algorithm and Proof for the Generalized Alternative Construct in CSP.IJPP 16(3):215–241 (1987).

    Google Scholar 

  10. R. Bagrodia, Synchronization of Asynchronous Processes in CSP,ACM Trans. on Programming Lang. and Syst. 11(4):585–597 (October 1989).

    Google Scholar 

  11. P. C. Treleaven, D. R. Brownbridge, and R. P. Hopkins, Data-Driven and Demand-Driven Architecture,Computing Surveys 14(1):93–143 (March 1982).

    Google Scholar 

  12. J. R. Gurd, I. Watson, and C. C. Kirkham, The Manchester Prototype Data Flow Computer,Comm. of the ACM 28(1):34–52 (January 1985).

    Google Scholar 

  13. A. L. Davis and R. M. Keller, Data Flow Program Graphs,IEEE Computer 15(2):26–41 (February 1982).

    Google Scholar 

  14. J. B. Dennis, Data Flow Supercomputers,IEEE Computer 13(11):48–56 (November 1980).

    Google Scholar 

  15. Arvind and K. P. Gostelow, The U Interpreter,IEEE Computer 15(2):42–49 (February 1982).

    Google Scholar 

  16. A. Gottlieb, R. Grishman, C. P. Kruskal, L. Rudolph, and M. Snir, The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer,IEEE Trans. on Computers C-32(2):175–189 (February 1983).

    Google Scholar 

  17. L. M. Patnaik and J. Basu, Two Tools for Interprocess Communication in Distributed Data Flow Systems,The Computer Journal 29(6): 506–521 (December 1986).

    Google Scholar 

  18. S. Owicki and L. Lamport, Proving Liveness Properties of Concurrent Programs,ACM Trans. on Programming Lang. and Syst. 6(2):455–495 (July 1982).

    Google Scholar 

  19. D. A. Reed, A. D. Malony, and B. D. McCredie, Parallel Discrete Event Simulation: A Shared Memory Approach,Proc. of the ACM Sigmetrics Conf. on Measuring and Modeling Computer Systems 15(1):36–38 (May 1987).

    Google Scholar 

  20. N. Francez,Fairness, Springer-Verlag, New York (1986).

    Google Scholar 

  21. J. R. Gurd and I. Watson, Data-Driven Systems for High Speed Parallel Computing: Part 2: Hardware Design,Computer Design, pp. 97–106 (July 1980).

  22. J. G. D. de Silva and J. V. Woods, Design of a Processing System for the Manchester Data Flow Computer,IEEE Proceedings 128(5):218–224 (September 1981).

    Google Scholar 

  23. D. E. Culler and Arvind, Resource Requirements of Data Flow Programs,15th Ann. Int'l. Symp. on Computer Architecture pp. 141–150 (1988).

  24. H. Feng and R. M. Fujimoto, A Shared Memory Algorithm and Performance Evaluation of the Generalized Alternative Construct in CSP,Int'l. Conf. on Parallel Processing, pp. 176–180 (1988).

  25. R. A. Iannucci, Toward a Data Flow/von Neumann Hybrid Architecture,15th Ann. Int'l. Symp. on Computer Architecture, pp. 131–140 (1988).

Download references

Author information

Authors and Affiliations

Authors

Additional information

The first author's work was supported by a MICRONET, Network Centers of Excellence, research grant. Support for the second author is from the NSERC (Canada) Grant. The last author's work was supported by grants from NSERC (Canada) and FCAR (Quebec).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Govindarajan, R., Yu, S. & Lakshmanan, V.S. Attempting guards in parallel: A data flow approach to execute generalized guarded commands. Int J Parallel Prog 21, 225–268 (1992). https://doi.org/10.1007/BF01421675

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01421675

Key Words

Navigation