[petsc-users] build pets with 64 bit indices

Pierre Jolivet pierre at joliv.et
Wed Apr 30 00:08:14 CDT 2025


Could you please provide the full back trace?
Depending on your set of options, it may be as simple as switching -bv_type to make your code run (if you are using svec, this would explain such an error but could be circumvented with something else, like mat).

Thanks,
Pierre

> On 30 Apr 2025, at 6:27 AM, Satish Balay <balay.anl at fastmail.org> wrote:
> 
> 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