Skip to content

A collection of algorithms demonstrating techniques and differences of and between cache aware and cache oblivious algorithms, needed for a university term paper.

License

Notifications You must be signed in to change notification settings

robin-moser/cache-oblivious-algorithms

Repository files navigation

Cache-Aware and Cache-Oblivious Algorithms for Matrix Operations

This repository contains the implementation of cache-aware and cache-oblivious algorithms for matrix operations such as multiplication and transposition. The implemented algorithms are part of a term paper in the field of memory hierarchies.

Tip

The german paper is now accessable in the repo: cache_oblivious_algorithms_2023.pdf

Contents

multiplication.c holds the source code for the matrix multiplication algorithms, transpose.c the source code for the matrix transposition algorithms.

Benchmarking

To mesure the algorithms, one can use the procedures from the Makefile.

  1. First, compile the algorithms:
make all
  1. Start the benchmarking process for various problem sizes: Depending on the running computer, this could take a long while!
make benchmark

The benchmarking procedure now have logged the time mesurements into the files data.multiply.csv and data.transpose.csv.

  1. Plot the results
make plot

The output is a pdf with two pages, containing the two crated graphes.

About

A collection of algorithms demonstrating techniques and differences of and between cache aware and cache oblivious algorithms, needed for a university term paper.

Resources

License

Stars

Watchers

Forks

Packages

No packages published