Verification of Static and Dynamic Barrier Synchronization Using Bounded Permissions

Mainstream languages such as C/C++ (with Pthreads), Java, and .NET provide programmers with both static and dynamic barriers for synchronizing concurrent threads in fork/join programs. However, such barrier synchronization in fork/join programs is hard to verify since programmers must not only keep track of the dynamic number of participating threads, but also ensure that all participants proceed in correctly synchronized phases. As barriers are commonly used in practice, verifying correct synchronization of barriers can provide compilers and analysers with important phasing information for improving the precision of their analyses and optimizations.

[1]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[2]  Frank Piessens,et al.  Implicit dynamic frames , 2008, TOPL.

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

[4]  Anoop Gupta,et al.  The SPLASH-2 programs: characterization and methodological considerations , 1995, ISCA.

[5]  Yuan Lin,et al.  Static Nonconcurrency Analysis of OpenMP Programs , 2005, IWOMP.

[6]  David Gay,et al.  Barrier inference , 1998, POPL '98.

[7]  Peter W. O'Hearn,et al.  Permission accounting in separation logic , 2005, POPL '05.

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

[9]  Andrew W. Appel,et al.  A Fresh Look at Separation Algebras and Share Accounting , 2009, APLAS.

[10]  Yuan Zhang,et al.  Barrier matching for programs with textually unaligned barriers , 2007, PPoPP.

[11]  Susan J. Eggers,et al.  Static Analysis of Barrier Synchronization in Explicitly Parallel Programs , 1994, IFIP PACT.

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

[13]  Katherine A. Yelick,et al.  Enforcing Textual Alignment of Collectives Using Dynamic Checks , 2009, LCPC.

[14]  Adam Freeman Pro .NET 4 Parallel Programming in C , 2010 .

[15]  Aquinas Hobor,et al.  Barriers in Concurrent Separation Logic: Now With Tool Support! , 2012, Log. Methods Comput. Sci..

[16]  Anindya Banerjee,et al.  Verification of software barriers , 2012, PPoPP '12.

[17]  Jonathan Aldrich,et al.  A type system for borrowing permissions , 2012, POPL '12.

[18]  Jonathan Aldrich,et al.  Modular typestate checking of aliased objects , 2007, OOPSLA.

[19]  David B. Skillicorn,et al.  Practical barrier synchronisation , 1998, Proceedings of the Sixth Euromicro Workshop on Parallel and Distributed Processing - PDP '98 -.

[20]  R. K. Shyamasundar,et al.  A New Method of MHP Analysis for Languages with Dynamic Barriers , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[21]  Bronis R. de Supinski,et al.  OpenMP Shared Memory Parallel Programming - International Workshops, IWOMP 2005 and IWOMP 2006, Eugene, OR, USA, June 1-4, 2005, Reims, France, June 12-15, 2006. Proceedings , 2008, IWOMP.

[22]  Peter W. O'Hearn,et al.  Resources, Concurrency and Local Reasoning , 2004, CONCUR.

[23]  Katherine A. Yelick,et al.  Concurrency Analysis for Parallel Programs with Textually Aligned Barriers , 2005, LCPC.

[24]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[25]  Yuan Zhang,et al.  Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers , 2007, LCPC.

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

[27]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.