Analysis of algorithms | Models of computation
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).
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
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
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
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
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
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]
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
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),
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),
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
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
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
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
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
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
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