Distributing Hot-Spot Addressing in Large-Scale Multiprocessors
IEEE Transactions on Computers
Two algorithms for barrier synchronization
International Journal of Parallel Programming
The fuzzy barrier: a mechanism for high speed synchronization of processors
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Synchronization barrier and related tools for shared memory parallel programming
International Journal of Parallel Programming
Fast, contention-free combining tree barriers for shared-memory multiprocessors
International Journal of Parallel Programming
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel I/O for high performance computing
Parallel I/O for high performance computing
Performance of an Ocean Circulation Model on LCAP-Abstract
Proceedings of the Third SIAM Conference on Parallel Processing for Scientific Computing
Gaussian Techniques on Shared Memory Multiprocessor Computers
Proceedings of the Third SIAM Conference on Parallel Processing for Scientific Computing
Multiprogramming and The Performance of Parallel Programs
Proceedings of the Third SIAM Conference on Parallel Processing for Scientific Computing
The Cerberus Multiprocessor Simulator
Proceedings of the Third SIAM Conference on Parallel Processing for Scientific Computing
Implementation of the Acceptance-Rejection Method on Parallel Processors: A Case Study in Scheduling
Proceedings of the Third SIAM Conference on Parallel Processing for Scientific Computing
A Study of Parallel Numerical Algorithms for the Solution of the Navier-Stokes Equation
Proceedings of the Fourth SIAM Conference on Parallel Processing for Scientific Computing
Parallel Block Triangular Decompositions for Solving Sparse Nonlinear Systems of Equations
Proceedings of the Fifth SIAM Conference on Parallel Processing for Scientific Computing
SPINning Parallel Systems Software
Proceedings of the 9th International SPIN Workshop on Model Checking of Software
Memory model sensitive analysis of concurrent data types
Memory model sensitive analysis of concurrent data types
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying the Microsoft Hyper-V Hypervisor with VCC
FM '09 Proceedings of the 2nd World Congress on Formal Methods
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
Combining theories with shared set operations
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
Sets with cardinality constraints in satisfiability modulo theories
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Barriers in concurrent separation logic
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Algorithms and Parallel Computing
Algorithms and Parallel Computing
Beginning Java 7
A memory model sensitive checker for c#
FM'06 Proceedings of the 14th international conference on Formal Methods
Professional C# 2012 and .NET 4.5
Professional C# 2012 and .NET 4.5
Hi-index | 0.00 |
We present an experience report on automating the verification of the software barrier synchronization primitive. The informal specification of the primitive is: when a thread calls the software barrier function, the thread halts until all other threads call their instances of the software barrier function. A successful software barrier call ensures that each thread has finished its portion of work before the threads start exchanging the results of these portions of work. While software barriers are widely used in parallel versions of major numerical algorithms and are indispensable in scientific computing, software barrier algorithms and their implementations scarcely have been verified. We improve the state of the art in proving the correctness of the major software barrier algorithms with off-the-shelf automatic verification systems such as Jahob, VCC, Boogie, Spin and Checkfence. We verify a central barrier, a C implementation of a barrier, a static tree barrier, a combining tree barrier, a dissemination barrier, a tournament barrier, a barrier with its client and a barrier on a weak memory model. In the process, we introduce a novel theorem proving method for proving validity of formulas containing cardinalities of comprehensions and improve the capabilities of one of the verification systems. Based on our experience, we propose new challenges in the verification of software barriers.