Verification of MPI-Based Software for Scientific Computation

  • Stephen F. Siegel
  • George S. Avrunin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2989)

Abstract

We explore issues related to the application of finite-state verification techniques to scientific computation software employing the widely-used Message-Passing Interface (MPI). Many of the features of MPI that are important for programmers present significant difficulties for model checking. In this paper, we examine a small parallel program that computes the evolution in time of a discretized function u defined on a 2-dimensional domain and governed by the diffusion equation. Although this example is simple, it makes use of many of the problematic features of MPI. We discuss the modeling of these features and use Spin and INCA to verify several correctness properties for various configurations of this program. Finally, we describe some general theorems that can be used to justify simplifications in finite-state models of MPI programs and that guarantee certain properties must hold for any program using only a particular subset of MPI.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bollig, B., Leucker, M.: Modelling, specifying, and verifying message passing systems. In: Bettini, C., Montanari, A. (eds.) Proceedings of the Symposium on Temporal Representation and Reasoning (TIME 2001), pp. 240–248. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
  2. 2.
    Cohen, E., Lamport, L.: Reduction in TLA. In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 317–331. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  3. 3.
    Corbett, J.C., Avrunin, G.S.: Using integer programming to verify general safety and liveness properties. Formal Methods in System Design 6, 97–123 (1995)MATHCrossRefGoogle Scholar
  4. 4.
    Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: Cytron, R., Gupta, R. (eds.) Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, San Diego, pp. 338–349. ACM Press, New York (2003)CrossRefGoogle Scholar
  5. 5.
    Georgelin, P., Pierre, L., Nguyen, T.: A formal specification of the MPI primitives and communication mechanisms. Technical Report 1999-337, LIM (1999)Google Scholar
  6. 6.
    Gropp, W., Huss-Lederman, S., Lumsdaine, A., Lusk, E., Nitzberg, B., Saphir, W., Snir, M.: MPI—The Complete Reference: the MPI Extensions, vol. 2. MIT Press, Cambridge (1998)Google Scholar
  7. 7.
    Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Boston (2004)Google Scholar
  8. 8.
    Lipton, R.J.: Reduction: A method of proving properties of parallel programs. Communications of the ACM 18, 717–721 (1975)MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Manohar, R., Martin, A.J.: Slack elasticity in concurrent computing. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 272–285. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  10. 10.
    Matlin, O.S., Lusk, E., McCune, W.: SPINning parallel systems software. In: Bonaki, D., Leue, S. (eds.) Model Checking of Software: 9th International SPIN Workshop, Grenoble. LNCS, vol. 2318, pp. 213–220. Springer, Heidelberg (2002)Google Scholar
  11. 11.
    Mazurkiewicz, A.: Trace theory. In: Brauer, W., Reisig, W., Rozenberg, G. (eds.) APN 1986. LNCS, vol. 254, pp. 279–324. Springer, Heidelberg (1987)Google Scholar
  12. 12.
    Meenakshi, B., Ramanujam, R.: Reasoning about message passing in finite state environments. In: Montanari, U., Rolim, J.D.P., Welzl, E. (eds.) Automata, Languages and Programming, 27th International Colloquium, ICALP 2000, Geneva. LNCS, vol. 1853, pp. 487–498. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  13. 13.
    Message-Passing Interface Standard 2.0 (1997), http://www.mpi-forum.org/docs
  14. 14.
    Siegel, S.F.: The INCA query language. Technical Report UM-CS-2002-18, Department of Computer Science, University of Massachusetts (2002)Google Scholar
  15. 15.
    Siegel, S.F., Avrunin, G.S.: Improving the precision of INCA by eliminating solutions with spurious cycles. IEEE Transactions on Software Engineering 28, 115–128 (2002)CrossRefGoogle Scholar
  16. 16.
    Siegel, S.F., Avrunin, G.S.: Analysis of MPI programs. Technical Report UM-CS- 2003-036, Department of Computer Science, University of Massachusetts (2003)Google Scholar
  17. 17.
    Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J.: MPI—The Complete Reference: The MPI Core, 2nd edn., vol. 1. MIT Press, Cambridge (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Stephen F. Siegel
    • 1
  • George S. Avrunin
    • 1
  1. 1.Laboratory for Advanced Software Engineering, Dept. of Computer ScienceUniversity of MassachusettsAmherstUSA

Personalised recommendations