Abstract
The Toolkit for Accurate Scientific Software (TASS) is a suite of tools for the formal verification of MPI-based parallel programs used in computational science. TASS can verify various safety properties as well as compare two programs for functional equivalence. The TASS front end takes an integer n ≥ 1 and a C/MPI program, and constructs an abstract model of the program with n processes. Procedures, structs, (multi-dimensional) arrays, heap-allocated data, pointers, and pointer arithmetic are all representable in a TASS model. The model is then explored using symbolic execution and explicit state space enumeration. A number of techniques are used to reduce the time and memory consumed. A variety of realistic MPI programs have been verified with TASS, including Jacobi iteration and manager-worker type programs, and some subtle defects have been discovered. TASS is written in Java and is available from http://vsl.cis.udel.edu/tass under the Gnu Public License.
- C. Barrett and C. Tinelli. CVC3. In W. Damm and H. Hermanns, editors, CAV 2007, volume 4590 of LNCS, pages 298--302. Springer. Google Scholar
Digital Library
- C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. Proc. 8th USENIX Symposium on Operating Systems Design and Implementation, 2008. Google Scholar
Digital Library
- S. Khurshid, C. S. Pǎsǎreanu, and W. Visser. Generalized symbolic execution for model checking and testing. In H. Garavel and J. Hatcliff, editors, TACAS 2003, volume 2619 of LNCS, pages 553--568. Google Scholar
Digital Library
- J. C. King. Symbolic execution and program testing. Communications of the ACM, 19 (7): 385--394, 1976. Google Scholar
Digital Library
- S. F. Siegel. Efficient verification of halting properties for MPI programs with wildcard receives. In R. Cousot, editor, VMCAI 2005, volume 3385 of LNCS, pages 413--429. Google Scholar
Digital Library
- S. F. Siegel and G. S. Avrunin. Modeling wildcard-free MPI programs for verification. In PPoPP'05, pages 95--106. ACM, 2005. Google Scholar
Digital Library
- S. F. Siegel and G. S. Avrunin. Verification of halting properties for MPI programs using nonblocking operations. In F. Cappello, T. Hérault, and J. Dongarra, editors, Euro PVM/MPI 2007, volume 4757 of LNCS, pages 326--334. Springer, 2007. Google Scholar
Digital Library
- S. F. Siegel and T. K. Zirkel. Collective assertions. In R. Jhala and D. Schmidt, editors, VMCAI 2011, volume 6538 of LNCS, pages 387--402. Google Scholar
Digital Library
- S. F. Siegel, A. Mironova, G. S. Avrunin, and L. A. Clarke. Combining symbolic execution with model checking to verify parallel numerical programs. ACM TOSEM, 17 (2): Article 10, 1--34, 2008. Google Scholar
Digital Library
- A. Vo, S. Vakkalanka, M. DeLisi, G. Gopalakrishnan, R. M. Kirby, and R. Thakur. Formal verification of practical MPI programs. In PPoPP 2009, pages 261--270. ACM. Google Scholar
Digital Library
Index Terms
Automatic formal verification of MPI-based parallel programs
Recommendations
Formal verification of practical MPI programs
PPoPP '09This paper considers the problem of formal verification of MPI programs operating under a fixed test harness for safety properties without building verification models. In our approach, we directly model-check the MPI/C source code, executing its ...
Automatic formal verification of MPI-based parallel programs
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingThe Toolkit for Accurate Scientific Software (TASS) is a suite of tools for the formal verification of MPI-based parallel programs used in computational science. TASS can verify various safety properties as well as compare two programs for functional ...
Verification of MPI programs using CIVL
EuroMPI '17: Proceedings of the 24th European MPI Users' Group MeetingCIVL is a framework for verifying concurrent programs. The framework is built around a language, CIVL-C, that extends sequential C with general-purpose primitives that can be used to model a variety of concurrency dialects, including OpenMP, Pthreads, ...







Comments