Toward a Definition of and Linguistic Support for Partial Quiescence

  • Billy Yan-Kit Man
  • Hiu Ning (Angela) Chan
  • Andrew J. Gallagher
  • Appu S. Goundan
  • Aaron W. Keen
  • Ronald A. Olsson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4128)


The global quiescence of a distributed computation (or distributed termination detection) is an important problem. Some concurrent programming languages and systems provide global quiescence detection as a built-in feature so that programmers do not need to write special synchronization code to detect quiescence. This paper introduces partial quiescence (PQ), which generalizes quiescence detection to a specified part of a distributed computation. Partial quiescence is useful, for example, when two independent concurrent computations that both rely on global quiescence need to be combined into a single program. The paper describes how we have designed and implemented a PQ mechanism within an experimental version of the JR concurrent programming language. Our early results are promising qualitatively and quantitatively.


Matrix Multiplication Process Group Activation Message Barrier Synchronization Time Automaton Model 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andrews, G.R., Olsson, R.A.: The SR Programming Language: Concurrency in Practice. The Benjamin/Cummings Publishing Co., Redwood City, CA (1993)MATHGoogle Scholar
  2. 2.
    Andrews, G.R., Olsson, R.A., Coffin, M., Elshoff, I., Nilsen, K., Purdin, T., Townsend, G.: An overview of the SR language and implementation. ACM Transactions on Programming Languages and Systems 10(1), 51–86 (1988)CrossRefGoogle Scholar
  3. 3.
    Dijkstra, E.W., Scholten, C.S.: Termination detection for disffusing computations. Inform. Process. Lett. 11(1), 1–4 (1980)MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Francez, N.: Distributed termination. ACM Trans. Programming Languages and Systems 2(1), 42–55 (1980)MATHCrossRefGoogle Scholar
  5. 5.
    Helary, J., Jard, C., Plouzeau, N., Raynal, M.: Detection of stable properties in distributed applications. In: PODC 1987: Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing, pp. 125–136 (1987)Google Scholar
  6. 6.
  7. 7.
    Keen, A.W., Ge, T., Maris, J.T., Olsson, R.A.: JR: Flexible distributed programming in an extended Java. ACM Transactions on Programming Languages and Systems, 578–608 (May 2004)Google Scholar
  8. 8.
    Kermarrec, Y., Pautet, L., Tardieu, S.: GARLIC: generic Ada reusable library for interpartition communication. In: TRI-Ada 1995: Proceedings of the Conference on TRI-Ada 1995, pp. 263–269. ACM Press, New York (1995)Google Scholar
  9. 9.
    Kobayashi, N.: A partially deadlock-free typed process calculus. ACM Trans. Program. Lang. Syst. 20(2), 436–482 (1998)CrossRefGoogle Scholar
  10. 10.
    Liang, L., Chanson, S.T., Neufeld, G.W.: Process groups and group communications: classifications and requirements. IEEE Computer 23(2), 56–66 (1990)Google Scholar
  11. 11.
    Luecke, G.R., Zou, Y., Coyle, J., Hoekstra, J., Kraeva, M.: Deadlock detection in MPI programs. Concurrency and Computation: Practice and Experience 14, 911–932 (2002)MATHCrossRefGoogle Scholar
  12. 12.
    Man, B.Y.-K.: The design and implementation of partial quiescence in a concurrent programming language. Master’s thesis, University of California, Davis, Department of Computer Science (March 2006),
  13. 13.
    Masticola, S.P., Ryder, B.G.: Static infinite wait anomaly detection in polynomial time. In: Proceedings of 1990 International Conference on Parallel Processing, University Park PA, pp. II.78–II.87 (1990)Google Scholar
  14. 14.
    Matocha, J., Camp, T.: A taxonomy of distributed termination detection algorithms. The Journal of Systems and Software 43(3), 207–221 (1998)CrossRefGoogle Scholar
  15. 15.
    Mattern, F.: Global quiescence detection based on credit distribution and recovery. Inf. Process. Lett. 30(4), 195–200 (1989)CrossRefMathSciNetGoogle Scholar
  16. 16.
    Nestmann, U.: What is a ‘good’ encoding of guarded choice? Journal of Information and Computation 156, 287–319 (2000)MATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Okano, K., Hattori, S., Yamamoto, A., Higashino, T., Taniguchi, K.: Specification of real-time systems using a timed automata model with shared variables and verification of partial-deadlock freeness. In: ICPP Workshop, pp. 576–581 (1999)Google Scholar
  18. 18.
    Olsson, R.A., Keen, A.W.: The JR Programming Language: Concurrent Programming in an Extended Java. Kluwer Academic Publishers, Inc., Dordrecht (2004)Google Scholar
  19. 19.
    Sinha, A.B., Kalé, L.V., Ramkumar, B.: A dynamic and adaptive quiescence detection algorithm. Technical Report 93-11, Department of Computer Science, University of Illinois, Urbana-Champaign (1993)Google Scholar
  20. 20.
    Vetter, J.S., de Supinski, B.D.: Dynamic software testing of MPI applications with Umpire. Technical report, Lawrence Livermore National Laboratory (2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Billy Yan-Kit Man
    • 1
  • Hiu Ning (Angela) Chan
    • 1
  • Andrew J. Gallagher
    • 1
  • Appu S. Goundan
    • 1
  • Aaron W. Keen
    • 2
  • Ronald A. Olsson
    • 1
  1. 1.Department of Computer ScienceUniversity of California, DavisDavisUSA
  2. 2.Computer Science DepartmentCalifornia Polytechnic State UniversitySan Luis ObispoUSA

Personalised recommendations