carstenbauer / MonteCarlo.jl

Classical and quantum Monte Carlo simulations in Julia
https://carstenbauer.github.io/MonteCarlo.jl/dev/
Other
186 stars 18 forks source link

Generic stack matrices (optimizations) #88

Closed ffreyer closed 3 years ago

ffreyer commented 3 years ago

Implements optimizations for #78 and opens up more optimizations such as using Diagonal matrices as the interaction matrix or introducing specialized matrix types such as BlockDiagonal matrices for greens function etc.

ffreyer commented 3 years ago

Apparently rvmul! and lvmul! are almost an order of magnitude worse than just vmul!, so I'll try to phase these out too.

ffreyer commented 3 years ago

BlockDiagonal works with the repulsive Hubbard model and results in up to 4x faster matrix multiplications, given large enough matrices (like 8+ sites on my AVX2 machine). The speed up for the whole simulation will be lower, but not drastically. measurements should be slower, due to indexing.

ffreyer commented 3 years ago

Closes #80