[petsc-users] The product of two MPIDENSE matrices

Jack Poulson poulson at stanford.edu
Mon Sep 30 13:45:48 CDT 2013


On 09/30/2013 11:36 AM, Jed Brown wrote:
> Joon Hee Choi <choi240 at purdue.edu> writes:
> 
>> Hello Hong,
>> 
>> I tried to get Elemental but it does not support 64-bit integer
>> now. I need to use 64-bit integer because the matrix I am using
>> is very large. I need just MatMatMult() for MPIDENSE matrices,
>> but it also didn't support MPIDENSE. Is there any method to
>> multiply MPIDENSE and MPIDENSE?
> 
> I take it that you need 64-bit indices because your problems are
> that big already, not that you're worried they will eventually be
> that large?
> 
> I assume Jack will reply to your other message which was
> cross-posted to dev at libelemental.org, but I'm Cc'ing him here as
> well.
> 

It hasn't yet been rigorously tested, but support for 64-bit integers
should be possible by simply changing the typedefs for elem::Int and
elem::Unsigned from 'int' -> 'long long int' and 'unsigned' to 'long
long unsigned'. These are guaranteed to be 64-bit by C++11.

https://github.com/elemental/Elemental/blob/f288c2b50b0ad2c95c99591918d8fa27990167d2/include/elemental/core/types_decl.hpp#L17

Elemental's Python interface does not yet support this modification,
but I would expect it to be straightforward to extend the PETSc
interface to do so.

I don't believe that this change made it into version 0.81 of
Elemental, but 0.82 will be released as soon as I finish rounding the
edges of a new Bunch-Kaufman implementation, which would also be good
to expose an interface for in PETSc.

Jack


More information about the petsc-users mailing list