Software checking: the performance gap Nils Klarlund Lucent Technologies Bell Labs.

Slides:



Advertisements
Similar presentations
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Advertisements

Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Garbage Collection CSCI 2720 Spring Static vs. Dynamic Allocation Early versions of Fortran –All memory was static C –Mix of static and dynamic.
CMPE 421 Parallel Computer Architecture MEMORY SYSTEM.
Snick  snack A Working Computer Slides based on work by Bob Woodham and others.
Snick  snack A Working Computer Slides based on work by Bob Woodham and others.
Computer Simulation (1). 8 A (8) Initial State 44 Goal State B (5) C (3) A (8) B (5) C (3) Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7.
1: Operating Systems Overview
Review: Operating System Manages all system resources ALU Memory I/O Files Objectives: Security Efficiency Convenience.
OS Spring’03 Introduction Operating Systems Spring 2003.
Chapter 1 and 2 Computer System and Operating System Overview
MEMORY MANAGEMENT By KUNAL KADAKIA RISHIT SHAH. Memory Memory is a large array of words or bytes, each with its own address. It is a repository of quickly.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Hardware/Software Codesign. Outline Background and Rationale Architecture design constraints and issues Architecture design strategies Example of generic.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
The CPU The Central Presentation Unit Language Levels Fetch execute cycle Processor speed.
Computers Central Processor Unit. Basic Computer System MAIN MEMORY ALUCNTL..... BUS CONTROLLER Processor I/O moduleInterconnections BUS Memory.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Chapter 1 Computer System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Boolean Satisfiability and SAT Solvers
CSC-115 Introduction to Computer Programming
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
Software Overview. Why review software? Software is the set of instructions that tells hardware what to do The reason for hardware is to execute a program.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Principles of Program Design What should be taught in core programming curricula.
Ethan Jackson, Nikolaj Bjørner and Wolfram Schulte Research in Software Engineering (RiSE), Microsoft Research 1. A FORMULA for Abstractions and Automated.
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Chapter 2: Memory.
CSE332: Data Abstractions Lecture 8: Memory Hierarchy Tyler Robison Summer
Operating Systems Lecture No. 2. Basic Elements  At a top level, a computer consists of a processor, memory and I/ O Components.  These components are.
CS246 Data & File Structures Lecture 1 Introduction to File Systems Instructor: Li Ma Office: NBC 126 Phone: (713)
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
The Central Processing Unit (CPU) and the Machine Cycle.
Memory Management. Memory  Commemoration or Remembrance.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
Computer Organization & Assembly Language © by DR. M. Amer.
CompSci 100E 39.1 Memory Model  For this course: Assume Uniform Access Time  All elements in an array accessible with same time cost  Reality is somewhat.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
Backtracking and Games Eric Roberts CS 106B January 28, 2013.
RISC and CISC. What is CISC? CISC is an acronym for Complex Instruction Set Computer and are chips that are easy to program and which make efficient use.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
Copyright © Genetic Computer School 2008 Computer Systems Architecture SA 7- 0 Lesson 7 Memory Management.
CSV 889: Concurrent Software Verification Subodh Sharma Indian Institute of Technology Delhi Scalable Symbolic Execution: KLEE.
SNU OOPSLA Lab. 1 Great Ideas of CS with Java Part 1 WWW & Computer programming in the language Java Ch 1: The World Wide Web Ch 2: Watch out: Here comes.
CS-303 Introduction to Programming
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Vector and symbolic processors
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  What Operating Systems Do  Computer-System Organization  Computer-System Architecture  Operating-System Structure.
Jeffrey Ellak CS 147. Topics What is memory hierarchy? What are the different types of memory? What is in charge of accessing memory?
What is it and why do we need it? Chris Ward CS147 10/16/2008.
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Class Scheduling Using Constraint Satisfaction Victoria Donelson Garrett Grimsley.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Interrupt Processing Sequence
Indexing and hashing.
Final exam: Wednesday, March 20, 2:30pm
Testing and Debugging PPT By :Dr. R. Mall.
Computer System and Programming
Done Done Course Overview What is AI? What are the Major Challenges?
Automatic Verification
CSCI/CMPE 3334 Systems Programming
Intro to Expert Systems Paula Matuszek CSC 8750, Fall, 2004
Intro to Architecture & Organization
At least two sprites moving on the stage.
Operating Systems Lecture 3.
Year 10 Computer Science Hardware - CPU and RAM.
Presentation transcript:

Software checking: the performance gap Nils Klarlund Lucent Technologies Bell Labs

Advances in symbolic reasoning Chess Hardware verification Software verification

Chess  Did deep insights into chess make Deep Blue win over Kasparov?  No, in fact, the designers of Deep Blue bristled publicly when asked about how artificial intelligence contributed to their work  Raw computational power won; it’s a brute force search problem

Hardware verification  Is any abstraction theorem, symbolic representation, theoretical advance key?  Crunching SAT formulas that arise in practice is fortuitously an activity that fit within processor caches (as shown by Chaff,…)  This means: the insane expense, of several hundred cycles, of following a pointer is overcome  We’ve been happily riding Moore’s Law for what is a search problem

Software verification  Here’s what we typically do: Make elaborate abstractions that cut away enormous amounts of information  configuration files, contents of databases,… Then, repeat  Carry out symbolic computations that involve hashing, pointers, more hashing, more pointers,…  Search for a solution, counter example,…  We lost the enormous efficiency of executing the program

Record & reverse computations for search?  A modern CPU executes 2Gips  Couldn’t we just record them?  If so, we could maintain a machine instruction stack for reverse execution that would allow the original program to become an “efficient” search algorithm—at least for depth-first strategies  Why? Restarting a program is very expensive; stack allows for backtracking  Of course, search space is unimaginably big

Recording & backtracking has been done for debuggers!  Instrumented code executes only 5 times slower  How much memory: Say, generate 8 bytes/instruction 16Gb/s  A modern supercomputer could record several hundred seconds of computation!

Main points  A software quality approach that never “goes abstract” from the user’s perspective Everything is concrete & feasible  A natural extension of testing, one of two ways in which bugs are found  Integrates with state-of-the art debuggers  Research: how to automatically guide the search Static analysis: by constraints, computed from static analysis; we need assertions, contracts,…  Workflow:formal methods