I/O-efficient algorithms, also known as external memory algorithms or cache-oblivious algorithms, are a class of algorithms designed to efficiently process data that is too large to fit entirely in the main memory (RAM) of a computer. These algorithms are particularly useful when dealing with massive datasets, such as those found in large-scale data processing, database management, and file systems.



I/O-efficient algorithms

Instructor: Mark de Berg
Access provided by Uni Francisco de Paula Santander
8,396 already enrolled
(60 reviews)
Skills you'll gain
Details to know

Add to your LinkedIn profile
6 assignments
See how employees at top companies are mastering in-demand skills

There are 6 modules in this course
In this module we give an introduction to the course I/O-efficient algorithms. We discuss the so-called I/O-model, which consists of an internal memory of limited size, an external memory of unlimited size and where data transfer between these two happens in blocks of a given size. We give a simple example showing that the actual running time of an algorithm working on data in external memory is greatly influenced by its I/O-behavior. Finally, we discuss the basics of analyzing algorithms in the I/O-model.
What's included
5 videos1 reading1 assignment
In this module we discuss two techniques to design I/O-efficient algorithms, using the matrix-transposition problem as a running example. The first technique is a "tile-based" approach and leads to a cache-aware algorithm. The second technique uses a recursive approach and leads to a cache-oblivious algorithm.
What's included
3 videos1 reading1 assignment
When we want to read something from external memory while the internal memory is full we need to make room by evicting a block from internal memory. The block which should be evicted is decided by the replacement policy. In this module we introduce LRU and some other some well-known replacement policies, and investigate the I/O-efficiency of LRU compared to an optimal replacement policy.
What's included
1 video1 reading1 assignment
In this module we analyze the I/O-efficiency of MergeSort and discuss how to adapt it to make it more I/O-efficient.
What's included
2 videos1 reading1 assignment
In this module we introduce some I/O-efficient data structures: B-trees and buffer trees, and an I/O-efficient priority queue based on buffer trees.
What's included
3 videos1 reading1 assignment
In this module we discuss time-forward processing, a technique that can be used to evaluate so-called local functions on a directed acyclic graph.
What's included
4 videos1 reading1 assignment
Instructor

Offered by
Why people choose Coursera for their career




Learner reviews
60 reviews
- 5 stars
70%
- 4 stars
23.33%
- 3 stars
5%
- 2 stars
1.66%
- 1 star
0%
Showing 3 of 60
Reviewed on Nov 5, 2019
Everything was clearly explained and the questions were quite intuitive and checking my knowledge. More examples for different scenarios too would help us a lot to learn more.
Reviewed on May 8, 2022
The course is really good and the course material is also amazing. I highly reccomend it provided you have an interest in this specialization.
Reviewed on May 16, 2024
Excellent course. The lectures are of top quality. The quizzes are well thought out.

