Abstract
This paper presents source-level transformations that improve the performance of programs using synchronous and asynchronous message passing primitives, including remote call to an active process (rendezvous). It also discusses the applicability of these transformations to shared memory and distributed environments. The transformations presented reduce the need for context switching, simplify the specific form of communication, and/or reduce the complexity of the given form of communication. One additional transformation actually increases the number of processes as well as the number of context switches to improve program performance. These transformations are shown to be generalizable. Results of hand-applying the transformations to SR programs indicate reductions in execution time exceeding 90% in many cases. The transformations also apply to many commonly occurring synchronization patterns and to other concurrent programming languages such as Ada and Concurrent C. The long term goal of this effort is to include such transformations as an otpimization step, performed automatically by a compiler.
Similar content being viewed by others
References
G. R. Andrews and F. B. Schneider, Concepts and Notation for Concurrent Programming,ACM Computing Surveys,15(1):3–43 (March 1983)
D. Padua, D. Kuck, and D. Lawrie, High-speed Multiprocessors and Compilation Techniques,IEEE Transactions on Computers,C-29(9):763–776 (September 1980).
M. J. Wolfe, Advanced Loop Interchange,Proc. of Int'l. Conf. on Parallel Procesing, pp. 536–543 (1986).
M. J. Wolfe, Optimizing Supercompiles for Supercomputers, Technical Report DCS Report No. UIUCDCS-R-82-1105, University of Illinois at Urbana-Champaign, PhD.. Dissertation (October 1982).
A. Burns, A. M. Lister, and A. L. Wellings,A Review of Ada Tasking, Lecture Notes in Computer Science, Volume 262, Springer-Verlag (1987).
A. N. Habermann and I. R. Nassi, Efficient Implementation of Ada Tasks, Technical Report CMU-CS-80-103, Carnegie-Mellon University, Department of Computer Science (January 1980).
E. S Roberts, A. Evans, C. R. Morgan, and E. M. Clarke, Task Management in Ada—A Critical Evaluation for Real-time Multiprocessors,SOFTWARE-Practice and Experience,11:1019–1051 (1981).
J. Schauer, Vereinfachung von Prozess-systemen Durch Sequentialisierung, Technical Report Bericht 30/82, Universität Karlsruhe, Institut für Informatik II, Dissertation (1982)
G. R. Andrews, A method for Solving Synchronization Prolbems,Science of Computer Programming,13(1):1–21 (December 1989).
G. R. Andrews and R. A. Olsson, Report on the SR Programming Language, Version 1.1. Technical Report CSE-89-11, University of California, Davis, Division of Computer Science (May 1989).
G. R. Andrews, R. A. Olsson, M. Coffin, I. Elshoff, K. Nilsen, T. Purdin, and G. Townsend, An Overview of the SR Language and Implementation,ACM Transactions on Programming Languages and Systems,10(1):51–86 (January 1988).
American National Standards Institute,Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815A (1983).
N. Gehani and W. D. Roome,The Concurrent C Programming Language, Silicon Press, New Jersey 1989.
C. M. McNamee, Toward the Optimization of Interprocess Communication Mechanisms, Technical Report CSE-89-24, University of California, Davis, Division of Computer Science (September 1989).
T. Hikita and K. Ishihata, A Method of Program Transformation Between Variable Sharing and Message Passing,SOFTWARE-Practice and Experience,15(7):677–692 (July 1985).
P. N. Hilfinger, Implementation Strategies for Ada Tasking Idioms,Proc. of the AdaTEC Conference on Ada, pp. 26–30 (October 1982).
A. Jones and A. Ardo, Comparative Efficiency of Different Implementations of the Ada Rendezvous,Proc. of the AdaTEC Conference on Ada, pp. 212–223 (October 1982).
S. Vestal, Mixing Coroutines and Processes in an Ada Tasking Implementation,Ada Letters,9(2):90–101 (March/April 1989).
D. R. Stevenson, Algorithms for Translating Ada Multitasking,SIGPLAN Notices,15(11):166–175 (November 1980).
P. J. Courtois, F. Heymans, and D. L. Parnas, Concurrent Control with Readers and Writers,Communications of the ACM,14(10):667–668 (October 1971).
R. A. Olsson, Issues in Distributed Programming Languages: The Evolution of SR, Technical Report TR 86-21, University of Arizona, Department of Computer Science, Ph.D. Dissertation (August 1986).
T. D. Newton, An Implementation of Ada Tasking, Technical Report CMU-87-169, Carnegie-Mellon University, Department of Computer Science (October 1987).
R. A. Olsson, Using SR for Discrete Event Simulation: A Study in Concurrent Programming.SOFTWARE-Practice and Experience 20(12):1187–1208 (December 1990).
M. S. Atkins and R. A. Olsson, Performance of Multitasking and Synchronization Mechanisms in the Programming Language SR,SOFTWARE-Practice and Experience,18(9):879–895 (September 1988).
R. M. Clapp, L. Duchesneau, R. A. Volz, T. N. Mudge, and T. Schultze, Toward Realtime Performance Benchmarks for Ada,Communications of the ACM,29(8):760–781 (1986).
J. Hennessy, Symbolic Debugging of Optimized Code,ACM Transactions on Programming Languages and Systems,4(3):323–344 (July 1982).
H. Garcia-Molina, F. Germano, and W. H. Kohler, Debugging a Distributed Computing System,IEEE Transactions on Software Engineering,SE-10(2):210–219 (March 1984).
Author information
Authors and Affiliations
Additional information
This work was supported by NSF under Grant Number CCR88-10617.
Rights and permissions
About this article
Cite this article
McNamee, C.M., Olsson, R.A. Transformations for optimizing interprocess communication and synchronization mechanisms. Int J Parallel Prog 19, 357–387 (1990). https://doi.org/10.1007/BF01407906
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01407906