Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School of Computing, University of Utah, Salt Lake City Supported by Microsoft HPC Institutes, NSF CNS-0509379 http://www.cs.utah.edu/ 1
22
Embed
Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Scheduling Considerations for building Dynamic Verification Tools for MPI
Sarvani Vakkalanka, Michael DeLisiGanesh Gopalakrishnan, Robert M. Kirby
School of Computing, University of Utah, Salt Lake City
Supported by Microsoft HPC Institutes,
NSF CNS-0509379
http://www.cs.utah.edu/formal_verification
2
(BlueGene/L - Image courtesy of IBM / LLNL)
(Image courtesy of Steve Parker, CSAFE, Utah)
The scientific community is increasingly employing expensive supercomputers that employ distributed programming libraries….
…to program large-scale simulations in all walks of science, engineering, math, economics, etc.
Background
3
Current Programming Realities
Code written using mature libraries (MPI, OpenMP, PThreads, …)
API calls made from real programming languages
(C, Fortran, C++)
Runtime semantics determined by realistic Compilers and Runtimes
How best to verifycodes that will run on actual platforms?
4
Classical Model Checking
Finite State Model of
Concurrent Program
Check Properties
Extraction of Finite State Models for realistic programs is difficult.
5
Dynamic Verification
ActualConcurrent
ProgramCheck Properties
Avoid model extraction which can be tedious and imprecise
Program serves as its own model
Reduce Complexity through Reduction of interleavings (and other methods)
6
Dynamic Verification
ActualConcurrent
ProgramCheck Properties
One Specific Test Harness
Need test harness in order to run the code.
Will explore ONLY RELEVANT INTERLEAVINGS (all Mazurkeiwicz traces) for the given test harness
Conventional testing tools cannot do this !!
E.g. 5 threads, 5 instructions each 1010 interleavings !!
7
Dynamic Verification
ActualConcurrent
ProgramCheck Properties
One Specific Test Harness
Need to consider all test harnesses
FOR MANY PROGRAMS, this number seems small (e.g. Hypergraph Partitioner)