Skip to main content

An Offline Approach for Whole-Program Paths Analysis Using Suffix Arrays

  • Conference paper
Languages and Compilers for High Performance Computing (LCPC 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

Software optimization techniques are highly reliant on program behavior to deliver high performance. A key element with these techniques is to identify program paths that are likely to achieve the greatest performance benefits at runtime. Several approaches have been proposed to address this problem. However, many of them fail to cover larger optimization scope as they are restricted to loops or procedures. This paper introduces a novel approach for representing and analyzing complete program paths. Unlike the whole-program paths (WPPs) approach that relies on a DAG to represent program paths, our program trace is processed into a suffix-array that can enable very fast searching algorithms that run with time O(ln (N)), N being the length of the trace. This allows to process reasonable trace sizes offline, avoiding the high runtime overhead incurred by WPPs, while accurately characterizing hot paths. Our evaluation shows impressive performance results, with almost 48% of the code being covered by hot paths. We also demonstrate the effectiveness of our approach to optimize for power. For this purpose, an adaptive cache resizing scheme is used that shows energy savings in the order of 12%.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bala, V.: Low overhead path profiling. Technical Report HPL-96-87, Hewlett Packard Labs (1996)

    Google Scholar 

  2. Balasubramonian, R., Albonesi, D.H., Buyuktosunoglu, A., Dwarkadas, S.: Memory hierarchy reconfiguration for energy and performance in general purpose processor architectures. In: Proc. of the 33th Int’l Conf. on Microarchitecture, December 2000, pp. 245–257 (2000)

    Google Scholar 

  3. Ball, T., Larus, J.R.: Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems 16(4), 1319–1360 (1994)

    Article  Google Scholar 

  4. Ball, T., Larus, J.R.: Efficient path profiling. In: Proc. of the 29th Annual Int’l Symposium on Microarchitecture (December 1996)

    Google Scholar 

  5. Ball, T.: What’s in a Region? or computing control dependence regions in near-linear time for reducible control flow. ACM Letters on Programming Languages and Systems 2(1-4), 1–16 (1993)

    Article  Google Scholar 

  6. Bodin, F., Rohou, E., Seznec, A.: System for Assembly-Language Transformation and Optimization. In: Proc. of the 6th Workshop on Compilers for Parallel Computers (December 1996)

    Google Scholar 

  7. Burger, D., Austin, T.: The SimpleScalar Tool Set, Version 2.0. Computer Architecture News, pp. 13–25 (1997)

    Google Scholar 

  8. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, K.: Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems 13(4), 451–490 (1991)

    Article  Google Scholar 

  9. Faraboschi, P., Brown, G., Fisher, J.A., Desoli, G., Homewood, F.: Lx: A Technology Platform for Customizable VLIW Embedded Processing. In: Proc. of the 27th Int’l Symposium on Computer Architecture (June 2000)

    Google Scholar 

  10. Grossi, R., Vitter, J.S.: Compressed Suffix Arrays and Suffix Trees with Applications to Text Indexing and String Matching. In: Proc. of the ACM Symposium on the Theory of Computing (2000)

    Google Scholar 

  11. Guthaus, M.R., Ringenberg, J.S., Ernst, D., Austin, T.M., Mudge, T., Brown, R.B.: MiBench: A Free, Commercially Representative Embedded Benchmark Suite. In: Proc. of the 4th IEEE Int’l Workshop on Workload Characterization, December 2001, pp. 3–14 (2001)

    Google Scholar 

  12. Jacobson, Q., Rotenberg, E., Smith, J.: Path-Based Next Trace Prediction. In: Proc. of the 30th Int’l Symposium on Microarchitecture (November 1997)

    Google Scholar 

  13. Karp, R.M., Miller, R.E., Rosenberg, A.L.: Rapid Identification of Repeated Patterns in Strings, Arrays and Trees. In: Proc. of the 4th ACM Symposium on Theory of Computing (1972)

    Google Scholar 

  14. Larus, J.R.: Whole Program Paths. In: Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation (May 1999)

    Google Scholar 

  15. Manber, U., Myers, G.: Suffix Arrays: A New Method for on-line String Searches. In: Proc. of 1st ACM-SIAM SODA, pp. 319–327 (1990)

    Google Scholar 

  16. Nevill-Manning, C.G., Witten, I.H.: Identifying Hierarchical Structure in Sequences. Journal of Artificial Intelligence Research 7, 67–82 (1997)

    MATH  Google Scholar 

  17. Plezkun, A.R.: Techniques for compressing program address traces. In: Proc. of the 27th Int’l Conf. on Microarchitecture, pp. 32–40 (1994)

    Google Scholar 

  18. Pokam, G., Bodin, F.: Energy-efficiency potential of a phase-based cache resizing scheme for embedded systems. In: Proc. of the 8th Int’l Worskhop on Interaction between Compilers and Computer Architectures (February 2004)

    Google Scholar 

  19. Shivakumar, P., Jouppi, N.: Cacti 3.0: An integrated cache timing power, and area model. Technical report, DEC Western research Lab (2002)

    Google Scholar 

  20. Young, C., Smith, M.: Better Global Scheduling Using Path Profiles. In: Proc. of the 30th Int’l Symposium on Microarchitecture (December 1998)

    Google Scholar 

  21. Zhang, C., Vahid, F., Najjar, W.: A highly configurable cache architecture for embedded systems. In: Proc. of the 30th Int’l Symposium on Computer Architecture (June 2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pokam, G., Bodin, F. (2005). An Offline Approach for Whole-Program Paths Analysis Using Suffix Arrays. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_26

Download citation

  • DOI: https://doi.org/10.1007/11532378_26

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28009-5

  • Online ISBN: 978-3-540-31813-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics