dadhi / amh-code

Complete implementations from "Algorithms for Modern Hardware"

Home Page:https://en.algorithmica.org/hpc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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"

https://en.algorithmica.org/hpc


Languages

Language:Jupyter Notebook 93.0%Language:C++ 4.4%Language:C 1.8%Language:Assembly 0.7%Language:Python 0.0%Language:Makefile 0.0%Language:Java 0.0%Language:Starlark 0.0%Language:Julia 0.0%Language:Sage 0.0%Language:Shell 0.0%