BSP-Why: A Tool for Deductive Verification of BSP Algorithms with Subgroup Synchronisation

  • Jean Fortin
  • Frédéric Gava


We present bsp-why, a tool for deductive verification of bsp  algorithms with subgroup synchronisation. From bsp  programs, bsp-why generates sequential codes for the back-end condition generator why and thus benefits from its large range of existing provers. By enabling subgroups, the user can prove the correctness of programs that run on hierarchical machines—e.g. clusters of multi-cores. In general, bsp-why is able to generate proof obligations of mpi programs that only use collective operations. Our case studies are distributed state-space construction algorithms, the basis of model-checking.


bsp Verification Subgroup synchronisation State-space 


  1. 1.
    Bisseling, R.H.: Parallel Scientific Computation. A Structured Approach Using BSP and MPI. Oxford University Press, Oxford (2004)zbMATHGoogle Scholar
  2. 2.
    Bonorden, O., Judoiink, B., von Otte, I., Rieping, O.: The Paderborn University BSP (PUB) library. Parallel Comput. 29(2), 187–207 (2003)CrossRefGoogle Scholar
  3. 3.
    Burnim, J., Sen, K.: Asserting and checking determinism for multithreaded programs. Commun. ACM 53(6), 97–105 (2010)CrossRefGoogle Scholar
  4. 4.
    Cappello, F., Guermouche, A., Snir, M.: On communication determinism in HPC applications. In: Computer Communications and Networks (ICCCN), pp. 1–8. IEEE (2010)Google Scholar
  5. 5.
    Chen, Y., Sanders, W.: Top-down design of bulk-synchronous parallel programs. Parallel Process. Lett. 13(3), 389–400 (2003)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Clarke, E., et al. (eds.): Handbook of Model Checking. Springer, Berlin (2012)Google Scholar
  7. 7.
    Esparza, J., et al.: A fully verified executable LTL model checker. In: Computer Aided Verification (CAV), LNCS, vol. 8044, pp. 463–478. Springer (2013)Google Scholar
  8. 8.
    Filliâtre, J.C.: Verifying two lines of C with why3: an exercise in program verification. In: Verified Software: Theories, Tools and Experiments (VSTTE) (2012)Google Scholar
  9. 9.
    Fortin, J.: BSP-WHY: a tool for deductive verification of BSP programs; machine-checked semantics and application to distributed state-space algorithms. Ph.D. thesis, University of Paris-East (2013).
  10. 10.
    Fortin, J., Gava, F.: BSP-WHY: an intermediate language for deductive verification of BSP programs. In: HLPP, pp. 35–44. ACM (2010)Google Scholar
  11. 11.
    Furia, C.A., Meyer, B.: Inferring loop invariants using postconditions. In: Fields of Logic and Computation, LNCS, vol. 6300, pp. 277–300. Springer (2010)Google Scholar
  12. 12.
    Garavel, H., Mateescu, R., Smarandache, I.M.: Parallel state space construction for model-checking. In: SPIN Conference, LNCS, vol. 2057, pp. 217–234. Springer (2001)Google Scholar
  13. 13.
    Gava, F.: Formal proofs of functional BSP programs. Parallel Process. Lett. 13(3), 365–376 (2003)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Gava, F., Fortin, J.: Formal semantics of a subset of the PUB. In: Parallel and Distributed Computing, Applications and Technologies (PDCAT), pp. 269–276. IEEE (2008)Google Scholar
  15. 15.
    Gava, F., Fortin, J., Guedj, M.: Deductive verification of state-space algorithms. In: Integrated Formal Methods (IFM), LNCS, vol. 7940, pp. 124–138. Springer (2013)Google Scholar
  16. 16.
    Gopalakrishnan, G., Kirby, R.M., Siegel, S.F., Thakur, R., Gropp, W., Lusk, E.L., de Supinski, B.R., Schulz, M., Bronevetsky, G.: Formal analysis of MPI-based parallel programs: present and future. Commun. ACM 54(12), 82–91 (2011)CrossRefGoogle Scholar
  17. 17.
    Herms, P.: Certification of a chain for deductive program verification. In: Bertot, Y. (ed.) COQ Workshop, Satellite of ITP (2010)Google Scholar
  18. 18.
    Hill, J.M.D., McColl, B., Stefanescu, D.C., Goudreau, M.W., Lang, K., Rao, S.B., Suel, T., Tsantilas, T., Bisseling, R.: BSPLIB: the BSP programming library. Parallel Comput. 24, 1947–1980 (1998)CrossRefGoogle Scholar
  19. 19.
    Hoare, C.A.R., Misra, J., Leavens, G.T., Shankar, N.: The verified software initiative: a manifesto. ACM Comput. Surv. 41(4), 1–8 (2009)Google Scholar
  20. 20.
    Hobor, A., Gherghina, C.: Barriers in concurrent separation logic: now with tool support. Log. Methods Comput. Sci. 8(2), 1–32 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Jifeng, H., Miller, Q., Chen, L.: Algebraic laws for BSP programming. In: Bouge, L., Robert, Y. (eds.) Euro-Par, no. 1124 in LNCS, pp. 359–368. Springer (1996)Google Scholar
  22. 22.
    Lübeck, F., Neunhöffer, M.: Enumerating large orbits and direct condensation. Exp. Math. 10(2), 197–205 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Martino, B.D., Mazzeo, A., Mazzocca, M., Villano, U.: Parallel program analysis and restructuring by detection of point-to-point interaction patterns and their transformation into collective communication constructs. Sci. Comput. Program. 40(2–3), 235–263 (2001)CrossRefzbMATHGoogle Scholar
  24. 24.
    Merali, Z.: Computational science: error, why scientific programming does not compute. Nature 467(7317), 775–777 (2010)CrossRefGoogle Scholar
  25. 25.
    Namjoshi, K.S.: Certifying model checkers. In: Berry, G., Comon, H., Finkel, A. (eds.) Computer Aided Verification (CAV), LNCS, vol. 2102, pp. 2–13. Springer, Berlin (2001)CrossRefGoogle Scholar
  26. 26.
    Nieto, L.P.: Verification of parallel programs with the Owicki-Gries and rely-guarantee methods in Isabelle/HOL. Ph.D. thesis, Technische Universitat Munchen (2001)Google Scholar
  27. 27.
    Saad, R.T., Dal-Zilio, S., Berthomieu, B.: Mixed shared-distributed hash tables approaches for parallel state space construction. In: Parallel and Distributed Computing (ISPDC), pp. 9–16. IEEE (2011)Google Scholar
  28. 28.
    Seo, S., Yoon, E.J., Kim, J.H., Jin, S., Kim, J.S., Maeng, S.: HAMA: an efficient matrix computation with the mapreduce framework. In: Cloud Computing (CloudCom), pp. 721–726. IEEE (2010)Google Scholar
  29. 29.
    Shankar, N.: Trust and automation in verification tools. In: Cha, S.D., Choi, J.Y., Kim, M., Lee, I., Viswanathan, M. (eds.) Automated Technology for Verification and Analysis (ATVA), LNCS, vol. 5311, pp. 4–17. Springer, Berlin (2008)CrossRefGoogle Scholar
  30. 30.
    Siegel, S.F., Zirkel, T.K.: Loop invariant symbolic execution for parallel programs. In: Kuncak, V., Rybalchenko, A. (eds.) Verification, Model Checking, and Abstract Interpretation (VMCAI), LNCS, vol. 7148, pp. 412–427. Springer, Berlin (2012)CrossRefGoogle Scholar
  31. 31.
    Sprenger, C.: A verified model checker for the modal \(\mu \)-calculus in COQ. In: Tools and Algorithms for Construction and Analysis of Systems (TACAS), LNCS, vol. 1384, pp. 167–183. Springer (1998)Google Scholar
  32. 32.
    Springel, V.: The cosmological simulation code gadget-2. Mon. Not. R. Astron. Soc. 364, 1105–1134 (2005)CrossRefGoogle Scholar
  33. 33.
    Stewart, A.: A programming model for BSP with partitioned synchronisation. Form. Asp. Comput. 23(4), 421–432 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  34. 34.
    Stewart, A., Clint, M., Gabarró, J.: Axiomatic frameworks for developing BSP-style programs. Parallel Algorithms Appl. 14, 271–292 (2000)CrossRefzbMATHGoogle Scholar
  35. 35.
    Turner, E., Butler, M., Leuschel, M.: A refinement-based correctness proof of symmetry reduced model-checking. In: Abstract State Machines, Alloy, B and Z, LNCS, pp. 231–244. Springer (2010)Google Scholar
  36. 36.
    Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)CrossRefGoogle Scholar
  37. 37.
    Valiant, L.G.: A bridging model for multi-core computing. J. Comput. Syst. Sci. 77(1), 154–166 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  38. 38.
    Villard, J., Lozes, É., Calcagno, C.: Proving copyless message passing. In: Programming Languages and Systems (APLAS), LNCS, vol. 5904, pp. 194–209. Springer (2009)Google Scholar
  39. 39.
    Vo, A., Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M., Thakur, R.: Formal verification of practical MPI programs. In: Principles and Practices of Parallel Programming (PPoPP), pp. 261–269 (2009)Google Scholar
  40. 40.
    Yzelman, A.N., Bisseling, R.H.: An object-oriented BSP library for multicore programming. Concurr. Comput. Pract. Exp. 24(5), 533–553 (2012)CrossRefGoogle Scholar
  41. 41.
    Zhou, J., Chen, Y.: Generating C code from LOGS specifications. In: Theoretical Aspects of Computing (ICTAC), LNCS, vol. 3722, pp. 195–210. Springer (2005)Google Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  1. 1.LACLUniversity of Paris-EastCréteilFrance

Personalised recommendations