1) Overview of the UV Group 2) Gauss: A Framework for Verifying Scientific Computing Software 3) Random things (perhaps more useful than 1 or 2) presented.

Slides:



Advertisements
Similar presentations
Demand-driven inference of loop invariants in a theorem prover
Advertisements

Hierarchical Cache Coherence Protocol Verification One Level at a Time through Assume Guarantee Xiaofang Chen, Yu Yang, Michael Delisi, Ganesh Gopalakrishnan.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Software Engineering & Automated Deduction Willem Visser Stellenbosch University With Nikolaj Bjorner (Microsoft Research, Redmond) Natarajan Shankar (SRI.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by SRC Contract.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by Intel.
Development of a Compact Cluster with Embedded CPUs Sritrusta Sukaridhoto, Yoshifumi Sasaki, Koichi Ito and Takafumi Aoki.
Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School.
1 An Approach to Formalization and Analysis of Message Passing Libraries Robert Palmer Intel Validation Research Labs, Hillsboro, OR (work done at the.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Verification of Hierarchical Cache Coherence Protocols for Future Processors Student: Xiaofang Chen Advisor: Ganesh Gopalakrishnan.
Tomorrow’s Software Today ® HCMDSS Panel Presentation: Software and Systems Engineering for Medical Devices W. Rance Cleaveland II, PhD CEO, Reactive Systems.
Gauss: A Framework for Verifying Scientific Software Robert Palmer Steve Barrus, Yu Yang, Ganesh Gopalakrishnan, Robert M. Kirby University of Utah Supported.
Scaling Formal Methods toward Hierarchical Protocols in Shared Memory Processors Intel SRC Customization Award 2005-TJ-1318 Ganesh Gopalakrishnan* School.
1 Dr. Frederica Darema Senior Science and Technology Advisor NSF Future Parallel Computing Systems – what to remember from the past RAMP Workshop FCRC.
Building Symbiotic Relationships Between Formal Verification and High Performance Computing Mike Kirby School of Computing and Scientific Computing and.
Overview SRC Funding Ganesh Gopalakrishnan (PI) Konrad Slind (Co-PI ) School of Computing University of Utah.
SRC Task Verification of Shared Memory Consistency (Models and) Protocols Start Date : September 2002 Third Year Annual Review, Boulder CO, March.
The Problem  Rigorous descriptions for widely used APIs essential  Informal documents / Experiments not a substitute Goals / Benefits  Define MPI rigorously.
1 Multicores viewed from a correctness perspective Ganesh Gopalakrishnan.
The Rare Glitch Project: Verification Tools for Embedded Systems Carnegie Mellon University Pittsburgh, PA Ed Clarke, David Garlan, Bruce Krogh, Reid Simmons,
Scaling Formal Methods Toward Hierarchical Protocols in Shared Memory Processors Presenters: Ganesh Gopalakrishnan and Xiaofang Chen School of Computing,
Utah Verifier Group Research Overview Robert Palmer.
1 Post-Silicon Verification under Limited Observability Ganesh Gopalakrishnan School of Computing, University of Utah, Salt Lake City, UT Ching Tsun.
Some Challenges in Parallel and Distributed Hardware Design and Programming Ganesh Gopalakrishnan* School of Computing, University of Utah, Salt Lake City,
Counterexample Guided Invariant Discovery for Parameterized Cache Coherence Verification Sudhindra Pandav Konrad Slind Ganesh Gopalakrishnan.
Department of Computer Science & Engineering College of Engineering Dr. Betty H.C. Cheng, Laura A. Campbell, Sascha Konrad The demand for distributed real-time.
1 Reducing Verification Complexity of a Multicore Coherence Protocol Using Assume/Guarantee Xiaofang Chen 1, Yu Yang 1, Ganesh Gopalakrishnan 1, Ching-Tsun.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by SRC Contract.
Introduction In the process of writing or optimizing High Performance Computing software, mostly using MPI these days, designers can inadvertently introduce.
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Csinparallel.org Patterns and Exemplars: Compelling Strategies for Teaching Parallel and Distributed Computing to CS Undergraduates Libby Shoop Joel Adams.
IBM Research © 2006 IBM Corporation CDT Static Analysis Features CDT Developer Summit - Ottawa Beth September.
Some Challenges in Parallel and Distributed Hardware Design and Programming Ganesh Gopalakrishnan* School of Computing, University of Utah, Salt Lake City,
Hybrid MPI and OpenMP Parallel Programming
Message Passing Programming Model AMANO, Hideharu Textbook pp. 140-147.
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
(C) 2003 Daniel SorinDuke Architecture Dynamic Verification of End-to-End Multiprocessor Invariants Daniel J. Sorin 1, Mark D. Hill 2, David A. Wood 2.
CIS 842: Specification and Verification of Reactive Systems Lecture 1: Course Overview Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The.
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd Edition, by B. Wilkinson & M. Allen, ©
CSCI-455/522 Introduction to High Performance Computing Lecture 4.
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
Parallel Computing in Numerical Simulation of Laser Deposition The objective of this proposed project is to research and develop an effective prediction.
CrossCheckSimulation Results Conclusions References Model Instrumentation Modeling with CUTS Property Specification SPRUCE Challenge Problem Checking Model.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
3/12/2013Computer Engg, IIT(BHU)1 MPI-1. MESSAGE PASSING INTERFACE A message passing library specification Extended message-passing model Not a language.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi,
Message Passing Interface Using resources from
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Abstraction and Abstract Interpretation. Abstraction (a simplified view) Abstraction is an effective tool in verification Given a transition system, we.
State and Future of Computing Mary Lou Soffa
Defining the Competencies for Leadership- Class Computing Education and Training Steven I. Gordon and Judith D. Gardiner August 3, 2010.
Constraint Framework, page 1 Collaborative learning for security and repair in application communities MIT site visit April 10, 2007 Constraints approach.
Security analysis of COM with Alloy
MPI Message Passing Interface
Introduction Enosis Learning.
Verification and Validation
runtime verification Brief Overview Grigore Rosu
University of Technology
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Introduction Enosis Learning.
write on board in advance: handouts, names, Hoare quote
AIMS Equipment & Automation monitoring solution
Hybrid MPI and OpenMP Parallel Programming
Post-Silicon Verification under Limited Observability
MPI Message Passing Interface
Presentation transcript:

1) Overview of the UV Group 2) Gauss: A Framework for Verifying Scientific Computing Software 3) Random things (perhaps more useful than 1 or 2) presented by Ganesh Gopalakrishnan at the 2 nd annual Utah Regional Verification Workshop School of Computing, University of Utah, Salt Lake City, UT * Past work supported in part by SRC Contract , NSF Award and an equipment grant from Intel Corporation

1) Overview of the UV Group

3 People affiliated with the UV group: Recent alumni : Yue Yang (PhD, Microsoft), Ali Sezgin (PhD, Atilim, Turkey), Hemanthkumar Sivaraj (MS, Intel, Bangalore), Sudhindra Pandav (MS, Intel, Hillsboro) Updates on alumni: Ravi Hosabettu now at Juniper Networks, Robert Palmer going to Intel Hillsboro for a 6-month internship, Ritwik Bhattacharya (finishing up fast), (Ratan, Prosenjit, Mike, Annette still where they were.) New members: Yu Yang (Jason took the “e”), PhD Xiaofang Chen, PhD Steve Barrus (BS/MS) Geof Sawaya (BS) Eun Yong Kang (BS/MS) Igor Melatti (potential 6-month postdoc) Collaborations with faculty: Konrad Slind, Gary Lindstrom, Mike Kirby, John Regehr, Priyank Kalla, Chris Myers (during SRC meetings ) Industrial collaborators: Ching Tsun Chou and SeungJoon Park (Intel), Steven German (IBM)

4 Things we’ve dabbled in of late… … dir mem Distributed model-checking Verifying hierarchical cache coherence protocols (abstraction methods) SAT methods for shared memory consistency model conformance testing Verifying distributed memory programs (such as MPI) Verifying shared thread programs (e.g. Posix)

2) Gauss: A Framework for Verifying Scientific Computing Software

6 Environment Model Model Extractor MC Server MC Client … #include int main(int argc, char** argv){ int myid; int numprocs; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myid); if(myid == 0){ int i; for(i = 1; i < numprocs; ++i){ MPI_Send(&i, 1, MPI_INT, i, 0, MPI_COMM_WORLD); } printf("%d Value: %d\n", myid, myid); } else { int val; MPI_Status s; MPI_Recv(&val, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &s); printf("%d Value: %d\n", myid, val); } MPI_Finalize(); return 0; } MPI Program int y; active proctype T1(){ int x; x = 1; if :: x = 0; :: x = 2; fi; y = x; } active proctype T2(){ int x; x = 2; if :: y = x + 1; :: y = 0; fi; assert( y == 0 ); } Program Model CIL / MPICC MPI Binary Error Visualization & Simulation Result Analyzer OK proctype MPI_Send(chan out, int c){ out!c; } proctype MPI_Bsend(chan out, int c){ out!c; } proctype MPI_Isend(chan out, int c){ out!c; } typedef MPI_Status{ int MPI_SOURCE; int MPI_TAG; int MPI_ERROR; } … MPI Library Model + Zing Abstraction Refinement Gauss: A framework for verifying scientific computing software

3) Random things (perhaps more useful than 1 or 2)

8 Tools you can download from the UV page: Distributed BFS Murphi and Parallel Random-walk Murphi MPEC (MP Execution Checker – currently for Itanium) POeM (Partial Order enabled Murphi)

9 Recent “trends” seen / heard : Considerable emphasis on Requirements Engineering for embedded systems - Avrunin’s PROPEL Language (also “Lil-Jill”) for modeling and verifying workflow during blood transfusions - Modeling requirements for cardiac pacemakers and defibrillators (work sponsored by Guidant Inc. – Jeff Thompson - Minnesota) - Garlan’s model-driven architectures work (CMU) – connectors…. Nebraska / Kansas powerhouse on many things (Java slicer, Bogor, …) Hybrid / dynamical system verification - Bruce Kroge, Goran Frehse - precision “on demand” Testing! - Rance Cleveland and Scott Smolka’s “Reactis” company (test automation that saves 10x effort for auto companies…) Positions for PhDs still available (e.g. Intel)

10 “Cool papers” read recently A Survey of Recent Advances in SAT-based Formal Verification Prasad, Biere, Gupta Concrete Model Checking with Abstract Matching and Refinement Pasareanu, Pelanek, Visser

11 Education Resources Patrick Cousot’s notes on abstract interpretation (with code) from MIT Daniel Jackson’s “Alloy” Bogor Esterel / SCADE

12 Conclusion: Doing just one or two things would have been smarter (but *very* risky in today’s funding climate – hence forced to dip many fingers in many pies … not very conducive to obtaining really deep results…

3) Projects in “backburner”

14 Projects in “back-burner” : Conformance Testing based on Limited Observations Specification Validation Design Verification Testing for Fabrication Faults Post-Silicon Verification product Does functionality match designed behavior ? (conformance testing) Pre-manufacture Post-manufacture Spec

15 Post-Si Verification for Cache Protocol Execution Future CANNOT Assume there is a “front-side bus” CANNOT Record all link traffic CAN ONLY Generate sets of possible cache states HOW BEST can one match against designed behavior? cpu Invisible “miss” traffic Visible “miss” traffic

16 Back to our specific problem domain... Verify the operation of systems at runtime when we can’t see all transactions Could also be offline analysis of a partial log of activities a b x y c d a x c d y b …

17 Required Constraint-Solving Approaches Constraint Solving in the context of Coupled Reactive Processes a b c d e a b c d e a b c d e a b c d e Observed event Likely cause