There are two issues related to CHOLMOD.

The first issue is that the libsuitesparse-dev
<https://packages.debian.org/experimental/libsuitesparse-dev> package
includes the headers in the /usr/include/suitesparse/ rather than the
/usr/include/ directory which is not what SutieSparse does
<https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/177#issuecomment-1374828162>
by default and it is not what other package managers do (e.g. Homebrew and
Conda), creating an heterogeneous set of environments that complicates the
situation for developers.

Since SuiteSparse has recently consolidated many of its header files with
the latest release, I do wonder whether it would be a good time to revisit
the decision to keep the headers in /usr/include/suitesparse/ as this could
create a uniform environment across distributions. If having all headers in
/usr/include/ is still considered too much, could a soft link to
/usr/include/suitesparse/cholmod.h be present in /usr/include/? This would
allow code calling this header with the command:
#include "cholmod.h"
To work without issues across different environments.

The other issue is that CHOLMOD performance is significantly degraded by
libopenblas0-pthread, one of the packages that provides libblas.so.3. As
CHOLMOD is based on OpenMP, using a multi-threaded version of BLAS causes
significant cache issues when running multi-threaded functions. I have
observed CHOLMOD running twice as fast when using libopenblas0-openmp
instead of libopenblas0-pthread. Although it would not solve all
configurations, could the libcholmod4
<https://packages.debian.org/experimental/libcholmod4> debian package
recommend the installation of libopenblas0-openmp? This would not guarantee
that users would use the OpenMP version of OpenBLAS when running CHOLMOD
for users that have already a non-OpenMP version installed, but it would at
least default to this version for users that don't have OpenBLAS installed
to begin with.

There might be other workarounds that I have not thought of so I am open to
alternative suggestions.

Thank you for your attention

Reply via email to