Coordinating Phased Activities while Maintaining Progress

  • Tiago Cogumbreiro
  • Francisco Martins
  • Vasco Thudichum Vasconcelos
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7890)


In order to develop reliable applications for parallel machines, programming languages and systems need to provide for flexible parallel programming coordination techniques. Barriers, clocks and phasers constitute promising synchronisation mechanisms, but they exhibit intricate semantics and allow writing programs that can easily deadlock. We present an operational semantics and a type system for a fork/join programming model equipped with a flexible variant of phasers. Our proposal allows for a precise control over the maximum number of synchronisation steps each task can be ahead of others. A type system ensures that programs do not deadlock, even when they use multiple phasers.


Type System Operational Semantic Arrival Status Typing Rule Local View 
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.


  1. 1.
    Aditya, S., Stoy, J.E., Arvind: Semantics of barriers in a non-strict, implicitly-parallel language. In: Proceedings of FPCA 1995, pp. 204–215. ACM (1995)Google Scholar
  2. 2.
    Agarwal, S., Barik, R., Sarkar, V., Shyamasundar, R.K.: May-happen-in-parallel analysis of X10 programs. In: Proceedings of PPoPP 2010, pp. 183–193. ACM (2007)Google Scholar
  3. 3.
    Albrecht, J., Tuttle, C., Snoeren, A.C., Vahdat, A.: Loose synchronization for large-scale networked systems. In: Proceedings of ATEC 2006, p. 28. USENIX Association (2006)Google Scholar
  4. 4.
    Arvind, Maessen, J.-W., Nikhil, R.S., Stoy, J.E.: λ s: an implicitly parallel λ-calculus with letrec, synchronization and side-effects. Electronic Notes Theoretical Computer Science 16(3), 265–290 (1998)MathSciNetCrossRefGoogle Scholar
  5. 5.
    Barnes, F.R., Welch, P.H., Sampson, A.T.: Barrier Synchronisation for occam-pi. In: Proceedings of PDPTA 2005, pp. 173–179. CSREA Press (2005)Google Scholar
  6. 6.
    Cavé, V., Zhao, J., Shirako, J., Sarkar, V.: Habanero-Java: the new adventures of old X10. In: Proceedings of PPPJ 2011, pp. 51–61. ACM (2011)Google Scholar
  7. 7.
    Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: Proceedings of OOPSLA 2005, pp. 519–538. ACM (2005)Google Scholar
  8. 8.
    Cole, C., Williams, R.: Photoshop scalability: Keeping it simple. Queue 8, 20–28 (2010)Google Scholar
  9. 9.
    Dagum, L., Menon, R.: OpenMP: An Industry-Standard API for Shared-Memory Programming. Computing in Science and Engineering 5(1), 46–55 (1998)CrossRefGoogle Scholar
  10. 10.
    Lee, J.K., Palsberg, J.: Featherweight X10: a core calculus for async-finish parallelism. In: Proceedings of PPoPP 2010, pp. 25–36. ACM (2010)Google Scholar
  11. 11.
    Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. In: Proceeding of OOPSLA 2009, pp. 227–242. ACM (2009)Google Scholar
  12. 12.
    Martins, F., Vasconcelos, V.T., Cogumbreiro, T.: Types for X10 Clocks. In: Proceedings of PLACES 2010. EPTCS, vol. 69, pp. 111–129 (2011)Google Scholar
  13. 13.
    Oracle. Java Specification Request JSR-166 (2002)Google Scholar
  14. 14.
    Reinders, J.: Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism. O’Reilly Media (2007)Google Scholar
  15. 15.
    Saraswat, V., Jagadeesan, R.: Concurrent clustered programming. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 353–367. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  16. 16.
    Shirako, J., Peixotto, D., Sbirlea, D., Sarkar, V.: Phaser beams: Integrating stream parallelism with task parallelism. In: X10 Workshop (2011)Google Scholar
  17. 17.
    Shirako, J., Peixotto, D.M., Sarkar, V., Scherer, W.N.: Phasers: a unified deadlock-free construct for collective and point-to-point synchronization. In: Proceedings of ICS 2008, pp. 277–288. ACM (2008)Google Scholar
  18. 18.
    Shirako, J., Sharma, K., Sarkar, V.: Unifying barrier and point-to-point synchronization in OpenMP with phasers. In: Chapman, B.M., Gropp, W.D., Kumaran, K., Müller, M.S. (eds.) IWOMP 2011. LNCS, vol. 6665, pp. 122–137. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  19. 19.
    Süß, M., Leopold, C.: Implementing irregular parallel algorithms with OpenMP. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 635–644. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  20. 20.
    Xiong, W., Park, S., Zhang, J., Zhou, Y., Ma, Z.: Ad hoc synchronization considered harmful. In: Proceedings of OSDI 2010, pp. 1–8. USENIX Association (2010)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2013

Authors and Affiliations

  • Tiago Cogumbreiro
    • 1
  • Francisco Martins
    • 1
  • Vasco Thudichum Vasconcelos
    • 1
  1. 1.LaSIGE, Faculty of SciencesUniversity of LisbonPortugal

Personalised recommendations