Publication | Closed Access
Automatic formal verification of MPI-based parallel programs
33
Citations
6
References
2011
Year
Unknown Venue
EngineeringVerificationSoftware SystemsComputer-aided VerificationHardware SystemsSoftware AnalysisAutomatic Formal VerificationFormal VerificationTass ModelParallel SoftwareTass Front EndParallel ComputingCompilersProgramming LanguagesHybrid ProgrammingRuntime VerificationAccurate Scientific SoftwareComputer EngineeringComputer ScienceSoftware VerificationProgram AnalysisFormal MethodsParallel ProgrammingParallel Programming ModelSymbolic Execution
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1