Program Calling Context. Motivation
|
|
- Angela Ray
- 6 years ago
- Views:
Transcription
1 Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The resulting representation of contexts can be bulky 2 1
2 Overview Probabilistic alling ontext [2] Precise alling ontext Encoding [3] 3 Probabilistic alling ontext[2] ased on Mike ond s slides[1] 2
3 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 5 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 6 3
4 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by omplex programs Small methods Virtual dispatch 7 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by omplex programs Small methods Virtual dispatch /Fortran method call return Java/# method return call 8 4
5 ontext Is Nontrivial PI calls Program all sites Distinct contexts antlr 4, ,627 bloat 3, ,947 chart 2, ,603 eclipse 9, ,020 fop 2,225 37,710 hsqldb ,050 jython 1, ,048 luindex ,556 lusearch pmd 1, ,108 xalan 1,530 17,905 9 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { class EditorWindow { close() { 10 5
6 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { inputhandler() { class EditorWindow { case LIK_EXIT: close() { w.checkunsaved(); w.close(); autoupdate() { for all windows w w.close(); 11 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { inputhandler() { class EditorWindow { case LIK_EXIT: close() { w.checkunsaved(); w.close(); autoupdate() { for all windows w w.close(); ug! 12 6
7 inputhandler() { case LIK_EXIT: Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? autoupdate() { class SimpleWindow { close() { for all windows w New behavior indicates bugs w.close(); ontext class EditorWindow sensievity helps { find new behavior close() { w.checkunsaved(); ug! w.close(); 13 Two-Phase Dynamic nalyses Training ProducEon ehavior observed New or anomalous behavior detected 14 7
8 Probabilistic alling ontext dds context sensitivity to dynamic analyses Maintains value representing context Unique with high probability New value à new context à walk stack High accuracy: <0.1% false negatives Low overhead: 3% overhead, 0-8% for clients Training ProducEon ehavior observed New or anomalous behavior detected 15 P Function f ( V, cs ) q V is P value q cs is call site ID 16 8
9 f ( V, cs ) q V is P value q cs is call site ID P Function V f ( V, cs 1 ) cs cs V f ( V, cs 2 ) 1 2 V V saved V V saved 17 P Function f ( V, cs ) 3V + cs (mod 2 32 ) q V is P value q cs is call site ID 18 9
10 P Function f ( V, cs ) 3V + cs (mod 2 32 ) heap to compute Desirable properties: Non-commutative omposition efficient to compute 19 Differentiating Similar ontexts V 3V + cs 1 V 3V + cs 2 V 3V + cs 2 V 3V + cs 1 à () à () à à () à () à 20 10
11 Differentiating Similar ontexts V 3V + cs 1 V 3V + cs 2 V 3V + cs 2 V 3V + cs 1 Non-commutative f ( f (V, cs 1 ), cs 2 ) f ( f (V, cs 2 ), cs 1 ) 21 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs
12 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 3 ( 3V + cs 1 ) + cs 2 23 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 9V + 3cs 1 + cs
13 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 9V + 3cs 1 + cs 2 omposition efficient to compute n n i f ( V, cs ) = 3 V + 3 cs i i i 25 Outline Introduction Previous approaches Maintaining the P value Evaluation Methodology Evaluating potential clients ccuracy Performance 26 13
14 Methodology Implementation in Jikes RVM vailable on Jikes RVM Research rchive Deterministic calling context profiling Maintains T node at each call & return enchmarks: Daapo, SPE J2000, SPE JVM98 Platform: 3.6 GHz Pentium 4 w/linux 27 How lients Use P Record values New value à new context à walk stack Training ProducEon ehavior observed New or anomalous behavior detected 28 14
15 Evaluating Potential lients Record values Training Global hash table heck values (no new values) ProducEon ehavior observed New or anomalous behavior detected 29 Evaluating Potential lients Memory overhead: proporeonal to contexts Record values Training Global hash table heck values (no new values) ProducEon ehavior observed New or anomalous behavior detected 30 15
16 Evaluating Potential lients nomaly- based intrusion deteceon heck P value at system calls (Network, I/O, OS) Residual teseng heck P value at Java PI calls (calls to java.*) Upper bound heck P value at all calls 31 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q 32 16
17 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 33 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000,000 PI calls 116 (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 34 17
18 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) ll calls 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 35 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 Near- perfect 11,632 accuracy (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 36 18
19 P s ccuracy System calls Java PI calls Program Dynamic Distinct onf. Dynamic Distinct onf. antlr 211,490 1, ,422, ,627 3 bloat ,159,281, , chart ,891, ,603 4 eclipse 14, ,507, ,020 5 fop ,918,275 37,710 0 hsqldb ,161,541 16,050 0 jython 5,929 4, ,845, , luindex 2, ,733, ,556 0 lusearch ,511, pmd 1, ,017, , xalan 137, ,105,838,670 17,905 0 P s ccuracy System calls Java PI calls Program Dynamic Distinct onf. Dynamic Distinct onf. antlr 211,490 1, ,422, ,627 3 bloat ,159,281, , chart ,891, ,603 4 eclipse 14, ,507, ,020 5 fop ,918,275 37,710 0 hsqldb ,161,541 16,050 0 jython 5,929 4, ,845, , luindex 2, ,733, ,556 0 lusearch ,511, pmd 1, ,017, , xalan 137, ,105,838,670 17,
20 P s ccuracy ll calls Program Dynamic Distinct onf. antlr 490,363,211 1,006, bloat 6,276,446,059 1,980, chart 908,459, , eclipse 1,266,810,504 4,815,901 2,652 fop 44,200, ,955 2 hsqldb 877,680, ,795 1 jython 5,326,949,158 3,859,545 1,738 luindex 740,053, , lusearch 1,439,034,336 6,039 0 pmd 2,726,876,957 8,043,096 7,653 xalan 10,083,858, ,205 6 P s Execution Time Overhead Daapo SPE ll Overhead (%) P 3% P + system calls 20
21 P s Execution Time Overhead Daapo SPE ll Overhead (%) % P P + system calls P + PI calls P + all calls Summary P maintains calling context value New value indicates new behavior Low overhead Maintaining P value adds 3% hecking P value 0-8% Memory overhead proportional to contexts High accuracy Less than 0.1% false negative rate P adds context sensitivity to clients that detect anomalous behavior 42 21
22 Precise alling ontext Encoding [3] ased on Slides[5] Motivation alling context is important for profiling, debugging, and event logging The prior work encodes each calling context into a hash value, but cannot decode the context out of the value Is it possible to encode calling contexts into numbers from which the contexts can be restored? 44 22
23 ackground Efficient Path Profiling [4] Naively, where do you want to instrument to get the path profile? Is there any way to reduce instrumentation edges? D E F 45 The asic Idea If one node has only one outgoing edge, you don t need to instrument the edge If different paths can be encoded to different numbers, you can restore the whole paths purely based on the number values naïve example: Given the FG, how do you map the values to paths? E D F 46 23
24 Edge Value ssignment ssign each edge a value such that: Sum of values along DG path is unique, non-negative integer Sum lies in range 0 num_paths 1 Simple linear-time algorithm 47 Edge Value ssignment 48 24
25 Edge Value ssignment lgorithm foreach vertex v in reverse topological order { if v is a leaf vertex { NumPaths(v) = 1; else { NumPaths(v) = 0; for each edge e = v - > w { Val(e) = NumPaths(v); NumPaths(v) = NumPaths(v) + NumPaths(w); E D F 49 How to decode a path from a number? lgorithm Given a path id Idx, set current node cur = while (cur!= F) { take the path whose value val(e) is (1) smaller than Idx, and (2) the maximum value among all the values smaller than Idx Idx = Idx val(e); cur = tgt(e); E D F 50 25
26 Is the all-larus algorithm applicable to all Graph encoding? Yes. The L algorithm uniquely identifies each path ending at different methods. However, paths ending at different methods can have the same values, if we know ending points. E D 2 1 F ontext id DE 0 DF 1 DE 2 DF 3 E D 1 F ontext id DE 0 DF 0 DE 1 DF 1 51 lgorithm Edge Value ssignment foreach vertex v in topological order { if v is a root vertex { NumPaths(v) = 1; else { NumPaths(v) = 0; for each edge e = w - > v { Val(e) = NumPaths(v); NumPaths(v) = NumPaths(w) + Val(e); 52 26
27 L vs. New lgorithm D D 1 3 E F E F 53 How to decode a context from a number? E D 1 F ontext id DE 0 DF 0 DE 1 DF
28 Encoding yclic Gs Introduce dummy edges D 1 Given encoded context (F, 1), does it correspond to path ( D F), ( D F D F), etc? Dummy D 1 1 E F Path Encoding D F (1, F) D F D F (<0, F to >, 1, F) E F 55 Selective Reduction To fit IDs of contexts in 32-bit integers, Profiling is used to identify hot and code call edges ode edges are replaced with dummy edges such as sub-paths starting with these code edges can be separately encoded 56 28
29 Evaluation 19 programs from SPEint 2000 benchmarks, and a set of open source programs 57 omparison between L and the new algorithm 58 29
30 Observations L usually instruments outgoing edges when there are multiple The new algorithm usually instruments incoming edges when there are multiple It seems that the latter instrumentation is more efficient than the former one The intuition behind is there are more methods with multi-method callees than methods with multi-method callers No experiment focuses on the instrumentation comparison 59 Stack Depth & Encountered Dynamic ontexts 60 30
31 Summary alling context is important for program analysis and debugging oth instrumentation overhead and memory overhead (how to encode the context) are important an you think about any approach to further reduce instrumentation effort? 61 References [1] Mike ond, Probabilistic alling ontext, PPT, papers.html [2] Mike D. ond, Kathryn S. McKinley, Probabilistic alling ontext, OOPSL 07. [3] William N. Sumner, Yunhui Zheng, Dasarath Weeratunge, Xiangyu Zhang, Precise calling context encoding, ISE 10 [4] Thomas all, James Larus, Efficient Path Profiling, Micro 96 [5] James Larus, Efficient Path Profiling, Pages,
Probabilistic Calling Context
Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213
More informationLu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine
Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code
More informationExecution Tracing and Profiling
lass 8 Questions/comments iscussion of academic honesty, GT Honor ode fficient path profiling inal project presentations: ec, 3; 4:35-6:45 ssign (see Schedule for links) Problem Set 7 discuss Readings
More informationTowards Parallel, Scalable VM Services
Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors
More informationEfficient Path Profiling
Efficient Path Profiling Thomas Ball James R. Larus Bell Laboratories Univ. of Wisconsin (now at Microsoft Research) Presented by Ophelia Chesley Overview Motivation Path Profiling vs. Edge Profiling Path
More informationFree-Me: A Static Analysis for Automatic Individual Object Reclamation
Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted
More informationEfficient Runtime Tracking of Allocation Sites in Java
Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?
More informationA Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler
A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April
More informationA Dynamic Evaluation of the Precision of Static Heap Abstractions
A Dynamic Evaluation of the Precision of Static Heap Abstractions OOSPLA - Reno, NV October 20, 2010 Percy Liang Omer Tripp Mayur Naik Mooly Sagiv UC Berkeley Tel-Aviv Univ. Intel Labs Berkeley Tel-Aviv
More informationIdentifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo
Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation
More informationEfficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management
to Reuse * * Evaluated * OOPSLA * Artifact * AEC Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management Jipeng Huang Michael D. Bond Ohio State
More informationElfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang
Elfen Scheduling Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Australian National University Stephen M Blackburn Australian National University
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,
More informationPhase-based Adaptive Recompilation in a JVM
Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable
More informationHow s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services
How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th
More informationAdaptive Multi-Level Compilation in a Trace-based Java JIT Compiler
Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center October
More informationCachetor: Detecting Cacheable Data to Remove Bloat
Cachetor: Detecting Cacheable Data to Remove Bloat Khanh Nguyen and Guoqing Xu University of California, Irvine, CA, USA {khanhtn, guoqingx}@ics.uci.edu ABSTRACT Modern object-oriented software commonly
More informationScreaming Fast Declarative Pointer Analysis
Screaming Fast Declarative Pointer Analysis http://doop.program-analysis.org Martin Bravenboer and Yannis Smaragdakis University of Massachusetts Amherst University of Oregon NEPLS March 5, 2008 overview
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming
More informationUncovering Performance Problems in Java Applications with Reference Propagation Profiling
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University
More informationBugs in Deployed Software
Bell: Bit-Encoding Online Memory Leak Detection Michael D. Bond Kathryn S. McKinley University of Texas at Austin Bugs in Deployed Software Humans rely on software for critical tasks Bugs are costly &
More informationAdaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer
Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21
More informationProgram Analysis. Program Analysis
Program Analysis Class #4 Program Analysis Dynamic Analysis 1 Static VS Dynamic Analysis Static analysis operates on a model of the SW (without executing it) If successful, produces definitive information
More informationSpace-Time Tradeoffs in Software-Based Deep Packet Inspection
Space-Time Tradeoffs in Software-ased eep Packet Inspection nat remler-arr I Herzliya, Israel Yotam Harchol avid Hay Hebrew University, Israel. OWSP Israel 2011 (Was also presented in I HPSR 2011) Parts
More informationTrace-based JIT Compilation
Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,
More informationDELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING
DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING Qiang Zeng*, Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Peng Liu* NEC Laboratories America *Penn State University www.nec-labs.com Calling
More informationJinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces
Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.
More informationPERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification
PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification Lu Fang 1, Liang Dou 2, and Guoqing Xu 1 1 University of California, Irvine, USA {lfang3, guoqingx}@ics.uci.edu 2 East
More informationPhosphor: Illuminating Dynamic. Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Fork me on Github Data Flow in Commodity JVMs Jonathan Bell and Gail Kaiser Columbia University, New York, NY USA Dynamic Data Flow Analysis: Taint Tracking Output that is
More informationChronicler: Lightweight Recording to Reproduce Field Failures
Chronicler: Lightweight Recording to Reproduce Field Failures Jonathan Bell, Nikhil Sarda and Gail Kaiser Columbia University, New York, NY USA What happens when software crashes? Stack Traces Aren
More informationTowards Garbage Collection Modeling
Towards Garbage Collection Modeling Peter Libič Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics, Charles University Malostranské nám. 25, 118 00 Prague, Czech
More informationDetecting and Fixing Memory-Related Performance Problems in Managed Languages
Detecting and Fixing -Related Performance Problems in Managed Languages Lu Fang Committee: Prof. Guoqing Xu (Chair), Prof. Alex Nicolau, Prof. Brian Demsky University of California, Irvine May 26, 2017,
More informationPart I Garbage Collection Modeling: Progress Report
Part I Garbage Collection Modeling: Progress Report Peter Libič Department of Distributed and Dependable Systems http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Last
More informationJava Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White
Java Heap Resizing From Hacked-up Heuristics to Mathematical Models Jeremy Singer and David R. White Outline Background Microeconomic Theory Heap Sizing as a Control Problem Summary Outline Background
More informationGC Assertions: Using the Garbage Collector to Check Heap Properties
GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper
More informationCorrecting the Dynamic Call Graph Using Control Flow Constraints
Correting the Dynmi Cll Grph Using Control Flow Constrints Byeongheol Lee Kevin Resnik Mihel Bond Kthryn MKinley 1 Appered in CC2007 Motivtion Complexity of lrge objet oriented progrms Deompose the progrm
More informationZ-Rays: Divide Arrays and Conquer Speed and Flexibility
Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn Daniel Frampton Martin Hirzel Kathryn S. McKinley University of Texas at Austin Australian National University
More informationComplex, concurrent software. Precision (no false positives) Find real bugs in real executions
Harry Xu May 2012 Complex, concurrent software Precision (no false positives) Find real bugs in real executions Need to modify JVM (e.g., object layout, GC, or ISA-level code) Need to demonstrate realism
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationEfficient Runtime Tracking of Allocation Sites in Java
Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research Tokyo 623-4, Shimotsuruma, Yamato-shi, Kanagawa-ken,
More informationCSE 373: Data Structures and Algorithms. Memory and Locality. Autumn Shrirang (Shri) Mare
CSE 373: Data Structures and Algorithms Memory and Locality Autumn 2018 Shrirang (Shri) Mare shri@cs.washington.edu Thanks to Kasey Champion, Ben Jones, Adam Blank, Michael Lee, Evan McCarty, Robbie Weber,
More informationIBM Research - Tokyo 数理 計算科学特論 C プログラミング言語処理系の最先端実装技術. Trace Compilation IBM Corporation
数理 計算科学特論 C プログラミング言語処理系の最先端実装技術 Trace Compilation Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace, a hot path identified
More informationNew Algorithms for Static Analysis via Dyck Reachability
New Algorithms for Static Analysis via Dyck Reachability Andreas Pavlogiannis 4th Inria/EPFL Workshop February 15, 2018 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 2 A. Pavlogiannis
More informationAcknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides
Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++
More informationThe Potentials and Challenges of Trace Compilation:
Peng Wu IBM Research January 26, 2011 The Potentials and Challenges of Trace Compilation: Lessons learned from building a trace-jit on top of J9 JVM (Joint work with Hiroshige Hayashizaki and Hiroshi Inoue,
More informationThe DaCapo Benchmarks: Java Benchmarking Development and Analysis
The DaCapo Benchmarks: Java Benchmarking Development and Analysis Stephen M Blackburn αβ, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer Diwan ζ, Daniel Feinberg
More information1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing
1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing GUOQING XU, University of California, Irvine NICK MITCHELL, IBM T. J. Watson Research Center MATTHEW ARNOLD, IBM T. J. Watson Research
More informationJava Performance Evaluation through Rigorous Replay Compilation
Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,
More informationDynamic Analysis of Inefficiently-Used Containers
Dynamic Analysis of Inefficiently-Used Containers Shengqian (Victor) Yang 1 Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Ohio State University 2 University of California, Irvine PRESTO: Program Analyses
More informationString Deduplication for Java-based Middleware in Virtualized Environments
String Deduplication for Java-based Middleware in Virtualized Environments Michihiro Horie, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera IBM Research - Tokyo Duplicated strings found on Web Application
More informationContinuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat
Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.
More informationUnderstanding Parallelism-Inhibiting Dependences in Sequential Java
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core
More informationMore Graph Algorithms
More Graph Algorithms Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Announcements Calendar on the webpage has updated office hours for this week. Last Time: Dijkstra s Algorithm to find
More informationAverroes: Letting go of the library!
Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]
More informationCooperative Memory Management in Embedded Systems
ooperative Memory Management in Embedded Systems, Philip Taffner, hristoph Erhardt, hris7an Dietrich, Michael S7lkerich Department of omputer Science 4 Distributed Systems and Opera7ng Systems 1 2 Motivation
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More informationPointer Analysis in the Presence of Dynamic Class Loading
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan University of Colorado at Boulder Michael Hind IBM T.J. Watson Research Center 1 Pointer analysis motivation Code a =
More informationPrecise Calling Context Encoding
Precise Calling Context Encoding William N. Sumner, Yunhui Zheng, asarath Weeratunge, Xiangyu Zhang epartment of Computer Science, Purdue University {wsumner,zheng6,dweeratu,xyzhang@cs.purdue.edu ASTRACT
More informationFinding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems
Finding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems Yufei Ding, Mingzhou Zhou, Zhijia Zhao, Sarah Eisenstat, Xipeng Shen Computer Science Department,
More informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationTolerating Memory Leaks
Tolerating Memory Leaks UT Austin Technical Report TR-07-64 December 7, 2007 Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu
More informationMyths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer
More informationWe don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson
Homework 3 CS 321 - Data Structures Fall 2018 Dec 6, 2018 Name: Collaborators: We don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson
More informationCSE 417 Branch & Bound (pt 4) Branch & Bound
CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity
More informationAlgorithms for Data Structures: Uninformed Search. Phillip Smith 19/11/2013
lgorithms for Data Structures: Uninformed Search Phillip Smith 19/11/2013 Representations for Reasoning We know (at least) two models of a world: model of the static states of the world model of the effects
More informationChapter 2: Basic Data Structures
Chapter 2: Basic Data Structures Basic Data Structures Stacks Queues Vectors, Linked Lists Trees (Including Balanced Trees) Priority Queues and Heaps Dictionaries and Hash Tables Spring 2014 CS 315 2 Two
More information6.006 Introduction to Algorithms Recitation 19 November 23, 2011
The Knapsack Problem You find yourself in a vault chock full of valuable items. However, you only brought a knapsack of capacity S pounds, which means the knapsack will break down if you try to carry more
More informationCOMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1
COMP 202 Recursion CONTENTS: Recursion COMP 202 - Recursion 1 Recursive Thinking A recursive definition is one which uses the word or concept being defined in the definition itself COMP 202 - Recursion
More informationLarge-Scale API Protocol Mining for Automated Bug Detection
Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();
More informationCISC 662 Graduate Computer Architecture. Classifying ISA. Lecture 3 - ISA Michela Taufer. In a CPU. From Source to Assembly Code
IS 662 Graduate omputer rchitecture Lecture 3 - IS Michela Taufer lassifying IS Powerpoint Lecture Notes from John Hennessy and David Patterson s: omputer rchitecture, 4th edition ---- dditional teaching
More informationB+ Tree Review. CSE332: Data Abstractions Lecture 10: More B Trees; Hashing. Can do a little better with insert. Adoption for insert
B+ Tree Review CSE2: Data Abstractions Lecture 10: More B Trees; Hashing Dan Grossman Spring 2010 M-ary tree with room for L data items at each leaf Order property: Subtree between keys x and y contains
More informationInterprocedural Analysis. Motivation. Interprocedural Analysis. Function Calls and Pointers
Interprocedural Analysis Motivation Last time Introduction to alias analysis Today Interprocedural analysis Procedural abstraction Cornerstone of programming Introduces barriers to analysis Example x =
More informationAnalysis of Algorithms
Algorithm An algorithm is a procedure or formula for solving a problem, based on conducting a sequence of specified actions. A computer program can be viewed as an elaborate algorithm. In mathematics and
More informationGraphs & Digraphs Tuesday, November 06, 2007
Graphs & Digraphs Tuesday, November 06, 2007 10:34 PM 16.1 Directed Graphs (digraphs) like a tree but w/ no root node & no guarantee of paths between nodes consists of: nodes/vertices - a set of elements
More informationWrite Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee Martin Rinard MIT Laboratory for Computer Science Research Goal Use static program analysis to identify and remove unnecessary write barriers in programs
More informationMEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019
MEMORY: SWAPPING Shivaram Venkataraman CS 537, Spring 2019 ADMINISTRIVIA - Project 2b is out. Due Feb 27 th, 11:59 - Project 1b grades are out Lessons from p2a? 1. Start early! 2. Sketch out a design?
More informationMachine Learning. bad news. Big Picture: Supervised Learning. Supervised (Function) Learning. Learning From Data with Decision Trees.
bad news Machine Learning Learning From Data with Decision Trees Supervised (Function) Learning y = F(x 1 x n ): true function (usually not known) D: training sample drawn from F(x) 57,M,195,0,125,95,39,25,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0
More informationAutomated Documentation Inference to Explain Failed Tests
Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers
More informationCMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro
CMU-Q 15-381 Lecture 2: Search problems Uninformed search Teacher: Gianni A. Di Caro RECAP: ACT RATIONALLY Think like people Think rationally Agent Sensors? Actuators Percepts Actions Environment Act like
More informationAn Efficient Storeless Heap Abstraction Using SSA Form
An Efficient Storeless Heap Abstraction Using SSA Form Nomair A. Naeem Ondřej Lhoták D. R. Cheriton School of Computer Science University of Waterloo, Canada {nanaeem,olhotak}@uwaterloo.ca Abstract Precise,
More informationCS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees. CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees 1
CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees 1 Goals of this tutorial You should be able to... understand
More informationIP Forwarding Computer Networking. Graph Model. Routes from Node A. Lecture 11: Intra-Domain Routing
IP Forwarding 5-44 omputer Networking Lecture : Intra-omain Routing RIP (Routing Information Protocol) & OSPF (Open Shortest Path First) The Story So Far IP addresses are structured to reflect Internet
More informationShortCut: Architectural Support for Fast Object Access in Scripting Languages
Jiho Choi, Thomas Shull, Maria J. Garzaran, and Josep Torrellas Department of Computer Science University of Illinois at Urbana-Champaign http://iacoma.cs.uiuc.edu ISCA 2017 Overheads of Scripting Languages
More informationReferences. NoSQL Motivation. Why NoSQL as the Solution? NoSQL Key Feature Decisions. CSE 444: Database Internals
References SE 444: atabase Internals Scalable SQL and NoSQL ata Stores, Rick attell, SIGMO Record, ecember 2010 (Vol. 39, No. 4) ynamo: mazon s Highly vailable Key-value Store. y Giuseppe eandia et. al.
More informationCS 251, LE 2 Fall MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY
CS 251, LE 2 Fall 2016 MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY W1.) (i) Show one possible valid 2-3 tree containing the nine elements: 1 3 4 5 6 8 9 10 12. (ii) Draw the final binary search
More informationJAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder
JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance
More informationSoftware Challenges: Abstraction and Analysis
Software Challenges: Abstraction and Analysis Martin Bravenboer University of Massachusetts Amherst University of Oregon April 2, 2009 University of Waterloo my research 1 the design and implementation
More informationMidterm 1 for CS 170
UC Berkeley CS 170 Midterm 1 Lecturer: Satish Rao March 10 Midterm 1 for CS 170 Print your name:, (last) (first) Sign your name: Write your section number (e.g., 101): Write your SID: One page of notes
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta Man Cao Michael D. Bond Milind Kulkarni Ohio State University Purdue University {sengupta,caoma,mikebond}@cse.ohio-state.edu
More informationThe wolf sheep cabbage problem. Search. Terminology. Solution. Finite state acceptor / state space
Search The wolf sheep cabbage problem What is search? Terminology: search space, strategy Modelling Uninformed search (not intelligent ) Breadth first Depth first, some variations omplexity space and time
More informationCS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University
CS415 Compilers Procedure Abstractions These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Where are we? Well understood Engineering Source Code
More informationSolutions to Exam Data structures (X and NV)
Solutions to Exam Data structures X and NV 2005102. 1. a Insert the keys 9, 6, 2,, 97, 1 into a binary search tree BST. Draw the final tree. See Figure 1. b Add NIL nodes to the tree of 1a and color it
More informationModule 5 Graph Algorithms
Module 5 Graph lgorithms Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 97 E-mail: natarajan.meghanathan@jsums.edu 5. Graph Traversal lgorithms Depth First
More informationHello, and welcome to the Texas Instruments Precision DAC overview of DC specifications of DACs. In this presentation we will briefly cover the
Hello, and welcome to the Texas Instruments Precision DAC overview of DC specifications of DACs. In this presentation we will briefly cover the properties of the ideal DAC and several other important DC
More informationScribe: Virginia Williams, Sam Kim (2016), Mary Wootters (2017) Date: May 22, 2017
CS6 Lecture 4 Greedy Algorithms Scribe: Virginia Williams, Sam Kim (26), Mary Wootters (27) Date: May 22, 27 Greedy Algorithms Suppose we want to solve a problem, and we re able to come up with some recursive
More informationEvaluating Design Tradeoffs in Numeric Static Analysis for Java
Evaluating Design Tradeoffs in Numeric Static Analysis for Java Shiyi Wei 1(B), Piotr Mardziel 2, Andrew Ruef 3,JeffreyS.Foster 3, and Michael Hicks 3 1 The University of Texas at Dallas, Richardson, USA
More informationStatic Java Program Features for Intelligent Squash Prediction
Static Java Program Features for Intelligent Squash Prediction Jeremy Singer,, Adam Pocock, Mikel Lujan, Gavin Brown, Nikolas Ioannou, Marcelo Cintra Thread-level Speculation... Aim to use parallel multi-core
More informationCalvin Lin The University of Texas at Austin
Interprocedural Analysis Last time Introduction to alias analysis Today Interprocedural analysis March 4, 2015 Interprocedural Analysis 1 Motivation Procedural abstraction Cornerstone of programming Introduces
More informationCCured. One-Slide Summary. Lecture Outline. Type-Safe Retrofitting of C Programs
CCured Type-Safe Retrofitting of C Programs [Necula, McPeak,, Weimer, Condit, Harren] #1 One-Slide Summary CCured enforces memory safety and type safety in legacy C programs. CCured analyzes how you use
More informationPreemption Delay Analysis for the Stack Cache
Preemption Delay nalysis for the Stack ache mine Naji U2IS ENST ParisTech Florian randner LTI, NRS Telecom ParisTech This work is supported by the Digiteo project PM-TOP. 1/18 Real-Time Systems Strict
More information