Skip to content

Sparse Direct Solver implemented in GraphBLAS language? #132

@learning-chip

Description

@learning-chip

Sparse matrix factorization heavily relies on combinatory graph algorithms. For example see the section "Bipartite matching for sparse solvers" and "Graph partitioning" (for fill-reducing ordering) in the EXAGRAPH paper. Many of those algorithms should be expressible in GraphBLAS-like language, and get optimized and parallelized by the underlying linear algebra primitives.

However, all existing sparse solvers like MUMPS and SuperLU use vertex-based programming. This is expected since these solvers started around 1990s~2000s, much earlier than the GraphBLAS effort. In fact, SuiteSparse has GraphBLAS and the sparse solvers UMFPACK/CHOLMOD as separate, independent subpackages.

In a course web I notice a project like that:

Use the Graph BLAS(as implemented in SuiteSparse) to implement one or more of the graph algorithms used in sparse Cholesky factorization, for example:

  • Symbolic factorization (given a graph, compute the filled graph).
  • Symmetric elimination orders: minimum degree, nested dissection, reverse Cuthill-McKee.
  • Elimination tree (given a graph, compute the elimination tree without computing the filled graph).

but without follow-up.

Just like the iterative solver issue (#131), I find this idea quite interesting but cannot see any existing work/literature on this. Given that even DFS has been expressed in GraphBLAS, there could be many unexplored topics in "translating vertex-based algorithm to GraphBLAS" I think? Is it worth exploring for sparse matrix factorization algorithms?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions