Analysis of algorithms | Models of computation

Cache-oblivious algorithm

In computing, a cache-oblivious algorithm (or cache-transcendent algorithm) is an algorithm designed to take advantage of a processor cache without having the size of the cache (or the length of the cache lines, etc.) as an explicit parameter. An optimal cache-oblivious algorithm is a cache-oblivious algorithm that uses the cache optimally (in an asymptotic sense, ignoring constant factors). Thus, a cache-oblivious algorithm is designed to perform well, without modification, on multiple machines with different cache sizes, or for a memory hierarchy with different levels of cache having different sizes. Cache-oblivious algorithms are contrasted with explicit loop tiling, which explicitly breaks a problem into blocks that are optimally sized for a given cache. Optimal cache-oblivious algorithms are known for matrix multiplication, matrix transposition, sorting, and several other problems. Some more general algorithms, such as Cooley–Tukey FFT, are optimally cache-oblivious under certain choices of parameters. As these algorithms are only optimal in an asymptotic sense (ignoring constant factors), further machine-specific tuning may be required to obtain nearly optimal performance in an absolute sense. The goal of cache-oblivious algorithms is to reduce the amount of such tuning that is required. Typically, a cache-oblivious algorithm works by a recursive divide-and-conquer algorithm, where the problem is divided into smaller and smaller subproblems. Eventually, one reaches a subproblem size that fits into the cache, regardless of the cache size. For example, an optimal cache-oblivious matrix multiplication is obtained by recursively dividing each matrix into four sub-matrices to be multiplied, multiplying the submatrices in a depth-first fashion. In tuning for a specific machine, one may use a hybrid algorithm which uses loop tiling tuned for the specific cache sizes at the bottom level but otherwise uses the cache-oblivious algorithm. (Wikipedia).

Cache-oblivious algorithm
Video thumbnail

23. Cache-Oblivious Algorithms: Medians & Matrices

MIT 6.046J Design and Analysis of Algorithms, Spring 2015 View the complete course: http://ocw.mit.edu/6-046JS15 Instructor: Erik Demaine In this lecture, Professor Demaine introduces cache-oblivious algorithms. License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/te

From playlist MIT 6.046J Design and Analysis of Algorithms, Spring 2015

Video thumbnail

24. Cache-Oblivious Algorithms: Searching & Sorting

MIT 6.046J Design and Analysis of Algorithms, Spring 2015 View the complete course: http://ocw.mit.edu/6-046JS15 Instructor: Erik Demaine In this lecture, Professor Demaine continues with cache-oblivious algorithms, including their applications in searching and sorting. License: Creative

From playlist MIT 6.046J Design and Analysis of Algorithms, Spring 2015

Video thumbnail

15. Cache-Oblivious Algorithms

MIT 6.172 Performance Engineering of Software Systems, Fall 2018 Instructor: Julian Shun View the complete course: https://ocw.mit.edu/6-172F18 YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf Prof. Shun discusses cache-oblivious algorithms throug

From playlist MIT 6.172 Performance Engineering of Software Systems, Fall 2018

Video thumbnail

Random Oracle Solution - Applied Cryptography

This video is part of an online course, Applied Cryptography. Check out the course here: https://www.udacity.com/course/cs387.

From playlist Applied Cryptography

Video thumbnail

Build a Heap - Intro to Algorithms

This video is part of an online course, Intro to Algorithms. Check out the course here: https://www.udacity.com/course/cs215.

From playlist Introduction to Algorithms

Video thumbnail

Greedy Algorithm | What Is Greedy Algorithm? | Introduction To Greedy Algorithms | Simplilearn

This video on the Greedy Algorithm will acquaint you with all the fundamentals of greedy programming paradigm. In this tutorial, you will learn 'What Is Greedy Algorithm?' with the help of suitable examples. And finally, you will also discover few important applications of greedy algorithm

From playlist Data Structures & Algorithms [2022 Updated]

Video thumbnail

Random Oracle - Applied Cryptography

This video is part of an online course, Applied Cryptography. Check out the course here: https://www.udacity.com/course/cs387.

From playlist Applied Cryptography

Video thumbnail

Lec 24 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005

Lecture 24: Advanced Topics (cont.) View the complete course at: http://ocw.mit.edu/6-046JF05 License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503),

Video thumbnail

Lec 25 | MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503), Fall 2005

Lecture 25: Advanced Topics (cont.) | Discussion of Follow-on Classes View the complete course at: http://ocw.mit.edu/6-046JF05 License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503),

Video thumbnail

Lec 8 | MIT 6.172 Performance Engineering of Software Systems, Fall 2010

Lecture 8: Cache-Efficient Algorithms Instructor: Charles Leiserson View the complete course: http://ocw.mit.edu/6-172F10 License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.172 Performance Engineering of Software Systems

Video thumbnail

14. Caching and Cache-Efficient Algorithms

MIT 6.172 Performance Engineering of Software Systems, Fall 2018 Instructor: Julian Shun View the complete course: https://ocw.mit.edu/6-172F18 YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP63VIBQVWguXxZZi0566y7Wf Prof. Shun discusses associativity in caches, the idea

From playlist MIT 6.172 Performance Engineering of Software Systems, Fall 2018

Video thumbnail

Lec 9 | MIT 6.172 Performance Engineering of Software Systems, Fall 2010

Lecture 9: Cache-Efficient Algorithms II Instructor: John Dong, Saman Amarasinghe, Charles Leiserson View the complete course: http://ocw.mit.edu/6-172F10 License: Creative Commons BY-NC-SA More information at http://ocw.mit.edu/terms More courses at http://ocw.mit.edu

From playlist MIT 6.172 Performance Engineering of Software Systems

Video thumbnail

Expanders and Communication-Avoiding Algorithms - Oded Schwartz

Oded Schwartz Technical University Berlin January 25, 2010 Algorithms spend time on performing arithmetic computations, but often more on moving data, between the levels of a memory hierarchy and between parallel computing entities. Judging by the hardware evolution of the last few decades

From playlist Mathematics

Video thumbnail

Heap Sort Algorithm | Heap Sort In Data Structure | Heap Sort With Example | Simplilearn

This video is based on Heap sort Algorithm. This heap sort in data structures tutorial makes sure that the heap sort algorithm is explained well and will help the beginners understand the basics of heap sort with examples. The video also covers practical demo for a better learning experien

From playlist Data Structures & Algorithms

Video thumbnail

Analog vs. Digital Epsilons: Implementation Considerations Considerations for Differential Privacy

A Google TechTalk, presented by Olya Ohrimenko, 2021/11/17 Differential Privacy for ML series.

From playlist Differential Privacy for ML

Video thumbnail

Fetch Decode Execute Cycle in more detail

This computer science video illustrates the fetch decode execute cycle. The view of the CPU focusses on the role of various registers including the accumulator, memory address register, memory data register, current instruction register and the program counter. The arithmetic and logic un

From playlist Computer Hardware and Architecture

Related pages

Cache-oblivious distribution sort | Funnelsort | Model of computation | Cooley–Tukey FFT algorithm | Divide-and-conquer algorithm | Priority queue | Least Recently Used | Quicksort | Hash table | External memory algorithm | In-place matrix transposition | Turing machine | Blitz++ | Hybrid algorithm | External sorting | Abstract machine | Amortized analysis | B-tree | Algorithm | Recursion