Coordinating Phased Activities while Maintaining Progress

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.

[1]  Vivek Sarkar,et al.  Phasers: a unified deadlock-free construct for collective and point-to-point synchronization , 2008, ICS '08.

[2]  Vivek Sarkar,et al.  May-happen-in-parallel analysis of X10 programs , 2007, PPoPP.

[3]  Arvind,et al.  Semantics of barriers in a non-strict, implicitly-parallel language , 1995, FPCA '95.

[4]  Arvind,et al.  λS: An implicitly parallel λ-calculus with recursive bindings, synchronization and side effects , 1998 .

[5]  Amin Vahdat,et al.  Loose Synchronization for Large-Scale Networked Systems , 2006, USENIX Annual Technical Conference, General Track.

[6]  Vincent Danos,et al.  Transactions in RCCS , 2005, CONCUR.

[7]  L. Dagum,et al.  OpenMP: an industry standard API for shared-memory programming , 1998 .

[8]  James Reinders,et al.  Intel threading building blocks - outfitting C++ for multi-core processor parallelism , 2007 .

[9]  Jun Shirako,et al.  Phaser Beams: Integrating Stream Parallelism with Task Parallelism , 2011 .

[10]  Jens Palsberg,et al.  Featherweight X10: a core calculus for async-finish parallelism , 2010, PPoPP '10.

[11]  Arvind,et al.  LambdaS: an implicitly parallel lambda-calculus with letrec, synchronization and side-effects , 1998, Electron. Notes Theor. Comput. Sci..

[12]  Russell Williams,et al.  Photoshop Scalability: Keeping It Simple , 2010, ACM Queue.

[13]  ACM Case Study Photoshop scalability , 2010, Commun. ACM.

[14]  Sebastian Burckhardt,et al.  The design of a task parallel library , 2009, OOPSLA.

[15]  Zhiqiang Ma,et al.  Ad Hoc Synchronization Considered Harmful , 2010, OSDI.

[16]  Radha Jagadeesan,et al.  Concurrent Clustered Programming , 2005, CONCUR.

[17]  William Gropp,et al.  OpenMP in the Petascale Era - 7th International Workshop on OpenMP, IWOMP 2011, Chicago, IL, USA, June 13-15, 2011. Proceedings , 2011, IWOMP.

[18]  Claudia Fohry,et al.  Implementing Irregular Parallel Algorithms with OpenMP , 2006, Euro-Par.

[19]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[20]  Francisco Martins,et al.  Types for X10 Clocks , 2010, PLACES.

[21]  Norbert Meyer,et al.  Euro-Par 2006 Workshops: Parallel Processing , 2007, Lecture Notes in Computer Science.

[22]  Adam T. Sampson,et al.  Barrier Synchronisation for occam-pi , 2005, PDPTA.

[23]  Vivek Sarkar,et al.  Unifying Barrier and Point-to-Point Synchronization in OpenMP with Phasers , 2011, IWOMP.

[24]  Vivek Sarkar,et al.  Habanero-Java: the new adventures of old X10 , 2011, PPPJ.