Abstract
Recording address traces that occur during a program execution is a significant technique for computer performance analysis. This paper describes a software method for address tracing via the instrumentation of C based languages. All program transformations are performed at the language level. This approach, which differs from the usual methods, allows portable and flexible program instrumentation. This tool has been developed to make easier the memory optimization of LIREChèques, an automatic bank check reading system. Two applications of the tool are clearly identified: (i) data cache use optimization, (ii) dynamic memory use optimization.
Similar content being viewed by others
References
A. Agarwal, R. L. Sites, and M. Horowitz. ATUM: a new technique for capturing address traces using microcode. in Proceedings of the 13th International Symposium on Computer Architecture, pp. 119-127, June, 1986.
T. Ball and J. R. Larus. Optimally profiling and tracing programs, ACM Transactions on Programming Languages and Systems (TOPLAS), 16:1319-1360, 1994.
F. Bodin, P. Beckman, D. Gannon, S. Narayana, and S. Srinivas. Sage++: a class library for building Fortran 90 and C++ restructuring tools. Technical Report, CICA, Indiana University, 1992.
F. Bodin, P. Beckman, D. Gannon, J. Gotwals, S. Narayana, S. Srinivas, and B. Winnicka. Sage++: an object-oriented toolkit and class library for building Fortran and C++ restructuring tools. OON-SKI, 1994.
D. Callahan, K. Kennedy, and A. Portefield. Software prefetching. Proceedings of the Fourth International Conference on Architectural Support for Programming Langages and Operating Systems, April 1991.
P. Cao, E. W. Felten, A. R. Karlin, and K. Li. Implementation and performance of integrated application-controlled _le caching, prefetching and disk scheduling. TOCS 14:311-343, 1996.
J. B. Chen. A simulation based study of TLB performance. Proceedings of the 19th Annual International Symposium on Computer Architecture, pp. 114-123, May 1992.
D. W. Clark and J. S. Emer. Performance of the VAX 11/780 translation buffer: simulation and measurement. ACM Transactions on Computer Systems, 3:270-301, 1985.
C. Ferdinand, F. Martin, and R. Wilhelm. Applying compiler techniques to cache behavior prediction. Proceedings of the ACM SIGPLAN 1997 Workshop on Languages, Compilers, and Tools for Real-Time Systems, pp. 37-46, 1997.
J. K. Flanagan, B. Nelson, J. Archibald, and K. Grimsrud. BACH: BYU address collection hardware; the collection of complete traces. Proceedings of the 6th International Conference on Modeling Techniques and Tools for Computer Performance Evaluation, September 1992.
D. Gannon, W. Jalby, and K. Gallivan. Strategies for cache and local memory management by global program transformation. Journal of Parallel and Distributed Computing, 5:587-616, 1988.
J. D. Gee, M. D. Hill, D. N. Pnevmatikatos, and A. J. Smith. Cache performance of the SPEC benchmark suite. Technical Report, University of Wisconsin-Madison, 1991.
J. Griffioen and R. Appleton. Performance measurements of automatic prefetching. Proceedings of the ISCA International Conference on Parallel and Distributed Computing Systems, September 1995.
K. Grimsrud, J. Archibald, M. Ripley, K. Flanagan, and B. Nelson. BACH: a hardware monitor for tracing microprocessor-based systems. Microprocessors and Microsystems, 17, October 1993.
J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San Mateo, Calif. 1990.
L. Heutte, P. Pereira, O. Bougeois, J. V. Moreau, B. Plessis, P. Courtellemont, and Y. Lecourtier. Multi-bank check recognition system: consideration on the numeral amount recognition module. Special Issue on Automatic Bankcheck Processing. International Journal of Pattern Recognition and Artificial Intelligence, 11:595-618, 1997.
M. D. Hill. Aspects of cache memory and instruction buffer performance. Ph.D. thesis, University of California at Berkeley, Computer Sciences Division, November 1987.
M. D. Hill. A case for direct-mapped caches. IEEE Computer, 21:25-40, 1988.
M. D. Hill, J. R. Larus, A. R. Lebeck, M. Talluri, and D. Wood. Wisconsin architectural research tools set. CAN 93.
B. R. Hunt. ACS version: 2.0, Parallel Arch Research Laboratory, 1997.
A. Kishon, P. Hudak, and C. Consel. Monitoring semantics: a formal framework for specifying, implementing and reasoning about execution monitors. Proceedings of the SIGPLAN'91 Conference on Programming Language Design and Implementation, pp. 338-352, June 1991.
M. Kumar. Measuring parallelism in computation-intensive scientific/engineering applications. IEEE Transactions on Computers, 37:1088-1098, 1988.
J. R. Larus. Abstract execution: a technique for efficiently tracing programs. Software Practice and Experience, 20:1241-1258, 1990.
J. R. Larus. Efficient program tracing. IEEE Computer, 26:52-61, 1993.
J. R. Larus and E. Schnarr. EEL: machine-independent executable editing. Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation (PLDI), ACM SIGPLAN Notices, vol. 30, pp. 291-300, June 1995.
A. R. Lebeck and D. A. Wood. Cache profiling and the SPEC benchmarks: a case study. IEEE Computer, 27:15-26, 1994.
Y. A. Liu and G. Gomez. Automatic accurate time-band analysis for high-level languages. Proceedings of the ACM SIGPLAN'98 Workshop on Languages, Compilers, and Tools for Embedded Systems, Lectures Notes in Computer Science, vol. 1474, pp. 31-40, Springer-Verlag, New York, 1998.
B. Mohr, D. Brown, and A. Malony. TAU: a portable parallel program analysis environment for pC++. Proceedings of CONPAR'94, VAPP VI, University of Linz, Austria, LNCS 854, pp. 29-40, September 1994.
P. Pereira, L. Heutte, O. Bougeois, J. V. Moreau, B. Plessis, P. Courtellemont, and Y. Lecourtier. Numeral amount recognition on multi-bank checks. Proceedings of the 13th International Conference on Pattern Recognition (ICPR'96), Vienna, Austria, vol. 3, pp. 165-169, August 25–30, 1996.
P. Pereira. Optimization of a bank check reading system. Ph.D. thesis, University of Rouen, France, February 1999 (in French).
C. A. Prete. Cachesim: a graphical software environment to support the teaching of computer system with cache memories. Proceedings of the 7th SEI Conference on Software Engineering Education, San Antonio, pp. 317-327, Springer-Verlag, New York, 1994.
A. J. Smith. Cache memories. ACM Computer Surveys, 14:473-530, 1982.
L. Unnikrishnan, S. D. Stoller, and Y. A. Liu. Automatic accurate stack space and heap space analysis for high-level languages. Technical Report, Computer Science Department, Indiana University, April 2000.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Pereira, P., Heutte, L. & Lecourtier, Y. Source-to-Source Instrumentation for the Optimization of an Automatic Reading System. The Journal of Supercomputing 18, 89–104 (2001). https://doi.org/10.1023/A:1008119209479
Issue Date:
DOI: https://doi.org/10.1023/A:1008119209479