[petsc-dev] MUMPS and 64 bit indices

Garth N. Wells gnw20 at cam.ac.uk
Tue Dec 16 14:52:36 CST 2014

Attached is test code and matrix/vector files to reproduce a problem 
I'm seeing with Umfpack and 64-bit indices. It works fine with Umfpack 
and 32-bit indices. The matrix comes from a mixed formulation of the 
Poisson equation. The matrix is indefinite. I've computed all 
eigenvalues and they're nonzero.

Running the test program with:

    ./test -pc_factor_mat_solver_package umfpack

the output is

    Solution L2 norm: -nan
    Solution L2 norm should be: 2.96824

Running the test program with

    ./test -pc_factor_mat_solver_package superlu_dist

the output is

    Solution L2 norm: 2.968238
    Solution L2 norm should be: 2.96824

My PETSc configure line is

    --with-64-bit-indices --download-hypre=yes --download-suitesparse=1 
--download-parmetis --download-metis --with-debugging=no COPTFLAGS="-O3 
-march=native" FOPTFLAGS="-O3 -march=native" CXXOPTFLAGS="-O3 
-march=native" --prefix=/home/garth/local/packages/petsc-64 
--download-ptscotch --download-superlu_dist

Git log is 7fbfed63fbc5325cf1eefdb967627c4417715c46

(message copied to petsc-maint so the attachment doesn't get scrubbed)


On Mon, 15 Dec, 2014 at 9:49 PM, Garth N. Wells <gnw20 at cam.ac.uk> wrote:
>>  On 15 Dec 2014, at 21:42, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>  On Dec 15, 2014, at 3:16 PM, Garth N. Wells <gnw20 at cam.ac.uk> 
>>> wrote:
>>>  It's possible to configure PETSc with the options
>>>   --with-64-bit-indices --download-mumps
>>>  and compile and run, but it doesn't look like the MUMPS interface 
>>> supports 64 bit indices. Should the above combination throw an 
>>> error at configure time?
>>   Yes, there is commented code in the consistency check, I cannot 
>> remember why it was commented.
>>  #      if self.double and not self.scalartypes.precision.lower() == 
>> 'double':
>>  #        raise RuntimeError('Cannot use '+self.name+' withOUT 
>> double precision numbers, it is not coded for this capability')
>>  #      if not self.complex and self.scalartypes.scalartype.lower() 
>> == 'complex':
>>  #        raise RuntimeError('Cannot use '+self.name+' with complex 
>> numbers it is not coded for this capability')
>>  #      if self.libraryOptions.integerSize == 64 and 
>> self.requires32bitint:
>>  #        raise RuntimeError('Cannot use '+self.name+' with 64 bit 
>> integers, it is not coded for this capability')
>>>  (On a side note, SuperLU_dist and Umfpack are flaky with 64 bit 
>>> indices, which seems largely related to calling ParMETIS/METIS).
>>   Hmm, never heard such reports. Are you using the 
>> --download-parmetis and metis? You should be. Is it reproducible 
>> problem?  We'd like to fix it.
> Yes, I’m using --download-parmetis and --download-metis.
> Yes, it’s reproducible for a given matrix but hard to know which 
> matrices will be a problem, and for which solver 
> (SuperLU_dist/Umfpack). I’ll try to package up a couple of examples 
> that fail or give wrong results.
> Garth
>>   Barry
>>>  Garth
-------------- next part --------------
A non-text attachment was scrubbed...
Name: petsc_lu_test.tgz
Type: application/x-compressed-tar
Size: 2375 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20141216/80fce73e/attachment.bin>

More information about the petsc-dev mailing list