Skip to main content
Log in

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

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. A parameter is a routine of the program for which we do not know the code; we only have its type and the effect on its arguments.

  2. For drma  operations, in case of a distributed architecture, the buffers have to be sent; in case of a shared-memory architecture, the library simulates this sending.

  3. Doing this transformation automatically is perhaps possible in some specific cases; however, this is not the subject of this work.

References

  1. Bisseling, R.H.: Parallel Scientific Computation. A Structured Approach Using BSP and MPI. Oxford University Press, Oxford (2004)

    MATH  Google Scholar 

  2. Bonorden, O., Judoiink, B., von Otte, I., Rieping, O.: The Paderborn University BSP (PUB) library. Parallel Comput. 29(2), 187–207 (2003)

    Article  Google Scholar 

  3. Burnim, J., Sen, K.: Asserting and checking determinism for multithreaded programs. Commun. ACM 53(6), 97–105 (2010)

    Article  Google Scholar 

  4. Cappello, F., Guermouche, A., Snir, M.: On communication determinism in HPC applications. In: Computer Communications and Networks (ICCCN), pp. 1–8. IEEE (2010)

  5. Chen, Y., Sanders, W.: Top-down design of bulk-synchronous parallel programs. Parallel Process. Lett. 13(3), 389–400 (2003)

    Article  MathSciNet  Google Scholar 

  6. Clarke, E., et al. (eds.): Handbook of Model Checking. Springer, Berlin (2012)

    Google Scholar 

  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)

  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)

  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). http://lacl.fr/gava/papers/fortin_thesis

  10. Fortin, J., Gava, F.: BSP-WHY: an intermediate language for deductive verification of BSP programs. In: HLPP, pp. 35–44. ACM (2010)

  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)

  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)

  13. Gava, F.: Formal proofs of functional BSP programs. Parallel Process. Lett. 13(3), 365–376 (2003)

    Article  MathSciNet  Google Scholar 

  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)

  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)

  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)

    Article  Google Scholar 

  17. Herms, P.: Certification of a chain for deductive program verification. In: Bertot, Y. (ed.) COQ Workshop, Satellite of ITP (2010)

  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)

    Article  Google Scholar 

  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. Hobor, A., Gherghina, C.: Barriers in concurrent separation logic: now with tool support. Log. Methods Comput. Sci. 8(2), 1–32 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  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)

  22. Lübeck, F., Neunhöffer, M.: Enumerating large orbits and direct condensation. Exp. Math. 10(2), 197–205 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  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)

    Article  MATH  Google Scholar 

  24. Merali, Z.: Computational science: error, why scientific programming does not compute. Nature 467(7317), 775–777 (2010)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

  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)

  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)

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

  32. Springel, V.: The cosmological simulation code gadget-2. Mon. Not. R. Astron. Soc. 364, 1105–1134 (2005)

    Article  Google Scholar 

  33. Stewart, A.: A programming model for BSP with partitioned synchronisation. Form. Asp. Comput. 23(4), 421–432 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  34. Stewart, A., Clint, M., Gabarró, J.: Axiomatic frameworks for developing BSP-style programs. Parallel Algorithms Appl. 14, 271–292 (2000)

    Article  MATH  Google Scholar 

  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)

  36. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)

    Article  Google Scholar 

  37. Valiant, L.G.: A bridging model for multi-core computing. J. Comput. Syst. Sci. 77(1), 154–166 (2011)

    Article  MathSciNet  MATH  Google Scholar 

  38. Villard, J., Lozes, É., Calcagno, C.: Proving copyless message passing. In: Programming Languages and Systems (APLAS), LNCS, vol. 5904, pp. 194–209. Springer (2009)

  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)

  40. Yzelman, A.N., Bisseling, R.H.: An object-oriented BSP library for multicore programming. Concurr. Comput. Pract. Exp. 24(5), 533–553 (2012)

    Article  Google Scholar 

  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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jean Fortin.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Fortin, J., Gava, F. BSP-Why: A Tool for Deductive Verification of BSP Algorithms with Subgroup Synchronisation. Int J Parallel Prog 44, 574–597 (2016). https://doi.org/10.1007/s10766-015-0360-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-015-0360-y

Keywords

Navigation