Skip to content

Performance Guide

Under Construction

This page will cover performance benchmarks, tips for large system sizes, and memory usage profiling.

Key Facts

  • Matrix-free: Memory scales as \(O(\dim)\), not \(O(\dim^2)\).
    A 20-site Heisenberg chain has \(\dim = \binom{20}{10} = 184{,}756\). Storing its Hamiltonian as a dense matrix would require ~500 GB. qkrylov uses ~3 MB.
  • OpenMP: All matrix-vector products are parallelized across all CPU cores automatically.
  • Zero-copy Python bridge: NumPy arrays passed to C++ are never copied — raw pointers are passed directly.

Coming Soon

  • Benchmarks vs. QuSpin, EDLib, and Lanczos reference implementations
  • Scaling plots: time vs. system size
  • Memory usage measurements
  • Tips for choosing solver parameters