Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-642-28652-0_12guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

VMAD: an advanced dynamic program analysis and instrumentation framework

Published: 24 March 2012 Publication History

Abstract

VMAD (Virtual Machine for Advanced Dynamic analysis) is a platform for advanced profiling and analysis of programs, consisting in a static component and a runtime system.
The runtime system is organized as a set of decoupled modules, dedicated to specific instrumenting or optimizing operations, dynamically loaded when required. The program binary files handled by VMAD are previously processed at compile time to include all necessary data, instrumentation instructions and callbacks to the runtime system. For this purpose, the LLVM compiler has been extended to automatically generate multiple versions of the code, each of them tailored for the targeted instrumentation or optimization strategies. The compiler chooses the most suitable intermediate representation for each version, depending on the information to be acquired and on the optimizations to be applied. The control flow graph is adapted to include the new versions and to transfer the control to and from the runtime system, which is in charge of the execution flow orchestration.
The strength of our system resides in its extensibility, as one can add support for various new profiling or optimization strategies, independently of the existing modules. VMAD's potential is illustrated by presenting several analysis and optimization applications dedicated to loop nests: instrumentation by sampling, dynamic dependence analysis, adaptive version selection.

References

[1]
Ansel, J., Chan, C., Wong, Y. L., Olszewski, M., Zhao, Q., Edelman, A., Amarasinghe, S.: Petabricks: a language and compiler for algorithmic choice. In: PLDI 2009, pp. 38-49. ACM (2009)
[2]
Arnold, M., Ryder, B. G.: A framework for reducing the cost of instrumented code. SIGPLAN Notices 36(5), 168-179 (2001)
[3]
Aslot, V., Domeika, M. J., Eigenmann, R., Gaertner, G., Jones, W. B., Parady, B.: SPEComp: A New Benchmark Suite for Measuring Parallel Computer Performance. In: Eigenmann, R., Voss, M. J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 1-10. Springer, Heidelberg (2001)
[4]
Banerjee, U.: Loop Transformations for Restructuring Compilers - The Foundations. Kluwer Academic Publishers (1993) ISBN 0-7923-9318-X
[5]
Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: PACT 2004: Proc. of IEEE Int. Conf. on Parallel Architectures and Compilation Techniques (2004)
[6]
Blackford, L. S., Demmel, J., Dongarra, J., Duff, I., Hammarling, S., Henry, G., Heroux, M., Kaufman, L., Lumsdaine, A., Petitet, A., Pozo, R., Remington, K., Whaley, R.C.: An updated set of basic linear algebra subprograms (blas). ACM Transactions on Mathematical Software 28, 135-151 (2001)
[7]
Bondhugula, U., Hartono, A., Ramanujam, J., Sadayappan, P.: A practical automatic polyhedral parallelizer and locality optimizer. In: PLDI (2008)
[8]
Brooks, G., Hansen, G. J., Simmons, S.: A new approach to debugging optimized code. In: ACM SIGPLAN Conf. on Programming Language Design and Implementation, PLDI (1992)
[9]
Chilimbi, T. M., Hirzel, M.: Dynamic hot data stream prefetching for generalpurpose programs. In: PLDI 2002: Proc. of ACM SIGPLAN Conf. on Programming Language Design and Implementation (2002)
[10]
Official website of clang: a C language family frontend for LLVM, http://clang.llvm.org
[11]
Edwards, A., Vo, H., Srivastava, A.: Vulcan binary transformation in a distributed environment. Tech. rep. (2001)
[12]
The GNU Compiler Collection, http://gcc.gnu.org
[13]
Hauswirth, M., Chilimbi, T. M.: Low-overhead memory leak detection using adaptive statistical profiling. In: 11th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, ASPLOS-XI. ACM (2004)
[14]
Hirzel, M., Chilimbi, T.: Bursty tracing: A framework for low-overhead temporal profiling. In: 4th ACMWorkshop on Feedback Directed and Dynamic Optimization FDDO4 (2001)
[15]
Huang, Y., Peng, L., Wu, C., Kashnikov, Y., Rennecke, J., Fursin, G.: Transforming GCC into a research-friendly environment: plugins for optimization tuning and reordering, function cloning and program instrumentation. In: 2nd Int. Workshop on GCC Research Opportunities (GROW2010), Pisa Italy (2010), Google Summer of Code 2009 (2010)
[16]
Interactive Compilation Interface, http://ctuning.org/ici
[17]
Jaramillo, C., Gupta, R., Soffa, M. L.: FULLDOC: A Full Reporting Debugger for Optimized Code. In: SAS 2000. LNCS, vol. 1824, pp. 240-260. Springer, Heidelberg (2000)
[18]
Kim, M., Kim, H., Luk, C. K.: Sd3: A scalable approach to dynamic datadependence profiling. In: Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO, pp. 535-546. IEEE Computer Society, Atlanta (2010)
[19]
Kumar, N., Childers, B., Soffa, M. L.: Transparent debugging of dynamically optimized code. In: Int. Symp. on Code Generation and Optimization, CGO 2009. IEEE Computer Society (2009)
[20]
Larus, J. R.: Loop-level parallelism in numeric and symbolic programs. IEEE Trans. Parallel Distrib. Syst. 4, 812-826 (1993)
[21]
Laurenzano, M., Tikir, M., Carrington, L., Snavely, A.: PEBIL: Efficient static binary instrumentation for linux. In: ISPASS-2010: IEEE Int. Symp. on Performance Analysis of Systems and Software (2010)
[22]
LLVM compiler infrastructure, http://llvm.org
[23]
Luk, C. K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., Hazelwood, K.: Pin: building customized program analysis tools with dynamic instrumentation. In: PLDI 2005: Proc. of ACM SIGPLAN Conf. on Programming Language Design and Implementation (2005)
[24]
Marino, D., Musuvathi, M., Narayanasamy, S.: Literace: effective sampling for lightweight data-race detection. In: PLDI 2009: Proc. of ACM SIGPLAN Conf. on Programming Language Design and Implementation (2009)
[25]
Mars, J., Hundt, R.: Scenario based optimization: A framework for statically enabling online optimizations. In: CGO 2009, pp. 169-179. IEEE Computer Society
[26]
OmpSCR: OpenMP source code repository, http://sourceforge.net/projects/ompscr
[27]
Pointer-intensive benchmark suite, http://pages.cs.wisc.edu/˜austin/ptr-dist.html
[28]
Pradelle, B., Clauss, P., Loechner, V.: Adaptive runtime selection of parallel schedules in the polytope model. In: ACM/SIGSIM High Performance Computing Symposium (HPC 2011). ACM (April 2011)
[29]
SPEC CPU (2006), http://www.spec.org/cpu2006
[30]
Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J., Amato, N. M., Rauchwerger, L.: A framework for adaptive algorithm selection in stapl. In: PPoPP 2005, pp. 277-288. ACM (2005)
[31]
Weicker, R. P., Henning, J. L.: Subroutine profiling results for the CPU2006 benchmarks. SIGARCH Comput. Archit. News 35(1) (2007)
[32]
Zhang, X., Navabi, A., Jagannathan, S.: Alchemist: A transparent dependence distance profiling infrastructure. In: Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2009, pp. 47-58. IEEE Computer Society, Washington, DC (2009)

Cited By

View all
  • (2022)Creating concise and efficient dynamic analyses with ALDAProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507760(740-752)Online publication date: 28-Feb-2022
  • (2018)PIRA: performance instrumentation refinement automationProceedings of the 5th ACM SIGPLAN International Workshop on Artificial Intelligence and Empirical Methods for Software Engineering and Parallel Computing Systems10.1145/3281070.3281071(1-10)Online publication date: 6-Nov-2018
  • (2017)Clairvoyance: look-ahead compile-time schedulingProceedings of the 2017 International Symposium on Code Generation and Optimization10.5555/3049832.3049852(171-184)Online publication date: 4-Feb-2017
  • Show More Cited By
  1. VMAD: an advanced dynamic program analysis and instrumentation framework

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    CC'12: Proceedings of the 21st international conference on Compiler Construction
    March 2012
    243 pages
    ISBN:9783642286513
    • Editor:
    • Michael O'Boyle

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 24 March 2012

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 19 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Creating concise and efficient dynamic analyses with ALDAProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507760(740-752)Online publication date: 28-Feb-2022
    • (2018)PIRA: performance instrumentation refinement automationProceedings of the 5th ACM SIGPLAN International Workshop on Artificial Intelligence and Empirical Methods for Software Engineering and Parallel Computing Systems10.1145/3281070.3281071(1-10)Online publication date: 6-Nov-2018
    • (2017)Clairvoyance: look-ahead compile-time schedulingProceedings of the 2017 International Symposium on Code Generation and Optimization10.5555/3049832.3049852(171-184)Online publication date: 4-Feb-2017
    • (2016)A Survey on Thread-Level Speculation TechniquesACM Computing Surveys10.1145/293836949:2(1-39)Online publication date: 30-Jun-2016
    • (2016)Multiversioned decoupled access-execute: the key to energy-efficient compilation of general-purpose programsProceedings of the 25th International Conference on Compiler Construction10.1145/2892208.2892209(121-131)Online publication date: 17-Mar-2016
    • (2013)Online dynamic dependence analysis for speculative polyhedral parallelizationProceedings of the 19th international conference on Parallel Processing10.1007/978-3-642-40047-6_21(191-202)Online publication date: 26-Aug-2013
    • (2012)Noise-based testing and analysis of multi-threaded C/C++ programs on the binary levelProceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2338967.2336813(36-46)Online publication date: 16-Jul-2012

    View Options

    View options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media