#989550 suitesparse: enhance 64-bit support in suitesparse

Package:
suitesparse
Source:
suitesparse
Submitter:
Drew Parsons
Date:
2023-05-28 10:12:04 UTC
Severity:
normal
Blocked By:
Bug Title
961183

  12

metis: providing a 64-bit build

normal stable testing unstable about 3 years ago

#989550#5
Date:
2021-06-07 10:56:19 UTC
From:
To:
We've been introducing a 64 bit-build for the computational stack.
This refers mainly to 64-bit indexing, enabling computation of
extremely large systems (billions of degrees of freedom)

Some packages are already 64-bit enabled, including BLAS, PETSc.

SuiteSparse handles the 64-bit question by defining SuiteSparse_long
(and using idx_t with metis). If I understand the SuiteSparse
configuration correctly, this means a specific configuration option
doesn't need to be set for SuiteSparse to compute large systems.

But as part of the 64-bit computation stack in Debian, we'd need to
provide a separate suitesparse64 build in order to link suitesparse
against blas64 or metis64. (I'm assuming this is a thing we would want
to do in the context of 64-bit computation).

This affects cholmod, for instance, in the sense that cholmod uses
idx_t defined in metis.h.  IDXTYPEWIDTH is the quantity in metis.h
which we'll need to set to 64, in order to provide 64-bit Metis (this
is requested in Bug#961183).

Once metis64 is available, we'll be free to provide suitesparse64
i.e. libsuitesparse64-dev (it might be that header files can be
transferred to a libsuitesparse-common-dev to share with
libsuitesparse-dev),
libcholmod64-3 (or similar), etc.

Once suitesparse64 is available, we'll be able link it from petsc64,
which is currently linking to the standard build of suitesparse.

Drew

#989550#14
Date:
2021-06-07 11:35:41 UTC
From:
To:
libcholmod3 and libspqr2 and libumfpack5 seem to be the only
SuiteSparse components directly affected by the 64-bit numerical
library stack, by linking to libblas.so.3 and liblapack.so.3.
libcholmod3 also links to libmetis5, and libspqr2 and libumfpack5
link to libcholmod3.

Not sure if this makes the packaging easier or harder.
Should libspqr64-2 link to libamd64-2 or to libamd2 ?
Should libamd64-2 be provided if it's identical to libamd2 ?

#989550#19
Date:
2021-06-07 12:58:40 UTC
From:
To:
Hi Drew,

Thanks for the proposal. Just for your information,
there is a WIP branch on suitesparse64:
https://salsa.debian.org/science-team/suitesparse/-/commits/lumin

I just ... ummm ... need some time to finish it.
Of course, any help would be appreciated.

#989550#24
Date:
2021-06-07 13:23:08 UTC
From:
To:
Thanks Mo, good to see the work is started already.

Drew
...

#989550#29
Date:
2022-10-22 13:56:13 UTC
From:
To:
I'm working on a major update to the SuiteSparse build system, which uses
cmake exclusively.  See the dev2 branch
on the SuiteSparse github.  I have a very slightly modified version of
metis, and I compile it
under the name libsuitesparse_metis.so.  It compiles metis with
IDXTYPEWIDTH of 64.

I no longer use SuiteSparse_long, but just int64_t in its place.  That
makes the build more predictable.

This change might resolve this bug.  The dev2 branch is still in progress
but it's getting close.