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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
C. A. R. Hoare, Communicating Sequential Processes,Commun. of the ACM 21(8):666–677 (August 1978).
A. J. Bernstein, Output Guards and Nondeterminism in Communicating Sequential Processes.ACM Trans. on Programming Lang. and Syst. 2(2):234–238 (April 1980).
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).
R. B. Kieburtz and A. Silberschatz, Comments on Communicating Sequential Processes,ACM Trans. on Programming Lang. and Syst. 1(2):218–225 (October 1979).
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).
A. Silberschatz, Communication and Synchronization in Distributed Systems,IEEE Trans. on Software Engineering SE-5(6):542–546 (November 1979).
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).
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).
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).
R. Bagrodia, Synchronization of Asynchronous Processes in CSP,ACM Trans. on Programming Lang. and Syst. 11(4):585–597 (October 1989).
P. C. Treleaven, D. R. Brownbridge, and R. P. Hopkins, Data-Driven and Demand-Driven Architecture,Computing Surveys 14(1):93–143 (March 1982).
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).
A. L. Davis and R. M. Keller, Data Flow Program Graphs,IEEE Computer 15(2):26–41 (February 1982).
J. B. Dennis, Data Flow Supercomputers,IEEE Computer 13(11):48–56 (November 1980).
Arvind and K. P. Gostelow, The U Interpreter,IEEE Computer 15(2):42–49 (February 1982).
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).
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).
S. Owicki and L. Lamport, Proving Liveness Properties of Concurrent Programs,ACM Trans. on Programming Lang. and Syst. 6(2):455–495 (July 1982).
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).
N. Francez,Fairness, Springer-Verlag, New York (1986).
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).
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).
D. E. Culler and Arvind, Resource Requirements of Data Flow Programs,15th Ann. Int'l. Symp. on Computer Architecture pp. 141–150 (1988).
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).
R. A. Iannucci, Toward a Data Flow/von Neumann Hybrid Architecture,15th Ann. Int'l. Symp. on Computer Architecture, pp. 131–140 (1988).
Author information
Authors and Affiliations
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
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
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01421675