Live briefing
Everything about Loop nest optimization
Technique in computer software design
In computer science and particularly in compiler design, loop nest optimization (LNO) is an optimization technique that applies a set of loop transformations for the purpose of locality optimization or parallelization or another loop overhead reduction of the loop nests. One classical usage is to reduce memory access latency or the cache bandwidth necessary due to cache reuse for some common linear algebra algorithms. Wikipedia →
đź§ Start here: a 6-step reading path
- Read the overview: Loop nest optimizationA 5-minute orientation
- Pick up a classic book: Data Structures and Algorithms in JavaThe most-reprinted book on the subject
- Read the landmark paper: Timing optimization via nest-loop pipelining considering code sizeCited 9 times
- Go sideways: Locality of referenceA closely related topic
- Go sideways: Matrix multiplication algorithmA closely related topic
đź“– Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Timing optimization via nest-loop pipelining considering code size
Integer affine transformations of parametric ℤ-polytopes and applications to loop nest optimization
Optimizing inter-nest data locality in imperfect stencils based on loop blocking
A compiler optimization to reduce execution time of loop nest
📚 Books worth reading
Data Structures and Algorithms in JavaMichael T. Goodrich, Roberto Tamassia · 2014
Discrete mathematics for computer scienceGary Haggard · 2006- 📕Code Optimization in the Polyhedron Model - Improving the Efficiency of Parallel Loop NestsPeter Faber · 2009
- 📕PaperbackPeter Faber · 2009
Programming Language PragmaticsMichael Lee Scott · 2009
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
đź”— Related topics
- Locality of reference In computer science, locality of reference, also known as the principle of locality, is the tendency of a processor to access the same set of memory locations…
- Matrix multiplication algorithm Because matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms…
- Scalable locality Computer software is said to exhibit scalable locality if it can continue to make use of processors that out-pace their memory systems, to solve ever larger…
- Loop optimization In compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. It plays an important…
- Loop interchange In compiler theory, loop interchange is the process of exchanging the order of two iteration variables used by a nested loop. The variable used in the…
- Loop unrolling Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of…
- In-place matrix transposition In-place matrix transposition, also called in-situ matrix transposition, is the problem of transposing an N×M matrix in-place in computer memory, ideally…
- Sparse matrix In numerical analysis and scientific computing, a sparse matrix or sparse array is a matrix in which most of the elements are zero. There is no strict…