Sparse weights in conservative method#49
Conversation
Awesome! I did not bother with this originally for the reasons you mentioned. But it's great to see that it's a (relatively easy) way to gain a lot of performance. Edit: |
|
That was a VM with pretty old CPU architecture and I guess just really slow on these particular calculations. I'm also seeing much faster results on my 8 core M1 Mac, about 12s for the Mixed results switching between threaded and distributed schedulers, sometimes a bit faster sometimes slower. |
|
I ran the benchmarking test in #42 across several configurations on my 8 core i7 linux desktop. Runtimes to the nearest second:
Lots of interesting variation. My takeaways:
|
BSchilperoort
left a comment
There was a problem hiding this comment.
Thanks for the benchmarks and optimizations! Feel free to merge once you've updated the changelog 🚀
Potential improvement for #42.
The focus on rectilinear grids for this package, and factorization of regridding along dimensions, makes generating and using dense weights feasible. However, the level of sparsity in the weights matrix is still extremely high for any reasonable size grid. I did some experiments converting the weights to a sparse matrix after creation, and am seeing nice improvements both in compute time and memory footprint.
On the example in #42 (comment) I get close to a 4x speedup (and better than xesmf):