[eigen] Advice on contributing a module for a multithreaded, supernodal, MPL-licensed sparse-direct LDLT/LDLH solver?

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


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


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/