On 2021-06-13 07:02, Anton Gladky wrote:
Hi Drew,
Would you like me to push to salsa (experimental branch) for
inspection?
Yes, please.
OK, pushed to experimental branch.
Bring the question of REALTYPEWIDTH to mind (the size of floating point
numbers). The "64-bit support" in other packages essentially concerns
integers (indexing) not floating point numbers, so I figure we don't
need to change REALTYPEWIDTH as well. Or if we do want to change
REALTYPEWIDTH, then we might want to change it in the standard build
too.
For comparison, SuperLU-Dist just uses double for values. Hypre uses
HYPRE_Real, which can be configured to single or double or longdouble
(default double). SCOTCH is mainly working with indices (integers
defined as SCOTCH_Num) but internally uses double more often than float
when it needs floating point numbers (it does use both). PETSc uses
PetscReal which can be configured single or double, float128 or fp16
(default double).
I figure it's simplest not to change REALTYPEWIDTH unless there's a
specific known need to make the change. We need to set IDXTYPEWIDTH to
64 to support extremely large systems with billions of degrees of
freedom, but that doesn't necessarily mean the floating point value at
each index also requires higher precision. On the other hand changing to
REALTYPEWIDTH=64 (even in standard libmetis) might better match the
default of other packages.
Apart from that question, I'm happy with the patch. As far as I'm
concerned it's ready to upload to experimental.
Drew