Skip to main content
Log in

Transformations for optimizing interprocess communication and synchronization mechanisms

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

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.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. G. R. Andrews and F. B. Schneider, Concepts and Notation for Concurrent Programming,ACM Computing Surveys,15(1):3–43 (March 1983)

    Google Scholar 

  2. D. Padua, D. Kuck, and D. Lawrie, High-speed Multiprocessors and Compilation Techniques,IEEE Transactions on Computers,C-29(9):763–776 (September 1980).

    Google Scholar 

  3. M. J. Wolfe, Advanced Loop Interchange,Proc. of Int'l. Conf. on Parallel Procesing, pp. 536–543 (1986).

  4. 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).

  5. A. Burns, A. M. Lister, and A. L. Wellings,A Review of Ada Tasking, Lecture Notes in Computer Science, Volume 262, Springer-Verlag (1987).

  6. 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).

  7. 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).

    Google Scholar 

  8. J. Schauer, Vereinfachung von Prozess-systemen Durch Sequentialisierung, Technical Report Bericht 30/82, Universität Karlsruhe, Institut für Informatik II, Dissertation (1982)

  9. G. R. Andrews, A method for Solving Synchronization Prolbems,Science of Computer Programming,13(1):1–21 (December 1989).

    Google Scholar 

  10. 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).

    Google Scholar 

  11. 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).

    Google Scholar 

  12. American National Standards Institute,Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815A (1983).

  13. N. Gehani and W. D. Roome,The Concurrent C Programming Language, Silicon Press, New Jersey 1989.

    Google Scholar 

  14. 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).

    Google Scholar 

  15. 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).

    Google Scholar 

  16. P. N. Hilfinger, Implementation Strategies for Ada Tasking Idioms,Proc. of the AdaTEC Conference on Ada, pp. 26–30 (October 1982).

  17. 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).

  18. S. Vestal, Mixing Coroutines and Processes in an Ada Tasking Implementation,Ada Letters,9(2):90–101 (March/April 1989).

    Google Scholar 

  19. D. R. Stevenson, Algorithms for Translating Ada Multitasking,SIGPLAN Notices,15(11):166–175 (November 1980).

    Google Scholar 

  20. 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).

    Google Scholar 

  21. 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).

  22. T. D. Newton, An Implementation of Ada Tasking, Technical Report CMU-87-169, Carnegie-Mellon University, Department of Computer Science (October 1987).

  23. R. A. Olsson, Using SR for Discrete Event Simulation: A Study in Concurrent Programming.SOFTWARE-Practice and Experience 20(12):1187–1208 (December 1990).

    Google Scholar 

  24. 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).

    Google Scholar 

  25. 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).

    Google Scholar 

  26. J. Hennessy, Symbolic Debugging of Optimized Code,ACM Transactions on Programming Languages and Systems,4(3):323–344 (July 1982).

    Google Scholar 

  27. 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).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported by NSF under Grant Number CCR88-10617.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Key Words

Navigation