linalg-rs / sandbox

An experimental repository to test Rust linear algebra traits
Apache License 2.0
0 stars 0 forks source link

Library title and structure #7

Open tbetcke opened 1 year ago

tbetcke commented 1 year ago

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 and local. Any code that relies on MPI is in distributed. Is this sensible?

Also, we need a good library name :-) Sandbox is not too promotional.

jedbrown commented 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.