Open navidcy opened 2 years ago
I am fairly convinced that it is because of the fill_halo
which are absent in matrix based solvers
The memory allocations are 40% due to fill halo and rest due to dot(). But that's memory allocations. Don't know how they affect speed.
I ll try to produce a profile of validation/elliptic_solvers/doubly_bounded_poisson.jl
with nsys and post it here
I Just noticed that this is for the CPU, then profiling might be a little more difficult
Should we also expect the MG preconditioner to perform similarly to the FFT-based preconditioner? Those are relatively similar algorithms. How many CG iterations are we performing for either?
Is this allocating?
No they don’t. had a little look and it’s the fill halos that bring allocations……
Working with @elise-palethorpe we see that the preconditioned conjugate gradient solver is much slower than expected. See #2654
In particular, benchmarks on solving the Poisson equation on a doubly bounded domain on the ep/pcg-with-multigrid branch give:
We'd expect the PCG to perform similarly to MG and MG-preconditioned PGC to perform better. There is definitely some issue with memory allocations but, possibly, something else?