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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
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)
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)
Georgelin, P., Pierre, L., Nguyen, T.: A formal specification of the MPI primitives and communication mechanisms. Technical Report 1999-337, LIM (1999)
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)
Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Boston (2004)
Lipton, R.J.: Reduction: A method of proving properties of parallel programs. Communications of the ACM 18, 717–721 (1975)
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)
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)
Mazurkiewicz, A.: Trace theory. In: Brauer, W., Reisig, W., Rozenberg, G. (eds.) APN 1986. LNCS, vol. 254, pp. 279–324. Springer, Heidelberg (1987)
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)
Message-Passing Interface Standard 2.0 (1997), http://www.mpi-forum.org/docs
Siegel, S.F.: The INCA query language. Technical Report UM-CS-2002-18, Department of Computer Science, University of Massachusetts (2002)
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)
Siegel, S.F., Avrunin, G.S.: Analysis of MPI programs. Technical Report UM-CS- 2003-036, Department of Computer Science, University of Massachusetts (2003)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Siegel, S.F., Avrunin, G.S. (2004). Verification of MPI-Based Software for Scientific Computation. In: Graf, S., Mounier, L. (eds) Model Checking Software. SPIN 2004. Lecture Notes in Computer Science, vol 2989. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24732-6_20
Download citation
DOI: https://doi.org/10.1007/978-3-540-24732-6_20
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21314-7
Online ISBN: 978-3-540-24732-6
eBook Packages: Springer Book Archive