ABSTRACT
Acyclic path profile is an abstraction of dynamic control flow paths of procedures and has been found to be useful in a wide spectrum of activities. Unfortunately, the runtime overhead of obtaining such a profile can be high, limiting its use in practice. In this paper, we present partitioned path profiling (P3) which runs K copies of the program in parallel, each with the same input but on a separate core, and collects the profile only for a subset of intra-procedural paths in each copy, thereby, distributing the overhead of profiling. P3 identifies “profitable” procedures and assigns disjoint subsets of paths of a profitable procedure to different copies for profiling. To obtain exact execution frequencies of a subset of paths, we design a new algorithm, called PSPP. All paths of an unprofitable procedure are assigned to the same copy. P3 uses the classic Ball-Larus algorithm for profiling unprofitable procedures. Further, P3 attempts to evenly distribute the profiling overhead across the copies. To the best of our knowledge, P3 is the first algorithm for parallel path profiling. We have applied P3 to profile several programs in the SPEC 2006 benchmark. Compared to sequential profiling, P3 substantially reduced the runtime overhead on these programs averaged across all benchmarks. The reduction was 23%, 43% and 56% on average for 2, 4 and 8 cores respectively. P3 also performed better than a coarse-grained approach that treats all procedures as unprofitable and distributes them across available cores. For 2 cores, the profiling overhead of P3 was on average 5% less compared to the coarse-grained approach across these programs. For 4 and 8 cores, it was respectively 18% and 25% less.
- T. Apiwattanapong and M. J. Harrold. Selective path profiling. In Proceedings of the 2002 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE ’02, pages 35–42, New York, NY, USA, 2002. ACM. Google ScholarDigital Library
- T. Ball. Efficiently counting program events with support for on-line queries. ACM Trans. Program. Lang. Syst., 16(5):1399–1410, Sept. 1994. Google ScholarDigital Library
- T. Ball and J. R. Larus. Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems, 16:1319–1360, July 1994. Google ScholarDigital Library
- T. Ball and J. R. Larus. Efficient path profiling. In Proceedings of the 29th Annual ACM/IEEE International Symposium on Microarchitecture, MICRO 29, pages 46–57, Washington, DC, USA, 1996. IEEE Computer Society. Google ScholarDigital Library
- S. Baswana, S. Roy, and R. Chouhan. Pertinent path profiling: Tracking interactions among relevant statements. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), CGO ’13, pages 1–12, Washington, DC, USA, 2013. IEEE Computer Society. Google ScholarDigital Library
- M. D. Bond and K. S. McKinley. Practical path profiling for dynamic optimizers. In Proceedings of the International Symposium on Code Generation and Optimization, CGO ’05, pages 205–216, Washington, DC, USA, 2005. IEEE Computer Society. Google ScholarDigital Library
- J. Bowring, A. Orso, and M. J. Harrold. Monitoring deployed software using software tomography. In Proceedings of the 2002 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE ’02, pages 2–9, New York, NY, USA, 2002. ACM. Google ScholarDigital Library
- T. M. Chilimbi, B. Liblit, K. Mehra, A. V. Nori, and K. Vaswani. Holmes: Effective statistical debugging via efficient path profiling. In Proceedings of the 31st International Conference on Software Engineering, ICSE ’09, pages 34–44, Washington, DC, USA, 2009. IEEE Computer Society. Google ScholarDigital Library
- T. M. Chilimbi, A. V. Nori, and K. Vaswani. Quantifying the effectiveness of testing via efficient residual path profiling. In Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, ESEC-FSE ’07, pages 545–548, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- S. Debray and W. Evans. Profile-guided code compression. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, PLDI ’02, pages 95–105, New York, NY, USA, 2002. ACM. Google ScholarDigital Library
- D. C. D’Elia and C. Demetrescu. Ball-larus path profiling across multiple loop iterations. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA ’13, pages 373–390, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- M. Diep, M. Cohen, and S. Elbaum. Probe distribution techniques to profile events in deployed software. In Proceedings of the 17th International Symposium on Software Reliability Engineering, ISSRE ’06, pages 331–342, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
- M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. In Proceedings of the 21st International Conference on Software Engineering, ICSE ’99, pages 213–224, New York, NY, USA, 1999. ACM. Google ScholarDigital Library
- M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman & Co., New York, NY, USA, 1979. Google ScholarDigital Library
- R. L. Graham. Bounds on multiprocessing timing anomalies. SIAM Journal on Applied Mathematics, 17(2):416–429, 1969.Google ScholarDigital Library
- J. L. Henning. Spec cpu2006 benchmark descriptions. ACM SIGARCH Computer Architecture News, 34(4):1–17, 2006. Google ScholarDigital Library
- J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In Proceedings of the 24th International Conference on Software Engineering, ICSE ’02, pages 467–477, New York, NY, USA, 2002. ACM. Google ScholarDigital Library
- R. Joshi, M. D. Bond, and C. Zilles. Targeted path profiling: Lower overhead path profiling for staged dynamic optimization systems. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization, CGO ’04, pages 239–, Washington, DC, USA, 2004. IEEE Computer Society. Google ScholarDigital Library
- C. Lattner and V. Adve. LLVM: A compilation framework for lifelong program analysis and transformation. pages 75–88, San Jose, CA, USA, Mar 2004. Google ScholarDigital Library
- B. Li, L. Wang, and H. Leung. Profiling selected paths with loops. SCIENCE CHINA Information Sciences, 57(7):1–15, 2014.Google ScholarCross Ref
- D. Melski and T. W. Reps. Interprocedural path profiling. In Proceedings of the 8th International Conference on Compiler Construction, Held As Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS’99, CC ’99, pages 47–62, London, UK, UK, 1999. Springer-Verlag. Google ScholarDigital Library
- C. Pavlopoulou and M. Young. Residual test coverage monitoring. In Proceedings of the 21st International Conference on Software Engineering, ICSE ’99, pages 277–284, New York, NY, USA, 1999. ACM. Google ScholarDigital Library
- D. Saha, P. Dhoolia, and G. Paul. Distributed program tracing. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pages 180–190, New York, NY, USA, 2013. ACM. Google ScholarDigital Library
- K. Vaswani, A. V. Nori, and T. M. Chilimbi. Preferential path profiling: Compactly numbering interesting paths. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’07, pages 351–362, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
Index Terms
- P3: partitioned path profiling
Recommendations
Efficient path profiling
MICRO 29: Proceedings of the 29th annual ACM/IEEE international symposium on MicroarchitectureA path profile determines how many times each acyclic path in a routine executes. This type of profiling subsumes the more common basic block and edge profiling, which only approximate path frequencies. Path profiles have many potential uses in program ...
Selective path profiling
Recording dynamic information for only a subset of program entities can reduce monitoring overhead and can facilitate efficient monitoring of deployed software. Program entities, such as statements, can be monitored using probes that track the execution ...
Profiling all paths: A new profiling technique for both cyclic and acyclic paths
As an important technique in dynamic program analysis, path profiling collects the execution frequency of different paths, and has been widely used in a variety of areas. However, existing intra-procedural profiling techniques cannot effectively deal ...
Comments