software streams big data challenges in dynamic program
play

Software Streams Big Data Challenges in Dynamic Program Analysis - PowerPoint PPT Presentation

Intro Software streams Case studies Conclusions Software Streams Big Data Challenges in Dynamic Program Analysis Irene Finocchi Dept. Computer Science Sapienza U. Rome 1 / 41 Irene Finocchi CiE 2013 special session on data streams and


  1. Intro Software streams Case studies Conclusions Software Streams Big Data Challenges in Dynamic Program Analysis Irene Finocchi Dept. Computer Science – Sapienza U. Rome 1 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  2. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Theory versus practice Theory is when you know something, but it doesn’t work. 2 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  3. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Theory versus practice Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. 2 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  4. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Theory versus practice Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works, and they don’t know why. (Anonymous) 2 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  5. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Topic of the talk Algorithm engineering talk: boosting practice with theory 3 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  6. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Topic of the talk Algorithm engineering talk: boosting practice with theory Theory: data stream algorithmics Application area: dynamic program analysis 3 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  7. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Program analysis Development of techniques and tools for analyzing the structure and the behavior of a software system 4 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  8. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Program analysis Development of techniques and tools for analyzing the structure and the behavior of a software system Goals: conclude properties about the program: e.g., correctness, resource consumption seek opportunities for optimization error detection and correction: e.g., type checking, memory safety, data structure repair, protection against security attacks study how the program or its parts are used: e.g., usage patterns, intrusion detection program understanding 4 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  9. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Static vs. dynamic analysis Static analysis: based on knowledge of code (source, object, ...) Examples: compilers formal verification systems theoretical analysis of algorithms 5 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  10. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Static vs. dynamic analysis Static analysis: based on knowledge of code (source, object, ...) Examples: compilers formal verification systems theoretical analysis of algorithms Dynamic analysis: exploits information gathered at runtime Examples: debuggers, memory checkers performance profilers platforms for the experimental evaluation of algorithms 5 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  11. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Program analysis in algorithm engineering 6 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  12. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Soundness vs. accuracy Static analysis huge success in software design, but dynamic nature of modern computing scenarios makes it increasingly more inaccurate 7 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  13. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Program analysis community Many disciplines involved: programming languages, SE, architectures, algorithms, statistics. . . 8 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  14. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues This talk: algorithmics for dynamic program analysis Events of interest: routine calls system calls memory accesses cache misses low-level instructions interrupts ... 9 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  15. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues What’s difficult? Capturing events hardware support (counters, watchpoints) programmable interrupts/signals program instrumentation (source code or binary code) 10 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  16. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues What’s difficult? Capturing events hardware support (counters, watchpoints) programmable interrupts/signals program instrumentation (source code or binary code) Intrusiveness: Heisenberg effects (the act of observing a system causes the system to change) 10 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  17. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues What’s difficult? Capturing events hardware support (counters, watchpoints) programmable interrupts/signals program instrumentation (source code or binary code) Intrusiveness: Heisenberg effects (the act of observing a system causes the system to change) Performance : analysis inlined with program execution, slow down analyzed programs, real-time performance (billions of events per second) 10 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  18. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues What’s difficult? Capturing events hardware support (counters, watchpoints) programmable interrupts/signals program instrumentation (source code or binary code) Intrusiveness: Heisenberg effects (the act of observing a system causes the system to change) Performance : analysis inlined with program execution, slow down analyzed programs, real-time performance (billions of events per second) Massive data : dynamic analysis tools process huge amounts of data, cannot store all of them 10 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  19. Intro Software streams Case studies Conclusions Program analysis Static vs. dynamic Dynamic issues Efficient algorithms can make a difference Automated dynamic analysis less explored than static analysis from an algorithmic perspective... 11 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  20. Intro Software streams Case studies Conclusions Execution traces Some properties Software streams 12 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  21. Intro Software streams Case studies Conclusions Execution traces Some properties An example: performance profiling Form of dynamic program analysis that typically measures: execution time of instructions, basic blocks, routines frequency of portions of code Our goal: identify routines that contribute most to the running time (hot routines) Mainly useful for performance optimization 13 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  22. Intro Software streams Case studies Conclusions Execution traces Some properties Profiler characteristics Granularity Basic blocks Routines 14 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  23. Intro Software streams Case studies Conclusions Execution traces Some properties Profiler characteristics Granularity Basic blocks Routines Metrics Time Number of routine calls Cache misses, I/Os . . . 14 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  24. Intro Software streams Case studies Conclusions Execution traces Some properties Profiler characteristics Granularity Basic blocks Routines Metrics Time Number of routine calls Cache misses, I/Os . . . Data aggregation level Vertex: how many times is routine f called? Edge: how many times is f called from g ? Calling context: how many times is f called along path main → g → h → f ? 14 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

  25. Intro Software streams Case studies Conclusions Execution traces Some properties Vertex vs. calling context profiling Vertex profiling: Stream Σ = = � main , g , h , f , ... � = = � f 1 , f 2 , ..., f n � Item universe: f i ∈ { routines } Query: find most frequently called routines 15 / 41 Irene Finocchi CiE 2013 special session on data streams and compression

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend