The DOI matches its Crossref record; 30 of the 30 references it cites were found in a registry or an index.
Improving the ratio of memory operations to floating-point operations in loops
Open accessAbstract
Over the past decade, microprocessor design strategies have focused on increasing the computational power on a single chip. Because computations often require more data from cache per floating-point operation than a machine can deliver and because operations are pipelined, idle computational cycles are common when scientific applications are executed. To overcome these bottlenecks, programmers have learned to use a coding style that ensures a better balance between memory references and floating-point operations. In our view, this is a step in the wrong direction because it makes programs more machine-specific. A programmer should not be required to write a new program version for each new machine; instead, the task of specializing a program to a target machine should be left to the compiler. But is our view practical? Can a sophisticated optimizing compiler obviate the need for the myriad of programming tricks that have found their way into practice to improve the performance of the memory hierarchy? In this paper we attempt to answer that question. To do so, we develop and evaluate techniques that automatically restructure program loops to achieve high performance on specific target architectures. These methods attempt to balance computation and memory accesses and seek to eliminate or reduce pipeline interlock. To do this, they estimate statically the balance between memory operations and floating-point operations for each loop in a particular program and use these estimates to determine whether to apply various loop transformations. Experiments with our automatic techniques show that integer-factor speedups are possible on kernels. Additionally, the estimate of the balance between memory operations and computation, and the application of the estimate are very accurate—experiments reveal little difference between the balance achieved by our automatic system that is made possible by hand optimization.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
Lecture Notes in Computer Science 1205
(1999) · Industrial Robot the international journal of robotics research and application · doi:10.1108/ir.1999.04926fae.001 · Cited by 39,209
A data locality optimizing algorithm
Wolf, M. E., & Lam, M. S. (1991) · ACM-SIGPLAN Symposium on Programming Language Design and Implementation · doi:10.1145/113445.113449 · Cited by 1,272
The cache performance and optimizations of blocked algorithms
Lam, M. D., Rothberg, E. E., & Wolf, M. E. (1991) · doi:10.1145/106972.106981 · Cited by 926
Automatic translation of FORTRAN programs to vector form
Allen, R., & Kennedy, K. (1987) · ACM Transactions on Programming Languages and Systems · doi:10.1145/29873.29875 · Cited by 735
Self-citationRegister allocation via coloring
Chaitin, G. J., Auslander, M. A., Chandra, A. K., Cocke, J., Hopkins, M. E., & Markstein, P. W. (1981) · Computer Languages · doi:10.1016/0096-0551(81)90048-5 · Cited by 729
The Structure of Computers and Computations
Kuck, D. L. (1978) · UCLA - Biblioteca de Ciencias y Tecnologia Felix Morales Bueno · Cited by 500
Strategies for cache and local memory management by global program transformation
Gannon, D. B., Jalby, W., & Gallivan, K. A. (1988) · Journal of Parallel and Distributed Computing · doi:10.1016/0743-7315(88)90014-7 · Cited by 350
The Generation of Optimal Code for Arithmetic Expressions
Sethi, R., & Ullman, J. D. (1970) · Journal of the ACM · doi:10.1145/321607.321620 · Cited by 289
Register allocation via graph coloring
Briggs, P. (1992) · Cited by 244
Improving register allocation for subscripted variables
Callahan, D. P., Carr, S., & Kennedy, K. (2004) · ACM SIGPLAN Notices · doi:10.1145/989393.989428 · Cited by 244
Self-citationRegister allocation by priority-based coloring
Chow, F., & Hennessy, J. L. (1984) · doi:10.1145/502874.502896 · Cited by 220
Register allocation for software pipelined loops
Rau, B. R., Lee, M., Tirumalai, P. P., & Schlansker, M. (1992) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/143095.143141 · Cited by 176
Loops skewing: The wavefront method revisited
Wolfe, M. (1986) · International Journal of Parallel Programming · doi:10.1007/bf01407876 · Cited by 155
Estimating interlock and improving balance for pipelined architectures
Callahan, D., Cocke, J., & Kennedy, K. (1988) · Journal of Parallel and Distributed Computing · doi:10.1016/0743-7315(88)90002-0 · Cited by 152
Self-citationThe ParaScope parallel programming environment
Cooper, K. D., Hall, M. W., Hood, R. T., Kennedy, K., McKinley, K. S., Mellor‐Crummey, J., Torczon, L., & Warren, S. K. (1993) · Proceedings of the IEEE · doi:10.1109/5.214549 · Cited by 134
Self-citationOverlapped loop support in the Cydra 5
Dehnert, J. C., Hsu, P., & Bratt, J. P. (1989) · ACM SIGARCH Computer Architecture News · doi:10.1145/68182.68185 · Cited by 130
Analysis of interprocedural side effects in a parallel programming environment
Callahan, D. P., & Kennedy, K. (2014) · International Conference on Supercomputing · doi:10.1145/2591635.2667157 · Cited by 126
Self-citationOptimizing for parallelism and data locality
Kennedy, K., & McKinley, K. S. (2014) · International Conference on Supercomputing · doi:10.1145/2591635.2667164 · Cited by 120
Self-citationScalar replacement in the presence of conditional control flow
Carr, S., & Kennedy, K. (1994) · Software Practice and Experience · doi:10.1002/spe.4380240104 · Cited by 118
Self-citationCompiler Blockability of Numerical Algorithms
Carr, S., & Kennedy, K. (1992) · Cited by 97
Self-citationStrategies for cache and local memory management by global program transformation
Gannon, D. B., Jalby, W., & Gallivan, K. A. (2014) · doi:10.1145/2591635.2667155 · Cited by 92
Parascope:a Parallel Programming Environment
Callahan, C. D., Cooper, K. D., Hood, R. T., Kennedy, K., & Torczon, L. (1988) · The International Journal of High Performance Computing Applications · doi:10.1177/109434208800200409 · Cited by 83
Self-citationA practical data flow framework for array reference analysis and its use in optimizations
Duesterwald, E., Gupta, R., & Soffa, M. L. (1993) · Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation · doi:10.1145/155090.155097 · Cited by 72
Carr, S. (1993) · Cited by 60
Self-citationRegister allocation by priority-based coloring
Chow, F., & Hennessy, J. L. (1984) · ACM SIGPLAN Notices · doi:10.1145/502949.502896 · Cited by 58
Compiler blockability of numerical algorithms
Carr, S., & Kennedy, K. (2003) · Proceedings - Supercomputing · doi:10.1109/superc.1992.236704 · Cited by 55
Self-citationData flow and dependence analysis for instruction level parallelism
Rau, B. R. (2006) · Springer eBooks · doi:10.1007/bfb0038668 · Cited by 47
Improving register allocation for subscripted variables
Callahan, D. P., Carr, S., & Kennedy, K. (1990) · ACM SIGPLAN Notices · doi:10.1145/93548.93553 · Cited by 33
Self-citationLoop Quantization: an Analysis and Algorithm
Aiken, A., & Nicolau, A. E. (1987) · eCommons (Cornell University) · Cited by 29
Research works printed but not linked: 4
- ALLEN , F. AND COCKE , J. 1972 . A catalogue of optimizing transformations. In Design and Opttmzzation of Compilers. Prentice-Hail, Englewood Cliffs , N.J. , 1 - 30 .]] ALLEN, F. AND COCKE, J. 1972. A catalogue of optimizing transformations. In Design and Opttmzzation of Compilers. Prentice-Hail, Englewood Cliffs, N.J., 1-30.]]
- KENNEDY , K. AND MCKJNLEY , K. 1992 . Optimizing for parallelism and memory hierarchy . In Proceedings of the 1992 International Conference on Supercomputing. ACM , New York , 323 - 334 .]] 10.1145/143369.143427 KENNEDY, K. AND MCKJNLEY, K. 1992. Optimizing for parallelism and memory hierarchy. In Proceedings of the 1992 International Conference on Supercomputing. ACM, New York, 323-334.]] 10.1145/143369.143427 · DOI
- KUCK , D. , KUHN , R. , LEASURE , B. , AND WOLFE , M. 1984. The structure of an advanced retargetable vectorizer . In Supercomputers: Destgn and Apphcattons . IEEE Computer Society Press , Los Alamitos , Calif., 163-178]] KUCK, D., KUHN, R., LEASURE, B., AND WOLFE, M. 1984. The structure of an advanced retargetable vectorizer. In Supercomputers: Destgn and Apphcattons. IEEE Computer Society Press, Los Alamitos, Calif., 163-178]]
- MEADOWS , L , NAKAMOTO , S. , AND SCHUSTER , V 1992. A vectonzing, sot~ware pipelinmg campller for LIW and superscalar architectures In Proceedings of RISC '92.]] MEADOWS, L, NAKAMOTO, S., AND SCHUSTER, V 1992. A vectonzing, sot~ware pipelinmg campller for LIW and superscalar architectures In Proceedings of RISC '92.]]
Cited by
Williams, S., Waterman, A., & Patterson, D. A. (2009) · Communications of the ACM · doi:10.1145/1498765.1498785 · Cited by 2,798
Lam, M. S. (2004) · ACM SIGPLAN Notices · doi:10.1145/989393.989420 · Cited by 889
Improving data locality with loop transformations
McKinley, K. S., Carr, S., & Tseng, C. (1996) · ACM Transactions on Programming Languages and Systems · doi:10.1145/233561.233564 · Cited by 539
Self-citationPredicting whole-program locality through reuse distance analysis
Ding, C., & Zhong, Y. (2003) · ACM SIGPLAN Notices · doi:10.1145/780822.781159 · Cited by 263
Improving register allocation for subscripted variables
Callahan, D. P., Carr, S., & Kennedy, K. (2004) · ACM SIGPLAN Notices · doi:10.1145/989393.989428 · Cited by 244
Self-citation
Metadata
- Authors
- Carr, S., & Kennedy, K.
- Affiliations
- Michigan Technological University (US)
- Rice University (US)
- ORCID
- Carr, Steve
- Venue
- ACM Transactions on Programming Languages and Systems
- Published
- 1994-11
- Volume
- 16
- Issue
- 6
- Pages
- 1768-1810
- ISSN
- 0164-0925 (ISSN-L)
- 1558-4593
- OpenAlex
- W2138007781
- Cited by
- 155
- References
- 30
- Citations by year
- 2026: 2 · 2025: 5 · 2024: 3 · 2023: 1 · 2021: 1 · 2020: 1 · 2018: 1 · 2017: 1 · 2016: 2 · 2015: 2 · 2014: 4 · 2013: 1 · 2012: 8
- FWCI
- 3.90
- Type
- journal article
- Language
- en
- Open access
- bronze
- doi.org
- Locations
- ACM Transactions on Programming Languages and Systems (publishedVersion)
- Digital Commons - Michigan Tech (Michigan Technological University) (submittedVersion)
- Topics
- Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
- Physical Sciences › Computer Science › Software › Logic, programming, and type systems
- Physical Sciences › Computer Science › Hardware and Architecture › Embedded Systems Design Techniques
- Keywords
- loop transformation, memory hierarchy, compiler optimization, floating-point performance, scientific kernels
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review