Abstract
A common prerequisite for a number of debugging and performance-analysis techniques is the injection of auxiliary program code into the application under investigation, a process called instrumentation. To accomplish this task, source-code preprocessors are often used. Unfortunately, existing preprocessing tools either focus only on a very specific aspect or use hard-coded commands for instrumentation. In this paper, we examine which basic constructs are required to specify a user-defined routine entry/exit instrumentation. This analysis serves as a basis for a generic instrumentation component working on the source-code level where the instructions to be inserted can be flexibly configured. We evaluate the identified constructs with our prototypical implementation and show that these are sufficient to fulfill the needs of a number of todays’ performance-analysis tools.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Shende, S.S., Malony, A.D.: The TAU parallel performance system. International Journal of High Performance Computing Applications 20(2), 287–331 (Summer 2006)
MPI Forum: MPI – A Message-Passing Interface Standard, Version 2.1. ch.14 (June 2008)
MPI PERUSE: An MPI extension for revealing unexposed implementation information (May 2006), http://www.mpi-peruse.org
Leko, A., Bonachea, D., Su, H.H., George, A.D.: GASP: A performance analysis tool interface for global address space programming models, specification version 1.5. Technical Report LBNL-61606, Lawrence Berkeley National Lab (September 2006)
Free Software Foundation: GCC 4.3.2 manual – options for code generation conventions (2008), http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Code-Gen-Options.html
Buck, B., Hollingsworth, J.K.: An API for runtime code patching. Journal of High Performance Computing Applications 14(4), 317–329 (2000)
De Rose, L., Hoover Jr., T., Hollingsworth, J.K.: The dynamic probe class library – an infrastructure for developing instrumentation for performance tools. In: Proc. 15th International Parallel & Distributed Processing Symposium (IPDPS 2001), Washington, DC. IEEE Computer Society, Los Alamitos (2001)
Mohr, B., Malony, A.D., Shende, S., Wolf, F.: Design and prototype of a performance tool interface for OpenMP. The Journal of Supercomputing 23, 105–128 (2002)
Schordan, M., Quinlan, D.: A source-to-source architecture for user-defined optimizations. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 214–223. Springer, Heidelberg (2003)
Lindlan, K.A., Cuny, J., Malony, A.D., Shende, S., Mohr, B., Rivenburgh, R.: A tool framework for static and dynamic analysis of object-oriented software with templates. In: Proc. SC 2000: High Performance Networking and Computing Conference (November 2000)
Meyers, S.: More Effective C++. Addison-Wesley, Reading (1996) (Item 9)
Geimer, M., Wolf, F., Wylie, B.J.N., Mohr, B.: Scalable paralle trace-based performance analysis. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) PVM/MPI 2006. LNCS, vol. 4192, pp. 303–312. Springer, Heidelberg (2006)
Knüpfer, A., Brunst, H., Doleschal, J., Jurenz, M., Lieber, M., Mickler, H., Müller, M.S., Nagel, W.E.: The Vampir performance analysis tool set. In: Resch, M., Keller, R., Himmler, V., Krammer, B., Schulz, A. (eds.) Tools for High Performance Computing, pp. 139–155. Springer, Heidelberg (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Geimer, M., Shende, S.S., Malony, A.D., Wolf, F. (2009). A Generic and Configurable Source-Code Instrumentation Component. In: Allen, G., Nabrzyski, J., Seidel, E., van Albada, G.D., Dongarra, J., Sloot, P.M.A. (eds) Computational Science – ICCS 2009. ICCS 2009. Lecture Notes in Computer Science, vol 5545. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01973-9_78
Download citation
DOI: https://doi.org/10.1007/978-3-642-01973-9_78
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-01972-2
Online ISBN: 978-3-642-01973-9
eBook Packages: Computer ScienceComputer Science (R0)