Skip to content

sslotin/amh-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

38cc9c5 · Oct 6, 2022
Feb 9, 2022
Mar 26, 2022
Sep 20, 2021
Jul 19, 2022
Jan 19, 2022
Nov 16, 2021
Feb 3, 2022
May 1, 2021
Jan 26, 2022
Oct 21, 2021
Jun 1, 2022
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Oct 6, 2022
Apr 27, 2022
Sep 20, 2021
Dec 29, 2021
May 18, 2022
May 1, 2021
Jul 25, 2022
May 1, 2021
Sep 20, 2021
Nov 16, 2021
Oct 1, 2022
Jan 24, 2022
Sep 29, 2022
Feb 12, 2022
May 1, 2021
Aug 28, 2022
Jul 20, 2022
Feb 8, 2022
May 1, 2021
May 1, 2021
Mar 10, 2022
Mar 31, 2022
Sep 20, 2021
Jan 7, 2022

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