[petsc-users] build pets with 64 bit indices

Satish Balay balay.anl at fastmail.org
Tue Apr 29 23:27:36 CDT 2025


On Wed, 30 Apr 2025, hexioafeng via petsc-users wrote:

> Dear PETSc developers,
> 
> I use PETSc and SLEPC to solve generalized eigen problems. When solving an interval eigen problem with matrix size about 5 million,  i got the error message: "product of two integer xx xx overflow, you must ./configure PETSc with --with-64-bit-indices for the case you are running".
> 
> I use some prebuilt third-party packages when building PETSc, namely OpenBLAS, METIS, ParMETIS and SCALAPACK. I wonder should i also use 64-bit prebuilt packages when configure PETSc with the --with-64-bit-indices flag? How about the MUMPS and MPI? Do i have to also use the b4-bit version?

Hm - metis/parmetis would need a rebuild [with -DMETIS_USE_LONGINDEX=1 option]. Others should be unaffected.

You could use  petsc configure to build pkgs to ensure compatibility i.e. use --download-metis --download-parmetis etc..

Note - there is a difference between --with-64-bit-indices (PetscInt) and --with-64-bit-blas-indices (PetscBlasInt) [and ILP64 - aka fortran '-i8']

Satish

----

$ grep defaultIndexSize config/BuildSystem/config/packages/*.py
config/BuildSystem/config/packages/hypre.py:    if self.defaultIndexSize == 64:
config/BuildSystem/config/packages/metis.py:      if self.defaultIndexSize == 64:
config/BuildSystem/config/packages/mkl_cpardiso.py:      elif self.blasLapack.has64bitindices and not self.defaultIndexSize == 64:
config/BuildSystem/config/packages/mkl_cpardiso.py:      elif not self.blasLapack.has64bitindices and self.defaultIndexSize == 64:
config/BuildSystem/config/packages/mkl_pardiso.py:      elif self.blasLapack.has64bitindices and not self.defaultIndexSize == 64:
config/BuildSystem/config/packages/mkl_sparse_optimize.py:    if not self.blasLapack.mkl or (not self.blasLapack.has64bitindices and self.defaultIndexSize == 64):
config/BuildSystem/config/packages/mkl_sparse.py:    if not self.blasLapack.mkl or (not self.blasLapack.has64bitindices and self.defaultIndexSize == 64):
config/BuildSystem/config/packages/SuperLU_DIST.py:    if self.defaultIndexSize == 64:



> 
> Look forward for your reply, thanks.
> 
> Xiaofeng



More information about the petsc-users mailing list