On Automation in the Verification of Software Barriers: Experience Report

  • Authors:
  • Alexander Malkis;Anindya Banerjee

  • Affiliations:
  • Institut für Informatik (I4), Technische Universität München, Garching bei München, Germany 85748;IMDEA Software Institute, Edificio IMDEA Software, Campus Montegancedo UPM, Madrid, Spain

  • Venue:
  • Journal of Automated Reasoning
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.