Skip to content
sslotinPublic

About

Complete implementations from "Algorithms for Modern Hardware"

Topics

Resources

Stars

844 stars

Watchers

30 watching

Forks

Repository files navigation

Algorithms for Modern Hardware

This repository contains full examples and other associated code from https://en.algorithmica.org/hpc

The book is still unfinished, and my writing process is very slow and non-sequential — sometimes the "idea → code → benchmarks → article" pipeline may take 6 months or even more — so in this repository you can get a preview on a lot of interesting things that I haven't yet properly written up and published.

Things that have improved on the state-of-the-art:

Things that match current state-of-the-art:

Various benchmarks:

At the implementation stage:

  • Ordered Trees (apply the same technique as with binary searching, but with dynamically-allocated B-tree nodes)
  • Range minimum queries (both static and dynamic)
  • Filters (Bloom, cuckoo, xor, theoretical minimum)
  • Dot product / logistic regression (newton's method, SIMD, quantization)
  • Prime number sieves (blocking plus wheel)
  • Sorting (speeding up quicksort and mergesort with SIMD and radix sort)
  • Writing series of integers (SIMD + fast mod-10)
  • Bitmaps (blocking, SIMD)

At the idea stage:

  • String searching (SIMD-based strstr and rolling hashing)
  • Using SIMD to speed up Pollard's algorithm (naive sqrt-parallelization)
  • SIMD-based random number generation and hashing

About

Complete implementations from "Algorithms for Modern Hardware"

Topics

Resources

Stars

844 stars

Watchers

30 watching

Forks

Contributors

Languages