Verification, Model Checking and Abstract Interpretation · 2011 · 13 citations · 6 references
ComputingComputer EngineeringComputer ScienceDistributed SystemsMessage PassingParallel ComputingAssertion-based VerificationControl-flow AnalysisDistributed ComputingDistributed Memory ParallelismProcess CoordinationSymbolic ExecutionAssertion CheckingAssertionsConcurrent Program VerificationDistributed MemoryDistributed Systems VerificationGlobal StateLocal StateParallel Program Semantics
We introduce the notion of collective assertions for message-passing-based parallel programs with distributed memory, such as those written using the Message Passing Interface. A single collective assertion comprises a set of locations in each process and an expression on the global state. The semantics are defined as follows: whenever control in a process reaches one of the locations, a of the local state of that process is sent to a coordinator; once a snapshot has been received from each process, the expression is evaluated on the global state formed by uniting the snapshots. We have extended the Toolkit for Accurate Scientific Software (TASS), a verifier based on symbolic execution and explicit state enumeration, to check that collective assertions hold on all possible executions of a C/MPI program. We give several examples of such programs, show that many properties of them are naturally expressed as collective assertions, and use TASS to verify or refute these.
6
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
K. Mani Chandy, Leslie Lamport · ACM Transactions on Computer Systems · 1985 · 2.4K citations · Full text
Formal verification of practical MPI programs
Anh Vo, Sarvani Vakkalanka, Michael DeLisi et al. · 2009 · 75 citations