Hi Jack,

This is a very nice piece of work, congrats! I did one benchmark if
catamari+MKL on the "ldoor" matrix [1] and got same speed as
suitesparse/Cholmod: about 8s on my Haswell quad-core (15s without openmp).

Requiring c++14 for new features is not a big deal anymore.

How do you envision this "Eigen/Catamari" module? A simple wrapper as we do
with Cholmod/UmfPack/Pastix/Pardiso? or a built-in Eigen-ified version? As
you probably already figured out Eigen already provides several features
redundant with what you developed in Catamari:
- BLAS/LAPACK layer with optional compile-time fallback to any BLAS /
LAPACKE / MKL
- Sparse storage
- Fill-in reorderings, we have AMD and COLAMD, so yours might rather be
complementary.

Gaƫl

[1] https://sparse.tamu.edu/GHS_psdef/ldoor

On Fri, Mar 8, 2019 at 4:59 PM Jack Poulson <[email protected]> wrote:

> Dear Eigen Maintainers,
>
> I noticed that Eigen's current documentation only lists a simplicial LDLT
> sparse-direct solver; I spent my last several months building a header-only
> C++ (optionally multithreaded) supernodal Cholesky/LDL^T/LDL^H
> sparse-direct solver (which also implements high-performance Determinantal
> Point Process sampling with similar techniques) and am curious if it would
> be seen as a good fit for an unsupported Eigen module. The solver achieves
> as much as 1 TF in double-precision on my 16-core skylake workstation.
>
> The current project is described here:
> https://hodgestar.com/catamari/
> I released v0.1 a few days ago, but I have improved the performance in
> 'master' substantially since then.
>
> My assumption is that the biggest hurdle will be due to the solver
> (catamari) being implemented in C++14, and that Eigen is currently
> restricted to C++03. And, while catamari optionally incorporates OpenMP
> task scheduling for the multithreaded parallelism, this support is only
> enabled if an appropriate preprocessor directive is defined
> (CATAMARI_OPENMP).
>
> Any advice would be appreciated.
>
> Sincerely,
> Jack Poulson
>

Reply via email to