Open tbetcke opened 1 year ago
Yeah, MPI is a clumsy dependency, especially in Rust land. It's typical for a distributed sparse matrix to have two sequential matrices, one for the diagonal block and one for the off-diagonal block. For PDE-type applications, most everyone uses 1D decompositions (usually row partitioning), but for irregular operations (like social network graphs or bundle adjustment), there are benefits to supporting 2D decompositions (like CombBLAS
uses, often in a randomized ordering, which gives up data locality in exchange for load balancing).
I'm not sure it's important at this time to have separate crates for traits and core. In any case, I think they should live in the same repository and we can decide later which crates to make public.
Some thoughts about the structure of the library:
@krishnakumarg1984 and I have started experimenting with implementations for sparse-core. One thing I'd like to do is for the library to be able to compile with or without MPI. For that I have created two modules
distributed
andlocal
. Any code that relies on MPI is indistributed
. Is this sensible?Also, we need a good library name :-) Sandbox is not too promotional.